gpt4 book ai didi

opencv - 如何从极坐标中找到一条线(霍夫变换混淆)

转载 作者:太空宇宙 更新时间:2023-11-03 21:05:01 26 4
gpt4 key购买 nike

我最近开始了一个简历类(class),正在复习以前的作业(当前的作业尚未发布)。我已经实现了一个 Hough Lines 函数,我循环遍历每个点,如果它是一条边,那么我循环遍历 0-180(或 -90 到 90)theta 值,并计算 rho,最后存储在一个数组中。

当我尝试从极坐标转换回来时,我可以找到一对 X、Y(使用 rho * sin(theta) 和 rho * cos(theta)),但是我不明白如何将其转换为笛卡尔空间中的一条线。要有一条线,您需要 2 个点或一个点和一个方向(当然假设是射线)

我才明白重点在哪里。

我已经做了一些搜索,但似乎无法完全找到答案,人们倾向于说,polar 告诉你 x,然后 bam 你有一条笛卡尔线,但我似乎错过“bam”所在的连接。

这里描述了我的意思; Explain Hough Transformation

还有 Vector/line from polar coordinates哪里问我如何从极坐标画一条线,响应很好这里是 x 和 y。但对我来说从未提及该解决方案的其余部分。

这条线是否与 y = mx+b 有某种关系,其中 m 是 theta,b 是 rho?

如果不是,我如何转换回笛卡尔空间中的一条线。

编辑:在查看 Sunreef 的答案并尝试转换后,y 站在了它自己的一边,我也发现了这个答案: How to convert coordinates back to image (x,y) from hough transformation (rho, theta)?

似乎我想我要找的是这个

m = -cotθ

c = p*cosecθ

编辑#2我在网上找到了一些其他例子。基本上是的,我需要 rho * sin(theta) 和 rho*cos(theta)

让我感到困惑的另一部分是我需要转换为弧度,一旦我这样做了,我就开始得到很好的结果。

最佳答案

你是对的,你可以在直线上得到一些基点作为

 (X0, Y0) = (rho * cos(theta), rho * sin(theta))

你可以找到这条直线垂直于法线的(单位)方向向量:

(dx, dy) = ( -sin(theta), cos(theta))

关于opencv - 如何从极坐标中找到一条线(霍夫变换混淆),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39114989/

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