zoukankan      html  css  js  c++  java
  • 霍夫变换直线检测

    一、霍夫变换直线检测:

    1.众所周知, 一条直线在图像二维空间可由两个变量表示. 如:
          <1>在笛卡尔坐标系: 可由参数: 斜率和截距(m,b)表示。 
          <2>在极坐标系: 可由参数: 极径和极角(r, θ)表示。

     可以用极坐标系来表示直线. 因此, 直线的表达式可为:     

                           

     化简便可得到:

                         

     

     

     

     

     有经验的人可以使用:

     

     代码:

    #include <opencv2/opencv.hpp>
    #include <iostream>
    #include <math.h>
    
    using namespace cv;
    using namespace std;
    
    int main(int argc, char** argv) {
        Mat src, src_gray, dst;
        src = imread("L:/7.png");
        if (!src.data) {
            printf("could not load image...
    ");
            return -1;
        }
        char INPUT_TITLE[] = "input image";
        char OUTPUT_TITLE[] = "hough-line-detection";
        namedWindow(INPUT_TITLE, CV_WINDOW_AUTOSIZE);
        namedWindow(OUTPUT_TITLE, CV_WINDOW_AUTOSIZE);
        imshow(INPUT_TITLE, src);
    
        Canny(src, src_gray, 100, 200);
        cvtColor(src_gray, dst, CV_GRAY2BGR);
        imshow("edge_image", src_gray);
         
    
        vector<Vec4f> plines;        //定义的一个数组
        HoughLinesP(src_gray, plines, 1, CV_PI / 180.0, 10, 0, 10);
        //
        Scalar color = Scalar(0, 0, 255);
        for (size_t i = 0; i < plines.size(); i++)
        {
            Vec4f hline = plines[i];
            line(dst, Point(hline[0], hline[1]), Point(hline[2], hline[3]), color, 3,LINE_AA );
            //Poinnt为起始点位置, 颜色,3为线条粗,LINE_AA为线条类型。
            /*  线条类型:
                LINE_8 (or 0) - 8-connected line(8邻接)连接 线。
                 LINE_4 - 4-connected line(4邻接)连接线。
                LINE_AA - antialiased 线条。
            */
    
        }
        
        imshow(OUTPUT_TITLE, dst);
        waitKey(0);
        return 0;
    }

    实验结果:

    输入                                       边缘检测                                 霍夫直线检测

  • 相关阅读:
    Datatables 在asp.net mvc
    VS Code开发调试.NET Core
    领域模型中的用户设计
    MVC数组模型绑定
    Java RMI(远程方法调用) 实例与分析 (转)
    oracle转mysql总结(转)
    Windows远程桌面连接Ubuntu 14.04 (转)
    oracle转Mysql中,varchar2(10)和number应该转换为什么类型? (转)
    MySQL与Oracle的语法区别详细对比 (转)
    python购物淫秽数据分析(2)
  • 原文地址:https://www.cnblogs.com/Jack-Elvis/p/11454127.html
Copyright © 2011-2022 走看看