资源描述:
《基于opencv 的contour图像边缘检测算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、contour轮廓检测#ifdef_CH_#pragmapackage#endif#ifndef_EiC#include"cv.h"#include"cxcore.h"#include"highgui.h"#include#endif#definew500intlevels=3;CvSeq*contours=0;voidon_trackbar(intpos){IplImage*cnt_img=cvCreateImage(cvSize(w,w),8,3);CvSeq*_contours=conto
2、urs;int_levels=levels-3;if(_levels<=0)//gettothenearestfacetomakeitlookmorefunny_contours=_contours->h_next->h_next->h_next;cvZero(cnt_img);cvDrawContours(cnt_img,_contours,CV_RGB(255,0,0),CV_RGB(0,255,0),_levels,3,CV_AA,cvPoint(0,0));cvShowImage("contours",cnt_img)
3、;cvReleaseImage(&cnt_img);}intmain(intargc,char**argv){inti,j;CvMemStorage*storage=cvCreateMemStorage(0);IplImage*img=cvCreateImage(cvSize(w,w),8,1);cvZero(img);for(i=0;i<6;i++){intdx=(i%2)*250-30;intdy=(i/2)*150;CvScalarwhite=cvRealScalar(255);CvScalarblack=cvRealS
4、calar(0);if(i==0){for(j=0;j<=10;j++){doubleangle=(j+5)*CV_PI/21;cvLine(img,cvPoint(cvRound(dx+100+j*10-80*cos(angle)),cvRound(dy+100-90*sin(angle))),cvPoint(cvRound(dx+100+j*10-30*cos(angle)),cvRound(dy+100-30*sin(angle))),white,1,8,0);}}cvEllipse(img,cvPoint(dx+150
5、,dy+100),cvSize(100,70),0,0,360,white,-1,8,0);cvEllipse(img,cvPoint(dx+115,dy+70),cvSize(30,20),0,0,360,black,-1,8,0);cvEllipse(img,cvPoint(dx+185,dy+70),cvSize(30,20),0,0,360,black,-1,8,0);cvEllipse(img,cvPoint(dx+115,dy+70),cvSize(15,15),0,0,360,white,-1,8,0);cvEl
6、lipse(img,cvPoint(dx+185,dy+70),cvSize(15,15),0,0,360,white,-1,8,0);cvEllipse(img,cvPoint(dx+115,dy+70),cvSize(5,5),0,0,360,black,-1,8,0);cvEllipse(img,cvPoint(dx+185,dy+70),cvSize(5,5),0,0,360,black,-1,8,0);cvEllipse(img,cvPoint(dx+150,dy+100),cvSize(10,5),0,0,360,
7、black,-1,8,0);cvEllipse(img,cvPoint(dx+150,dy+150),cvSize(40,10),0,0,360,black,-1,8,0);cvEllipse(img,cvPoint(dx+27,dy+100),cvSize(20,35),0,0,360,white,-1,8,0);cvEllipse(img,cvPoint(dx+273,dy+100),cvSize(20,35),0,0,360,white,-1,8,0);}cvNamedWindow("image",1);cvShowIm
8、age("image",img);cvFindContours(img,storage,&contours,sizeof(CvContour),CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));//commentthisout