
左为原图 右为填充后
针对轮廓填充,我们先要提取图像中的轮廓,在对里面的进行颜色填充,这个我自己也有点分不清楚,他和阈值分割进行填充有什么区别,要是有大佬知道,分享一下,将感激不尽!轮廓填充的方法常用的是泛洪算法!
孔洞填充就是在二值化下,图像中出现了“白点”或者“黑点”,这会影响我们计算轮廓里面的面积计算!
孔洞填充在这里我们针对的是二值图,并不是灰度图!
在OpenCV中实现imfill的步骤
阅读以下步骤时请参考下图.
- 读取图片。
- 将输入图像二值化。
- 从像素(0,0)填充颜色。请注意,步骤2和步骤3的输出之间的差异在于步骤3中的图像的背景现在是白色的。
- 反转洪水填充的图像(即黑色变为白色,白色变为黑色)。
- 使用按位OR运算将阈值图像与反向洪水填充图像组合以获得填充有孔的最终前景掩模。步骤4中的图像在边界内具有一些黑色区域。通过步骤2,填充了图像中的孔。因此,我们将两者结合起来得到前景蒙版。

左为二值化取反图 右为二值化图
简单来说就是两张背景不变图像,将轮廓里面的颜色取反,再将两张图片合并,这样就能对轮廓里面的“孔洞”进行填充;
方法很笨,但是有效!
重点来啦,上代码!!!!!
import cv2;

本文介绍了如何使用OpenCV在Python中填充图像轮廓和孔洞。通过二值化、泛洪算法以及按位OR运算,实现对二值图像的填充处理,消除影响面积计算的白点或黑点。代码演示了这一过程。
最低0.47元/天 解锁文章
3807

被折叠的 条评论
为什么被折叠?



