写在前面
霍夫直线变换理论小白易懂:
https://www.bilibili.com/video/BV1bb411b7VQ?from=search&seid=13282514100449874212
代码
#include<iostream>
#include<opencv2/opencv.hpp>
#include<cmath>
using namespace std;
using namespace cv;
int main() {
Mat src = imread("A:\\专用\\TestForTheCV\\class21直线.jpg");
Mat dst;
imshow("图片", src);
Mat gray_src;
Canny(src, gray_src, 150, 200);
//cvtColor(gray_src, dst, CV_GRAY2BGR);
dst = Mat(src);
imshow("gray", gray_src);
imshow("gray2bgr", dst);
vector<Vec4f> plines;
HoughLinesP(gray_src, plines,1, CV_PI / 180,10, 0, 10); //增大最后一个值,可以使直线更加连续
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]), Scalar(0, 0, 255), 3, LINE_AA);
}
imshow("dst", dst);
waitKey(0);
return 0;
}
/*
霍夫直线变换理论小白易懂:
https://www.bilibili.com/video/BV1bb411b7VQ?from=search&seid=13282514100449874212
*/