You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用raster_geometry生成球体掩码异常:指定中点后无球体生成

解决raster_geometry指定中点后球体掩码全0的问题

以下是几个可行的排查和解决方向:

  • 显式使用关键字参数传递中点:
    部分库的可选参数需要通过关键字指定才能正确识别,尝试将中点参数用center=显式标记:

    import raster_geometry as rg
    import numpy as np
    
    sphere_mask = rg.sphere((224, 224, 160), 15, center=(112,112,80))
    sphere_mask = sphere_mask.astype(np.int_) 
    print(np.sum(sphere_mask))
    
  • 升级raster_geometry到最新版本:
    旧版本库可能存在参数处理的bug,执行以下命令升级:

    pip install --upgrade raster_geometry
    
  • 手动验证球体生成逻辑:
    绕过库函数,用原生NumPy逻辑生成球体掩码,确认参数是否合理:

    import numpy as np
    
    shape = (224, 224, 160)
    center = (112, 112, 80)
    radius = 15
    
    # 基于欧氏距离平方生成掩码(避免开根号更高效)
    coords = np.ogrid[[slice(0, s) for s in shape]]
    dist_sq = sum((coord - c)**2 for coord, c in zip(coords, center))
    mask = dist_sq <= radius**2
    print(np.sum(mask))
    

    如果这段代码输出大于0,说明参数本身没问题,问题出在库的调用或版本上;如果输出仍为0,需检查shape和center的维度顺序是否匹配(比如是否搞反了深度/宽度轴的顺序)。

  • 验证中点坐标有效性:
    虽然你确认中点在范围内,可通过以下代码再次验证:

    center = (112,112,80)
    shape = (224,224,160)
    print("坐标是否在范围内:", np.all(np.array(center) < np.array(shape)) and np.all(np.array(center) >= 0))
    

内容的提问来源于stack exchange,提问作者Kate S.D.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:57:24