我有一个二进制图像,如下图所示,其中有两个轮廓显示为白色,
我想使所有的像素之间的轮廓白色一些东西如下,
如何在Python中使用Numpy或OpenCV或Scipy来实现这一点?
我目前使用的FloodFill如下所示,
from PIL import Image, ImageDraw
# read image
seed = [377,273]
rep_value = (255, 255, 0)
ImageDraw.floodfill(img, seed, rep_value, thresh=50)
img.save(f'cloud_floodfill_{seed}.png')
但是这里我需要提供一个seed
值。我有成千上万的像这样的图像,其中两个轮廓可以在任何地方转换。如何自动化几个图像的过程。
我猜OpenCV的FloodFill也会有同样的限制。
1条答案
按热度按时间c86crjj01#
方法:
findContours
*走在阶层
此特定配置的层次结构在遍历时将包含:
您希望在轮廓内轮廓和内联外轮廓之间有一个区域。
这个插图是通过绘制到BGR版本中完成的,用红色,然后覆盖源代码,使其看起来很漂亮。
该方法可以扩展到任意数量和嵌套。只是需要更多的工作来遍历层次结构。