1
我目前使用Hough變換來獲得直線。但是有很多線條被檢測到。我可以知道如何過濾,只能從輸出中獲得最長的一行嗎?如何過濾Hough變換後僅最長的行
HoughLinesP(dst, lines, 1, CV_PI/180, 50, 20, 10); //left lane
for(size_t i = 0; i < lines.size(); i++)
{
Vec4i l = lines[i];
double theta1,theta2, hyp, result;
theta1 = (l[3]-l[1]);
theta2 = (l[2]-l[0]);
hyp = hypot(theta1,theta2);
line(cdst, Point(l[0], l[1]), Point(l[2], l[3]), Scalar(255,0,0), 3, CV_AA);
}
imshow("detected lines", cdst);
}
「// l現在有你的最大長度線」No. l是線條的最後一個元素。你不更新max_dist,所以max_dist
FooBar
@FooBar:Ooopsies。非常抱歉。我的錯。現在更新,謝謝! –
嗨@aspiring_sarge和FooBar,我試過了,但似乎所有的線仍然出現。這是由於for循環嗎?或者我需要先把它放在什麼地方?仍然在調試 –