使用ndimage.binary_fill_holes填充形状

时间:2014-01-22 18:38:49

标签: python numpy io

我想在此图像中填充中心点,以便最后是白色而其余部分是黑色。我正在尝试使用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')

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您提供binary_fill_holes数组,则

None不会返回任何内容(它会返回output)。试试这个:

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 vs mask2,mask_filled vs mask_2_filled。

答案 1 :(得分:0)

最后,它比预期更容易:在this之后,唯一需要的行是

mask_2_filled = ndimage.binary_fill_holes(mask_2)