OpenCV C++检测图片里的直线

发布时间:2026/8/1 1:55:35
OpenCV C++检测图片里的直线 这个程序使用OpenCV C检测图片里的直线。输入图片是一张数独的图片有很多横线和竖线程序运行后显示检测到的直线代码int main() { Mat src imread(sudoku.png); Mat dst imread(sudoku.png); Mat gray imread(sudoku.png,0); Canny(gray, gray, 50, 200, 3); vectorVec2f lines; HoughLines(gray, lines, 1, CV_PI/180, 150, 0, 0 ); for( size_t i 0; i lines.size(); i ) { float rho lines[i][0], theta lines[i][1]; Point pt1, pt2; double a cos(theta), b sin(theta); double x0 a*rho, y0 b*rho; pt1.x cvRound(x0 1000*(-b)); pt1.y cvRound(y0 1000*(a)); pt2.x cvRound(x0 - 1000*(-b)); pt2.y cvRound(y0 - 1000*(a)); line(dst, pt1, pt2, Scalar(0,0,255), 3, LINE_AA); } imshow(src, src); imshow(dst, dst); waitKey(); }