opencv二值图孔洞填充算法(方法系转载)
来源:互联网 发布:sql2000附加数据库金蝶 编辑:程序博客网 时间:2024/04/25 23:09
方法原文见:http://geniusshare.i.sohu.com/blog/view/149854097.htm 作者:天才的自省
孔洞者,不与大背景联通却具有大背景颜色的像素也,所以思路如下:将大背景全部用前景色(白色)填充(cvFloodFill函数,一(0,0)为种子点即可),即得到孔洞图(此时孔洞用为黑色),然后将此图二值反转,即得到用白色表示的孔洞图,然后将此空洞图与原二值图相加(使用cvAdd函数即可)即可将孔洞填充掉,这个方法目前寂静基本上可以填充孔洞,但是还有一点瑕疵,那就是用完cvFloodFill函数填充大背景后边界却保留下来了,即未填充,当然这个对孔洞填充来说的视觉效果上没有什么影响的,但是严格来讲还是有一点问题的,我查阅了cvFloodFill函数的参数说明,却未看出到底是什么使得边缘不被填充而被保留了下来,如果解决了这个问题,那这个填充算法就完美了。
实现代码:
IplImage* otst_test=cvLoadImage("f:\\S1212L06_ROI.jpg",CV_LOAD_IMAGE_GRAYSCALE);IplImage* fillHole=cvCreateImage(cvGetSize(otst_test),IPL_DEPTH_8U,1);CIrisLocalization tt;double teet=tt.otsu((unsigned char*)otst_test->imageData,otst_test->height,otst_test->width,0,0,otst_test->width,otst_test->height,0);cvThreshold(otst_test,otst_test,teet,255,CV_THRESH_BINARY);cvNamedWindow("src");cvShowImage("src",otst_test);fillHole=cvCloneImage(otst_test);cvFloodFill(fillHole,cvPoint(0,0),cvScalarAll(1));cvNot(otst_test,otst_test);cvNamedWindow("not");cvShowImage("not",otst_test);cvAdd(otst_test,fillHole,otst_test,NULL);cvNamedWindow("fillHole");cvShowImage("fillHole",fillHole);cvNamedWindow("result");cvShowImage("result",otst_test);
- opencv二值图孔洞填充算法(方法系转载)
- opencv二值图孔洞填充算法
- opencv二值图孔洞填充算法
- opencv填充孔洞
- OpenCV图象孔洞内轮廓填充
- OpenCV图像内轮廓填-孔洞填充
- OpenCV图像内轮廓填-孔洞填充
- OpenCV图象孔洞内轮廓填充
- OpenCV图象孔洞内轮廓填充
- opencv 二值图像的孔洞填充
- OPENCV二值化图像内孔洞填充/小区域去除
- OPENCV二值化图像内孔洞填充/小区域去除
- 使用opencv实现matlab中的imfill填充孔洞功能
- OPENCV二值化图像内孔洞填充/小区域去除
- Opencv图像识别从零到精通(24)------漫水填充,种子填充,区域生长、孔洞填充
- opencv 实现孔洞填充的两个解决方案 MATLAB--imfill功能(收集)
- 形态学填充孔洞的几个问题
- itk中的数据孔洞填充
- 为什么1.3.6.1.2.1.2.1.0的值是32呢?
- SQl如何避免除零错误 小结
- PC端如何判断出“USB调试”模式是否打开了?
- 【ACM】杭电1070:Milk
- oracle关于模糊查询的问题
- opencv二值图孔洞填充算法(方法系转载)
- sgu 122 The book
- Problem A: Arti cial Intelligence? 结题报告
- 图像变形(二)
- 10月总结
- Android应用开发之(按需设置Broadcast receiver)
- 歌厅歌曲管理系统(转)用c语言实现的一个课程设计
- python:将数字转换成用英文表达的程序
- Oracle中的NULL和空字符串