我想知道爲什麼霍夫變換使用rho=xcos(theta) + ysin(theta)
表示直線(y=mx+b)
。我試圖解決這個問題(並且去了wikipedia article這個問題),但是找不到從另一箇中派生出一個方法的方法。Hough變換公式
有誰知道如何從另一個派生一個?
預先感謝您。
我想知道爲什麼霍夫變換使用rho=xcos(theta) + ysin(theta)
表示直線(y=mx+b)
。我試圖解決這個問題(並且去了wikipedia article這個問題),但是找不到從另一箇中派生出一個方法的方法。Hough變換公式
有誰知道如何從另一個派生一個?
預先感謝您。
推導:
方程式x/a + y/b = 1
:
從三角,回想一下角度爲t
的光線如何投射到x軸和y軸上ccording到(angle=t, radius=1) -> (x=cos(t), y=sin(t))
*
戰平標記點的切線。三角函數(或甚至具有類似三角形的幾何體)告訴我們切線在x=1/cos(t)
,y=1/sin(t)
處相交。因此距離1的線路將具有a=1/cos(t)
和b=1/sin(t)
,因此由x/(1/cos(t)) + y/(1/sin(t)) = 1
描述...
...這僅僅是cos(t) x + sin(t) y = rho
其中rho=1
你可以看到,rho
對應於行多遠是從原點(通過與方程玩耍,或指出的是,這裏的乘法只是縮放所有值相同,有效地縮放網格)。
每對rho, theta
涉及一種x,y
一對用於從所述原點,所述距離rho
一個給定的線以角度就行theta
地方,你在x,y
座標。
的rho, theta
方程來代替y=mx+b
使得rho, theta
值的序列可以被放入方程而不與所述y=mx+b
方法,其中所述斜率是未定義出現的計算問題(即,行是垂直的)。
Downvoter,關心幫助我改進的答案嗎? –
這只是從線性座標系轉換爲旋轉座標系的轉換。這樣做的原因是維基百科的文章中概述:
在Hough變換,一個主要的想法是考慮直線的特徵不是像點(X1,Y1),(X2,Y2),而是取決於其參數,即斜率參數m和截距參數b。基於這個事實,直線y = mx + b可以表示爲參數空間中的點(b,m)。然而,人們面臨的問題是垂直線引起參數m和b的無限值。出於計算原因,因此對於Hough變換中的線,使用不同的一對參數(表示爲r和θ(theta))是更好的。
以及兩者之間轉換,使用公式y = -(cos(theta)/sin(theta))x + r/sin(theta)
。因此m = -(cos(theta)/sin(theta))
和b = r/sin(theta)
。當sin(theta)=0
或theta=0
時,這些顯然會失效,這就是爲什麼旋轉座標系是首選(斜線無限長的線條沒有任何問題)。
感謝您的解釋。 – Vignesh