opencv二值图孔洞填充算法
2015-06-30 15:37
183 查看
申明,本文非笔者原创,原文转载自:http://geniusshare.blog.sohu.com/149854097.html
孔洞者,不与大背景联通却具有大背景颜色的像素也,所以思路如下:将大背景全部用前景色(白色)填充(cvFloodFill函数,一(0,0)为种子点即可),即得到孔洞图(此时孔洞用为黑色),然后将此图二值反转,即得到用白色表示的孔洞图,然后将此空洞图与原二值图相加(使用cvAdd函数即可)即可将孔洞填充掉,这个方法目前寂静基本上可以填充孔洞,但是还有一点瑕疵,那就是用完cvFloodFill函数填充大背景后边界却保留下来了,即未填充,当然这个对孔洞填充来说的视觉效果上没有什么影响的,但是严格来讲还是有一点问题的,我查阅了cvFloodFill函数的参数说明,却未看出到底是什么使得边缘不被填充而被保留了下来,如果解决了这个问题,那这个填充算法就完美了。
孔洞者,不与大背景联通却具有大背景颜色的像素也,所以思路如下:将大背景全部用前景色(白色)填充(cvFloodFill函数,一(0,0)为种子点即可),即得到孔洞图(此时孔洞用为黑色),然后将此图二值反转,即得到用白色表示的孔洞图,然后将此空洞图与原二值图相加(使用cvAdd函数即可)即可将孔洞填充掉,这个方法目前寂静基本上可以填充孔洞,但是还有一点瑕疵,那就是用完cvFloodFill函数填充大背景后边界却保留下来了,即未填充,当然这个对孔洞填充来说的视觉效果上没有什么影响的,但是严格来讲还是有一点问题的,我查阅了cvFloodFill函数的参数说明,却未看出到底是什么使得边缘不被填充而被保留了下来,如果解决了这个问题,那这个填充算法就完美了。
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#数据结构与算法揭秘二
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#常见算法面试题小结
- JavaScript 组件之旅(二)编码实现和算法
- PHP排序算法类实例