今晚想到要将之前轮廓检测所得到的各个轮廓提取出来观察并找到特征点进行特征检测.通过查找相关资料和群友的帮助之下,终于实现了这个功能,下面是主要代码:
for(int o=0;contour;contour = contour->h_next)
{
cvNamedWindow("Sub Image", 1);
//取得最小外接矩形
CvRect rect = cvBoundingRect(contour);
tmp=cvCreateImage(cvSize(rect.width, rect.height), IPL_DEPTH_8U, 3);//图像放大
tmp2=cvCreateImage(cvSize(rect.width*20, rect.height*20), IPL_DEPTH_8U, 3);
cvSetImageROI( pContourImg, rect );
cvCopy(pContourImg, tmp, NULL);
cvResize( tmp, tmp2, CV_INTER_AREA );//显示图像
cvShowImage( "Sub Image", tmp2 );
o++;
//保存图像
if(cvWaitKey(0)=='s'){
sprintf(s, "C://MyTestImages//%d%d.bmp", time(NULL),o);
cvSaveImage(s,tmp2);
}
cvResetImageROI(pContourImg);
cvReleaseImage( &tmp );
cvDestroyWindow( "Sub Image" );
}
提取各个轮廓图像后就可以进行分析判断,从而提取出想要的信息.