基础学习笔记之连通域处理函数

基础学习笔记之连通域处理函数

ID:21241033

大小:223.65 KB

页数:8页

时间:2018-10-20

基础学习笔记之连通域处理函数_第1页
基础学习笔记之连通域处理函数_第2页
基础学习笔记之连通域处理函数_第3页
基础学习笔记之连通域处理函数_第4页
基础学习笔记之连通域处理函数_第5页
资源描述:

《基础学习笔记之连通域处理函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、前目在阁像处理过程屮,经常会遇到这样一部分阁像,阁像的整体部分如果人来看的话一眼就能看出,但是它的IV部山于有各种小缺口,导致断开了,这样在汁算机“眼”里就被认为是断开的,为了使图像达到适应人眼的感觉,耑要将这些缺口和断开的口给连接上去,这就耑要川到计算机阁形学屮的连通域处理技术。本文给山一个简单的连通域处理函数,当然这个函数是來自OpenCV著名教程LearningOpenCV屮,只不过它的接口是雉于c版本的OpenCV,而到0前为止,雉于C++接口的OpenCV已经是主流,所以我将其接口改成/C++版的,识足其内部一些

2、代码基木没有动它。开发环境:OpenCV2.4.3+QtCreator2.5.1实验基础首先来看这个连通域处观函数的形式:voidConnectedComponents(Mat&mask_process,intpoly1_hullO,floatperimScale,intnumber=0,Rect&bounding_box=Rect(),Point&contour_centers=Point(-1,-1));参数mask农示的足耑要进行连通域处理二值图像。参数poly1_hullO表示轮廓边缘足否采用多边形拟合,如果该参数

3、为1,则表示采用多边形拟合,否则采用凸包拟合。参数perimScale是用来将那些小的轮廓去掉,那些小的轮廓时指它的周长小于(mask长+宽)/perimScale。当然你在其内部代码也可以该为面积來判断。参数num农示实际需要处理最多的轮廓的个数(如果输入的mask有多个轮廓的话),这里的处理是桁计算出这些轮廓的外接矩形和屮心点。默认值为0,表示函数内部不需耍处理这些外接矩形和屮心点。参数bbs衣示的是处理完后对应轮廓的外接矩形,默认值为Rect(),衣示不耑要返冋这些外接矩形。参数centers表示处理完后对应轮廓的屮

4、心点坐标,默认值为Point(-1,-1),表示不需要返冋这些中心点。C/C++知识点总结:如果一些函数需要默认值的诂,可以直接在函数定义的时候指定,该指定并不一定是具体的某个位,也可以是空值等等。另外在函数内部实现时,冇时候要注意默认值的特殊性。实验结果所耑处理原始图像的灰度图:K对应的mask图像:■>askEZ)@(E]使川多项式拟合的连通域处理后阁像:醺outl使用凸包粜拟合的连通域处理C的图像:■Iout?EZl@(E]实验代码及注释(附录有工程code下载地址):main.cpp:#include

5、am〉#includeusingnamespacecv;usingnamespacestd;//Justsomeconvieniencemacros#defineCV_CVX_WHITECV_RGB(Oxff,Oxff,Oxff)#defineCV_CVX_BLACKCV_RGB(0x00,0x00,0x00)voidConnectedComponents(Mat&mask_process,intpolyl_hull0,floatperimScale,intnumber=0,Rectaboundin

6、g_box=Rect(),Point^contourcenters=Point(-1,-1))/*卜*而4句代码是为了兼容原函数接口,即内部使用的是c风格,但是其接U是C++风格的*/Ipllmage*mask=&mask_process

7、ge*mem_storage=NULL;staticCvSeq*contours=NULL;//CLEANUPRAWMASK//幵运算作用:平滑轮廓,去掉细节,断开缺口cvMorphologyEx(mask,mask,NULL,NULL,CV_MOP_OPEN,1);//对输入mask进行开操作,CVCLOSE_ITR为幵操作的次数,输!li为mask图像//闭运算作用:平滑轮廓,连接缺UcvMorphologyEx(mask,mask,NULL,NULL,CV_MOP_CLOSE,1);//对输入mask进行闭操作,CV

8、CLOSE_ITR为闭操作的次数,输出为mask图像//FINDCONTOURSAROUNDONLYBIGGERREGIONSif(mem_storage==NULL)mem_storage=cvCreateMemStorage(0);elsecvClearMemStorage(mem_storage)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。