2016-12-01 95 views
0

我试图实现Hough transform算法。霍夫变换:在负责的矩阵中放置负向矩阵的位置

我在图像的左上角设置了cartesian plane的原点。

THETA(rho和X轴之间的角度)的范围是1..180,具有度的步骤。 rho的最大尺寸是图像对角线的大小。 我想计算累加器矩阵。鉴于其大小以上的信息应该是Y:rho,X:180(theta)。

该算法对我来说似乎很简单,但是rho存在问题。它会有负面的价值。对于从THETA 0 PI /2 RHO将只有正的,因为COS都是正的。然而,从PI/2PI THETA,因为COS为负这里,而积极的,这取决于X,该点的y坐标,RHO可能为负值。

我的问题是:在计算累加器矩阵时,我应该如何处理负值rho?我应该在哪里放置它们?

回答

0

在rho-theta空间行L1 = (rho, theta)L2 = (rho, theta + 180)是相同的,因为行没有选定的方向。

因此,只要改变消极theta(你怎么了?获得),以theta + 180

+0

所以我想我已经改用(THETA + 180),只要r为阴性(THETA),反之亦然。这是正确的吗?我举了一个例子,theta = 2PI/3,和(x,y)=(9,4)。 'r'在这种情况下为负数(-1.03)。但是对于theta = PI + 2PI/3它是正数(1.03)。 –

+0

你不应该得到负面的价值。对于每个非零点,您将索引范围为0..179(或1..180)和0..diagonal – MBo