2011-09-24 58 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

的感謝!我曾擔心它會變成簡單的東西。今晚我會看看。 –