gpt4 book ai didi

c++ - 如何添加对角概率霍夫线

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:14 24 4
gpt4 key购买 nike

在我的代码中,我仅通过 HoughLinesP (OpenCV) 检测垂直线。这是剪切输出的示例:

enter image description here

它曾经是一扇门,然后我应用了 canny 算法。通过仅设置 90 度角,将只检测到垂直线(红色的)。但现在我想在门上方的这个小部分也添加绿线。

角度是这样计算的:

    double angle = atan2(ppt2.y - ppt1.y, ppt2.x - ppt1.x) * 180.0 / CV_PI;
if (angle) {
line(cdst, ppt1, ppt2, Scalar(0, 0, 255), 2, CV_AA);
}

那么我怎样才能额外检测到绿色的呢?尤其是门上方的那些?谢谢!

最佳答案

您的结果仅显示垂直线,虽然是的,您拒绝了精确的水平线,但您可能需要查看该测试实际移除的内容。此外,拒绝水平线与仅接受垂直线不同,我认为在这种情况下,您基本上只能从 HoughLinesP 获得垂直线。

无论如何,要检测到更多对角线,您必须更改 HoughLinesP theta 参数,从 pi/2 开始:

HoughLinesP(dst, lines, 1, CV_PI / 2, 66, 50, 150);

例如:

HoughLinesP(dst, lines, 1, CV_PI / 180.0, 66, 50, 150);

然后你可能需要让你的角度拒绝更稳健/复杂以拒绝奇怪的角度线以及 atan2 返回的精确 0.000000000000 弧度线,无论如何它似乎更有弹性,例如画面角度的微小变化,以检查角度范围,例如+/-0.01

关于c++ - 如何添加对角概率霍夫线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com