灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3758回复:0

Hough变换——Opencv版本

楼主#
更多 发布于:2012-09-06 12:31

[cpp]
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" );
}




喜欢0 评分0
游客

返回顶部