有的时候,我们需要对图像进行孔洞填充,一般想到的方法都是,使用findcontours函数,查找最外层轮廓,然后画出找到的轮廓。

这确实是一种方法,但似乎不够高效。下面贴出一个函数,可以更好的实现这个功能。

话不多说,上代码。开发环境 opencv2.4.13+vs2013   其他vs或者opencv版本应该也可以跑出来

void chao_fillHole(const cv::Mat srcimage, cv::Mat &dstimage)
{Size m_Size = srcimage.size();Mat temimage = Mat::zeros(m_Size.height + 2, m_Size.width + 2, srcimage.type());//延展图像  srcimage.copyTo(temimage(Range(1, m_Size.height + 1), Range(1, m_Size.width + 1)));floodFill(temimage, Point(0, 0), Scalar(255));Mat cutImg;//裁剪延展的图像  temimage(Range(1, m_Size.height + 1), Range(1, m_Size.width + 1)).copyTo(cutImg);dstimage = srcimage | (~cutImg);
}

当你仔细看看这几行代码,就会知道,原理很简单了吧。。

运行效果如图所示

opencv 二值图像的孔洞填充相关推荐

  1. pencv 二值图像的孔洞填充

    有的时候,我们需要对图像进行孔洞填充,一般想到的方法都是,使用findcontours函数,查找最外层轮廓,然后画出找到的轮廓. 这确实是一种方法,但似乎不够高效.下面贴出一个函数,可以更好的实现这个 ...

  2. opencv实现二值图像孔洞填充

    matlab中的imfill函数可以方便得实现二值图像的孔洞填充,而在opencv中并没有相同功能的函数.因此,在opencv的基础上编写实现孔洞填充的函数,并且能够设定阈值,对面积大于阈值的孔洞不进 ...

  3. ITK05 孔洞填充

    GrayscaleFillholeImageFilter  填充孔洞,不对边缘造成影响(无平滑边缘效果) itk提供了两个的补洞类:itkGrayscaleFillholeImageFilter(针对 ...

  4. OpenCV函数应用:基于二值图像的三种孔洞填充方法记录(附python,C++代码)

    系列文章目录 函数系列: OpenCV函数简记_第一章数字图像的基本概念(邻域,连通,色彩空间) OpenCV函数简记_第二章数字图像的基本操作(图像读写,图像像素获取,图像ROI获取,图像混合,图形 ...

  5. 【youcans 的 OpenCV 例程200篇】123. 形态算法之孔洞填充

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  6. 【youcans 的 OpenCV 例程200篇】132. 形态学重建之孔洞填充算法

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程20 ...

  7. OpenCV图象孔洞内轮廓填充

    图像内轮廓填充通常称为孔洞填充,主要用于目标提取.不带任何条件的内轮廓填充,在目标密度很大时,可能导致错误填充.一种典型情况,当多个目标粘连,并 且形成环状时,简单的内轮廓填充会将环状内部背景部分误认 ...

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

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

  9. OpenCV技巧 | 二值图孔洞填充方法与实现(附Python/C++源码)

    点击上方"OpenCV与AI深度学习",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 本文主要介绍使用OpenCV对二值图做孔洞填 ...

最新文章

  1. nginx.pid failed (2: The system cannot find the file specified
  2. gradle idea java ssm_应用框架:IDEA+Gradle创建MyBatis+SpringMVC项目
  3. java bean 数据库表_如何从数据库的表格自动生成javabean,包含get/set方法等
  4. SQLite在字符串比较中的大小写问题
  5. 计算机一级wps选择题必背知识点,计算机一级考试wps选择题专项训练
  6. pytorch torch.tensor
  7. 34-指针与二维数组
  8. python批量从pdf中转换图片保存
  9. 免安装Oracle客户端使用PL/SQL连接Oracle
  10. 推送后更改git commit消息(假设没有人从远程拉出)
  11. 重新设置Visual Studio 环境
  12. 读书的作用--引用《儒道至圣》小说章节
  13. PS CC2017安装及破解
  14. 元数据管理——企业数据治理的基石
  15. 张艺谋眼中的2020:科技的人间烟火味
  16. 声源定位系统设计(一)——MVDR波束形成算法
  17. 今日头条广告投放技巧干货:落地页分析工具
  18. quartz和timer的区别
  19. [转贴]“汉龙小学”无一死亡奇迹背后的真相
  20. Java class 与 Class 区别

热门文章

  1. Android Killer(反编译工具)技巧
  2. 在Python应用程序中将Excel转换为HTML操作指南
  3. 联想服务器安装系统蓝屏怎么办,安装Windows操作系统时,蓝屏报错
  4. assoc fetch mysql 用法_php mysql_fetch_assoc 循环遍历表格
  5. 汽车驾驶技巧-倒车入库技巧图解-怎样倒车入库
  6. 小程序华为手机canvas不显示问题
  7. Steam Deck——硬盘,网络,模拟器一命通关教程
  8. Bert中文文本多分类与传统BOW+tfidf+LR中文文本多分类对比
  9. 网盘搜索引擎(原创: 涔歌 涔歌 2018-03-25 特别说明,不同网盘搜索引擎搜录内容、搜索算法、提供的功能不同造成搜索结果差异较大,找不到时可以多尝试几个)...
  10. 关于德鲁伊数据源配置的记录