gpt4 book ai didi

python - 具有多个种子的 OpenCV FloodFill

转载 作者:太空狗 更新时间:2023-10-29 21:41:36 27 4
gpt4 key购买 nike

是否有用于 python/openCV 的 floodFill 函数获取种子列表并开始改变其邻居的颜色?我知道 simplecv 是一个类似的函数 SimpleCV floodFill . OpenCV 说它有两个 floodFill 函数,一个使用掩码,另一个不使用,documentation ,我无法在没有掩码和种子列表的情况下使用 opencv floodfill 函数。有帮助吗?

这是我目前正在尝试做的事情:

A=array([[0,1,1,0],[0,0,0,0],[1,1,1,1],[1,1,1,1]],np.uint8)
mask = np.ones((A.shape[0]+2,A.shape[0]+2),np.uint8)
mask[1:-1,1:-1] = np.zeros((A.shape))
cv.floodFill(A, mask, (3,0), 0,0,0, flags=4|cv.FLOODFILL_MASK_ONLY)
print mask

返回的掩码:

[[1 1 1 1 1 1]
[1 1 0 0 1 1]
[1 1 1 1 1 1]
[1 0 0 0 0 1]
[1 0 0 0 0 1]
[1 1 1 1 1 1]]

预期掩码:

[[1 1 1 1 1 1]
[1 0 0 0 0 1]
[1 0 0 0 0 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]]

原始图片:

[[0 1 1 0]
[0 0 0 0]
[1 1 1 1]
[1 1 1 1]]

最佳答案

如果您仔细查看文档,这就是 mask 的目的之一。您可以每次使用不同的种子多次调用该函数(第二版),最后掩码将包含已被填充的区域。如果新种子属于已经被淹没的区域,您的函数调用将立即返回。

使用 FLOODFILL_MASK_ONLY 标志,然后使用此掩码在末尾使用 setTo() 以所需的填充颜色绘制输入图像。 (你必须使用 Mask 的子图像!删除第一行和最后一行和列)。请注意,如果将 loDiffupDiff 设置为不同于默认值零的值,则根据处理种子点的顺序,floodfill 可能会产生不同的结果。

另请查看 this .

关于python - 具有多个种子的 OpenCV FloodFill,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28364678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com