【问题标题】:Fill shape using ndimage.binary_fill_holes使用 ndimage.binary_fill_holes 填充形状
【发布时间】:2014-02-12 23:58:33
【问题描述】:

我想填充这张图片的中心点,这样最后是白色的,其余的是黑色的。我正在尝试使用ndimage.binary_fill_holes(下面的代码)来做到这一点。当我运行我的脚本时,我收到错误'NoneType' object has no attribute 'astype'。我应该怎么做才能解决这个问题?

 mask_filled = np.array(mask,numpy.uint16)
 ndimage.binary_fill_holes(mask_2, structure=np.ones((dim_x,dim_y)), origin=(75,75), output=mask_2_filled).astype(int)
 np.savetxt(filename_filled, mask_filled, fmt='%i')

【问题讨论】:

    标签: python numpy io


    【解决方案1】:

    如果您提供 output 数组,binary_fill_holes 不会返回任何内容(它返回 None)。试试这个:

    ndimage.binary_fill_holes(mask_2, structure=np.ones((dim_x,dim_y)), origin=(75,75),
                              output=mask_2_filled)
    mask2filled = mask2filled.astype(int)
    

    或者您似乎根本无法传递任何输出,这样您就无需复制前一行中的数组。另请注意,在您的问题中,您的变量名称不匹配,即 mask 与 mask2、mask_filled 与 mask_2_filled。

    【讨论】:

    • 感谢您的建议,事情还没有完全发挥作用,但我希望走在正确的轨道上 ;-)。我在原帖中更正了一些拼写错误的变量名称。
    【解决方案2】:

    最后,比预期的要容易:跟随this,唯一需要的行是

    mask_2_filled = ndimage.binary_fill_holes(mask_2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 2021-03-17
      • 1970-01-01
      • 2016-09-16
      相关资源
      最近更新 更多