我最近开始了 CV 课程,并且正在阅读旧作业(当前未发布)。我已经实现了一个霍夫线函数,我循环遍历每个点,如果它是一个边,然后我循环遍历 0-180(或-90 到 90)theta 值,并计算 rho,最后存储在一个数组中。
当我尝试从极坐标转换回来时,我可以找到一个 X、Y 对(使用 rho * sin(theta) 和 rho * cos(theta)),但是我不明白如何将其转换为笛卡尔空间。要拥有一条线,您需要 2 个点或一个点和一个方向(当然,假设是射线)
我才明白重点在哪里。
我已经进行了一些搜索,但似乎无法找到答案,人们倾向于说,polar 告诉你 x,然后 bam 你在笛卡尔有一条线,但我似乎错过了“bam”所在的那个连接.
我的意思是在这里描述; 解释霍夫变换
还有来自极坐标的矢量/线 在哪里被问到如何从极坐标中画一条线,这里的响应很好是 x 和 y。但对我来说,从未提及该解决方案的其余部分。
这条线是否与 y = mx+b 相关,其中 m 是 theta,b 是 rho?
如果不是,我如何转换回笛卡尔空间中的一条线。
编辑:在查看了 Sunreef 的答案并尝试将 y 转换为它自己之后,我也发现了这个答案: 如何将坐标从霍夫变换(rho,theta)转换回图像(x,y)?
看来我想我正在寻找的是这个
m = -cotθ
c = p*cosecθ
EDIT#2 我在网上找到了一些其他的例子。基本上是的,我需要 rho * sin(theta) 和 rho*cos(theta)
让我感到困惑的另一部分是我需要转换为弧度,一旦我这样做了,我就开始得到很好的结果。