如何解决skimage flood_fill填充整个图像
这些是我用于填充图像的代码,所以我想要的只是颜色值为50的外层空间,而所有内容都是灰色的。
checkers = invert(cv2.imread('skeleton2.jpg',cv2.IMREAD_GRAYSCALE))
filled_checkers = flood_fill(checkers,(0,0),50,tolerance=1)
fig,ax = plt.subplots(ncols=2,figsize=(10,5))
ax[0].imshow(checkers,cmap=plt.cm.gray,vmin=0,vmax=255)
ax[0].set_title('Original')
ax[1].imshow(filled_checkers,vmax=255)
ax[1].set_title('After flood fill')
plt.show()
我想要的https://i.stack.imgur.com/WuQAO.jpg
我得到的https://i.stack.imgur.com/P2pd0.jpg
解决方法
您需要传递connectivity=1
作为参数。参见documentation for flood fill:
selem:ndarray,可选
用于确定每个评估像素的邻域的结构元素。它只能包含1和0,并且具有与图片相同的尺寸。如果未给出,则所有相邻像素均被视为邻域(完全连接)的一部分。
连通性:int,可选
一个数字,用于确定每个评估像素的邻域。距中心平方距离小于或等于连通性的相邻像素被视为相邻像素。如果selem不为None,则将其忽略。
文档字符串中的示例部分还包含说明连接性的示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。