Opencv处理图像之轮廓提取

  

本文实例为大家分享了Opencv处理图像之轮廓提取,使用cvfindContours对图像进行轮廓检测,供大家参考,具体内容如下

        # include   # include   # include   int main ()   {      IplImage * img=cvLoadImage (“E: \ \ test.bmp ", 0);   IplImage * imgColor=cvCreateImage (cvGetSize (img), 8日,3);   IplImage * contoursImage=cvCreateImage (cvSize (img→宽度,img→高度),8日,1);      cvNamedWindow(“回族”);   cvShowImage(“回族”,img);   cvThreshold (img, img, 100255年,CV_THRESH_BINARY);//二值化图像以100为阀值   cvNamedWindow (“2”);   cvShowImage (“2”, img);      CvSeq *轮廓=0,* contoursTemp=0;   cvZero (contoursImage);      cvCvtColor (img imgColor CV_GRAY2BGR);//颜色转化函数//img:需要提前的图片需要二值//存储:存放的空间//轮廓:指向轮廓提取的第一个轮廓//运算符(CvContour):采用的是哪一种结构以及大?/CV_RETR_LIST:轮廓存储方式//CV_CHAIN_APPROX_NONE:采用坐标集表示轮廓   CvMemStorage *存储=cvCreateMemStorage (0);   int总=cvFindContours (img、存储和轮廓,sizeof (CvContour) CV_RETR_LIST, CV_CHAIN_APPROX_NONE, cvPoint (0, 0));   printf (" % d”,总);//输出总的轮廓数   contoursTemp=轮廓;      而(contoursTemp !=0) {   (int i=0; i< contoursTemp→总,我+ +){   CvPoint * pt=(CvPoint *) cvGetSeqElem (contoursTemp,我);   cvSetReal2D (contoursImage pt→y, pt→x 255.0);   cvSet2D (imgColor pt→y, pt→x, cvScalar (0, 0255 .0));   }   contoursTemp=contoursTemp→h_next;   }   cvNamedWindow (img);   cvShowImage (img, imgColor);   cvNamedWindow (“contoursImage”);   cvShowImage (“contoursImage”, contoursImage);   cvWaitKey (0);   返回0;   }      

 Opencv处理图像之轮廓提取

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Opencv处理图像之轮廓提取