Python-基于OpenCV的轮廓填充 泛洪算法 孔洞填充

在这里插入图片描述
左为原图 右为填充后

针对轮廓填充,我们先要提取图像中的轮廓,在对里面的进行颜色填充,这个我自己也有点分不清楚,他和阈值分割进行填充有什么区别,要是有大佬知道,分享一下,将感激不尽!轮廓填充的方法常用的是泛洪算法!

孔洞填充就是在二值化下,图像中出现了“白点”或者“黑点”,这会影响我们计算轮廓里面的面积计算!
孔洞填充在这里我们针对的是二值图,并不是灰度图!

在OpenCV中实现imfill的步骤
阅读以下步骤时请参考下图.

  • 读取图片。
  • 将输入图像二值化。
  • 从像素(0,0)填充颜色。请注意,步骤2和步骤3的输出之间的差异在于步骤3中的图像的背景现在是白色的。
  • 反转洪水填充的图像(即黑色变为白色,白色变为黑色)。
  • 使用按位OR运算将阈值图像与反向洪水填充图像组合以获得填充有孔的最终前景掩模。步骤4中的图像在边界内具有一些黑色区域。通过步骤2,填充了图像中的孔。因此,我们将两者结合起来得到前景蒙版。

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

重点来啦,上代码!!!!!

import cv2;
  • 16
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值