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

Hough变换——Opencv版本

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