⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 houghlines.cpp

📁 OpenCV的各类例子
💻 CPP
字号:
/*  这是一个命令行程序,以图像作为文件输入变量   编译时选择“#if 1”或“#if 0”,可以使用标准和概率HOUGH变换两种方法 */#include <cv.h>#include <highgui.h>#include <math.h>int main(int argc, char** argv){    IplImage* src;    if( argc == 2 && (src=cvLoadImage(argv[1], 0))!= 0)    {        IplImage* dst = cvCreateImage( cvGetSize(src), 8, 1 );        IplImage* color_dst = cvCreateImage( cvGetSize(src), 8, 3 );        CvMemStorage* storage = cvCreateMemStorage(0);        CvSeq* lines = 0;        int i;        cvCanny( src, dst, 50, 200, 3 );        cvCvtColor( dst, color_dst, CV_GRAY2BGR );#if 1        lines = cvHoughLines2( dst, storage, CV_HOUGH_STANDARD, 1, CV_PI/180, 150, 0, 0 );        for( i = 0; i < lines->total; i++ )        {            float* line = (float*)cvGetSeqElem(lines,i);            float rho = line[0];            float theta = line[1];            CvPoint pt1, pt2;            double a = cos(theta), b = sin(theta);            if( fabs(a) < 0.001 )            {                pt1.x = pt2.x = cvRound(rho);                pt1.y = 0;                pt2.y = color_dst->height;            }            else if( fabs(b) < 0.001 )            {                pt1.y = pt2.y = cvRound(rho);                pt1.x = 0;                pt2.x = color_dst->width;            }            else            {                pt1.x = 0;                pt1.y = cvRound(rho/b);                pt2.x = cvRound(rho/a);                pt2.y = 0;            }            cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, 8 );        }#else        lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 80, 30, 10 );        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, 8 );        }#endif        cvNamedWindow( "Source", 1 );        cvShowImage( "Source", src );        cvNamedWindow( "Hough", 1 );        cvShowImage( "Hough", color_dst );        cvWaitKey(0);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -