Hough直线检测


利用Hough变换完成直线检测,网上的huogh检测程序总是出错,我的这个程序已经调试通过,放心下载.直线检测的流程是:输入灰度图像,接下来是二值化处理变成黑白图像,然后通过Canny边缘检测算子获取边缘,最后利用霍夫变换检测直线,并绘制在原灰度图上面。
资源截图
代码片段和文件信息
/* This is a standalone program. Pass an image name as the first parameter
of the program.  Switch between standard and probabilistic Hough transform
by changing “#if 1“ to “#if 0“ and back */
#include 
#include 
#include 
#include “limits“

using namespace cv;
const int kvalue = 15;//双边滤波邻域大小


int main()
{


Mat srcdstcolor_dst;
    src=imread(“14.下极板镀层直线右(3-1).bmp“);
imshow(“原图“ src);
Canny(srcdst1501803);
imshow(“Canny边缘检测“ dst);

    cvtColor( dst color_dst CV_GRAY2BGR );

#if 0
    vector lines;
    HoughLines( dst lines 1 CV_PI/180 100 );

    for( size_t i = 0; i < lines.size(); i++ )
    {
        float rho = lines[i][0];
        float theta = lines[i][1];
        double a = cos(theta) b = sin(theta);
        double x0 = a*rho y0 = b*rho;
        Point pt1(cvRound(x0 + 1000*(-b))
                  cvRound(y0 + 1000*(a)));
        Point pt2(cvRound(x0 - 1000*(-b))
                  cvRound(y0 - 1000*(a)));
        line( color_dst pt1 pt2 Scalar(00255) 3 8 );
    }
#else  这里采用的是LinesP也是一种相对简便的方式
    vector lines;//注意这里使用的格式
    HoughLinesP( dst lines 1 CV_PI/180 80 30 10 );
    for( size_t i = 0; i < lines.size(); i++ )
    {
       // line( dst Point(lines[i][0] lines[i][1])
line( src Point(lines[i][0] lines[i][1])
            Point(lines[i][2] lines[i][3]) Scalar(00255) 3 8 );//注意这里绘图的时候的颜色值,在cv里的颜色是BGR
    }
#endif
    namedWindow( “Source“ 1 );
    imshow( “Source“ src );
imwrite( “Source.bmp“ src );

   /* namedWindow( “Detected Lines“ 1 );
    imshow( “Detected Lines“ color_dst );*/

    waitKey(0);
    return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-23 19:23  Hough直线检测
     目录           0  2017-12-23 19:23  Hough直线检测Debug
     文件       74752  2017-12-19 15:31  Hough直线检测DebugHough.exe
     文件      479280  2017-12-19 15:31  Hough直线检测DebugHough.ilk
     文件     1657856  2017-12-19 15:31  Hough直线检测DebugHough.pdb
     文件       77824  2017-12-19 17:03  Hough直线检测DebugHoughLine.exe
     文件      528260  2017-12-19 17:03  Hough直线检测DebugHoughLine.ilk
     文件     1682432  2017-12-19 17:03  Hough直线检测DebugHoughLine.pdb
     目录           0  2017-12-23 19:23  Hough直线检测Hough
     文件     1448758  2014-07-21 20:40  Hough直线检测Hough.bmp
     文件     1448758  2016-04-17 10:22  Hough直线检测Hough14.下极板镀层直线右(3-1).bmp
     文件     1448758  2014-07-21 20:45  Hough直线检测Hough6.bmp
     文件     1448758  2017-12-19 16:05  Hough直线检测HoughCanny边缘检测.bmp
     文件     1448758  2017-12-19 16:00  Hough直线检测HoughCanny边缘检测11.bmp
     目录           0  2017-12-23 19:23  Hough直线检测HoughDebug
     文件       65080  2017-12-20 15:11  Hough直线检测HoughDebugCL.read.1.tlog
     文件         500  2017-12-20 15:11  Hough直线检测HoughDebugCL.write.1.tlog
     文件          97  2017-12-19 15:31  Hough直线检测HoughDebugHough.lastbuildstate
     文件        1759  2017-12-19 17:03  Hough直线检测HoughDebugHough.log
     文件       77824  2017-12-20 15:11  Hough直线检测HoughDebugHoughLine.exe
     文件      912640  2017-12-20 15:11  Hough直线检测HoughDebugHoughLine.ilk
     文件         122  2017-12-20 15:11  Hough直线检测HoughDebugHoughLine.lastbuildstate
     文件        1909  2017-12-20 15:11  Hough直线检测HoughDebugHoughLine.log
     文件     1698816  2017-12-20 15:11  Hough直线检测HoughDebugHoughLine.pdb
     文件        3366  2017-12-20 15:11  Hough直线检测HoughDebugcl.command.1.tlog
     文件      246088  2017-12-19 15:31  Hough直线检测HoughDebughough.obj
     文件      263563  2017-12-20 15:11  Hough直线检测HoughDebughoughline.obj
     文件           2  2017-12-20 15:11  Hough直线检测HoughDebuglink-cvtres.read.1.tlog
     文件           2  2017-12-20 15:11  Hough直线检测HoughDebuglink-cvtres.write.1.tlog
     文件           2  2017-12-20 15:11  Hough直线检测HoughDebuglink-rc.read.1.tlog
     文件           2  2017-12-20 15:11  Hough直线检测HoughDebuglink-rc.write.1.tlog
............此处省略81个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)