我试图从嘈杂的图像中检测线条,结果我得到了太多线条。我需要多次遍历行,这对于这么多行来说太慢了,我只对足够长的行感兴趣。
我检测行的代码如下:
// Edge detection
int lowThreshold = 35;
Canny(greyMat, dst, lowThreshold, lowThreshold * 3, 3);
cv::blur(dst, dst, cv::Size(2,2));
// Standard Hough Line Transform
std::vector<cv::Vec2f> lines; // will hold the results of the detection
HoughLines(dst, lines, 1, rho_resolution, 150, 0, 0 ); // runs the actual detection
HoughLines 将检测 100 条线,我只对中间形成矩形的长线感兴趣。如何删除短线?如果我增加 Canny 阈值,则不会检测到我需要的某些行。