Hough变换——Opencv版本

来源:互联网 发布:写卡器软件 编辑:程序博客网 时间:2024/05/22 13:36
void CCVMFCView::OnHoughLines(){IplImage* src = 0,*color_dst;CvMemStorage* storage = cvCreateMemStorage(0);CvSeq* lines = 0;int i;if (workImg->nChannels==3) {src = cvCreateImage(cvGetSize(workImg), IPL_DEPTH_8U, 1);cvCvtColor(workImg, src, CV_BGR2GRAY);}else {src = cvCloneImage( workImg );}dst = cvCreateImage( cvGetSize(src), 8 ,1 );color_dst = cvCreateImage( cvGetSize(src), 8 ,3);cvFlip(src);cvCanny( src, dst, 50, 120, 3 );cvCvtColor(dst,color_dst,CV_GRAY2BGR);lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 20, 20,30 );//lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1,CV_PI/180, 80, 60,30 );for( i = 0; i < lines->total; i++ ){CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i);cvLine( color_dst, line[0], line[1], CV_RGB(255,0,0), 3, CV_AA, 0 );}cvNamedWindow( "Hough", 1 );cvShowImage( "Hough", color_dst );cvWaitKey(0);cvReleaseMemStorage(&storage );cvReleaseImage( &src );cvReleaseImage( &dst );cvDestroyWindow( "Hough" );}