2011-09-24 92 views
1

我正在使用霍夫变换(极坐标)。我想从hough变换的坐标中计算一条线的向量表示。霍夫变换坐标的有效线

我目前的实现循环遍历图像中从(0,0)到(M,N)的所有像素坐标,其中M和N是图像的大小。当循环遍历空间时,计算该值:

//角度和ρho是霍夫空间的极坐标。 tmp =(int)((i * cos(angle))+(j * sin(angle)));

其中tmp-rho == 0是行的一部分,所以我跟踪该位置。当循环到达图像(i,j)==(M,N)的末端时,循环再次从相反的方向(M,N)到(0,0)完成。

从左到右的第一个(tmp-rho == 0)和从右到左的第二个(tmp-rho == 0)是该线的坐标。然后,我减去这些像素坐标以获得霍夫空间中的线的向量。

这是非常低效率(慢),我100%肯定有一个更好的方法来计算这个,但是,我似乎无法弄清楚。任何帮助将不胜感激!

回答

4

可以解决您的方程I = 0,= N的我= M,J = 0,J代替循环

rho = i * cos(angle) + j * sin(angle) 

i = 0 --> j1 = rho/sin(angle) 
i = M --> j2 = (rho - M*cos(angle))/sin(angle) 
j = 0 --> i1 = rho/cos(angle) 
j = N --> i2 = (rho - N*sin(angle))/cos(angle) 
+0

的感谢!我曾担心它会变成简单的东西。今晚我会看看。 –