您的位置:首页 > 运维架构

Hough变换——Opencv版本

2012-04-24 10:44 239 查看
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" );
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: