hough
變換的基本原理在於利用點與線的對偶性,將原始影象空間的給定的曲線通過曲線表達形式變為引數空間的乙個點。這樣就把原始影象中給定曲線的檢測問題轉化為尋找引數空間中的峰值問題。也即把檢測整體特性轉化為檢測區域性特性。比如直線、橢圓、圓、弧線等。
二、hough
變換的基本思想
設已知一黑白影象上畫了一條直線,要求出這條直線所在的位置。我們知道,直線的方程可以用
y=k*x+b
來表示,其中k和
b是引數,分別是斜率和截距。過某一點
(x0,y0)
的所有直線的引數都會滿足方程
y0=kx0+b
。即點(x0,y0)
確定了一族直線。方程
y0=kx0+b
在引數k--b
平面上是一條直線,
(你也可以是方程
b=-x0*k+y0
對應的直線
)。這樣,影象
x--y
平面上的乙個前景畫素點就對應到引數平面上的一條直線。我們舉個例子說明解決前面那個問題的原理。設影象上的直線是
y=x,
我們先取上面的三個點:
a(0,0), b(1,1), c(22)
。可以求出,過
a點的直線的引數要滿足方程
b=0, 過b
點的直線的引數要滿足方程
1=k+b, 過c
點的直線的引數要滿足方程
2=2k+b,
這三個方程就對應著引數平面上的三條直線,而這三條直線會相交於一點
(k=1,b=0)
。 同理,原影象上直線
y=x上的其它點(如
(3,3),(4,4)等)
對應引數平面上的直線也會通過點
(k=1,b=0)
。這個性質就為我們解決問題提供了方法,就是把影象平面上的點對應到引數平面上的線,最後通過統計特性來解決問題。假如影象平面上有兩條直線,那麼最終在引數平面上就會看到兩個峰值點,依此類推。
簡而言之,
hough
變換思想為:在原始影象座標系下的乙個點對應了引數座標系中的一條直線,同樣引數座標系的一條直線對應了原始座標系下的乙個點,然後,原始座標系下呈現直線的所有點,它們的斜率和截距是相同的,所以它們在引數座標系下對應於同乙個點。這樣在將原始座標系下的各個點投影到引數座標系下之後,看引數座標系下有沒有聚集點,這樣的聚集點就對應了原始座標系下的直線。
在實際應用中,
y=k*x+b
形式的直線方程沒有辦法表示
x=c形式的直線
(這時候,直線的斜率為無窮大
)。所以實際應用中,是採用引數方程
p=x*cos(theta)+y*sin(theta)
。這樣,影象平面上的乙個點就對應到引數
p---theta
平面上的一條曲線上,其它的還是一樣。 三、
hough
變換推廣 1
、已知半徑的圓 其實
hough
變換可以檢測任意的已知表達形式的曲線,關鍵是看其引數空間的選擇,引數空間的選擇可以根據它的表達形式而定。比如圓的表達形式為
,所以當檢測某一半徑的圓的時候,可以選擇與原影象空間同樣的空間作為引數空間。那麼圓影象空間中的乙個圓對應了引數空間中的乙個點,引數空間中的乙個點對應了影象空間中的乙個圓,圓影象空間中在同乙個圓上的點,它們的引數相同即a,
b相同,那麼它們在引數空間中的對應的圓就會過同乙個點(a,
b),所以,將原影象空間中的所有點變換到引數空間後,根據引數空間中點的聚集程度就可以判斷出影象空間中有沒有近似於圓的圖形。如果有的話,這個引數就是圓的引數。 2
、未知半徑的圓
對於圓的半徑未知的情況下,可以看作是有三個引數的圓的檢測,中心和半徑。這個時候原理仍然相同,只是引數空間的維數公升高,計算量增大。影象空間中的任意乙個點都對應了引數空間中的一簇圓曲線。
,其實是乙個圓錐型。引數空間中的任意乙個點對應了影象空間中的乙個圓。 3
、橢圓
橢圓有5
個自由引數,所以它的引數空間是
5維的,因此他的計算量非常大,所以提出了許多的改進演算法。
opencv 霍夫變換檢測直線:
21 霍夫變換(Hough)
1 霍夫變換直線檢測 還有圓檢測,統一幾何形狀檢測 2 相關api 3 演示 1 hough line transform用來做直線檢測 2 前提條件 邊緣檢測已經完成 canny運算 3 將平面直角座標轉換到極座標系中,霍夫空間 極座標空間,平面直角座標 空域,將影象從空域轉換到霍夫域 4 霍夫直...
hough變換直線檢測 霍夫圓變換
霍夫圓變換的基本原理和霍夫線變換的原理類似,直線檢測中對應極座標點被三維的圓心點 x,y 以及半徑r即 x,y,r 所代替。對於圓來說,圓心點和半徑就可以確定乙個圓。三維空間中曲線相交於一點的邊緣點集越多,那麼它們經過的共同圓上的畫素點越多,那麼它們經過的共同圓上的畫素點就許多,設定相應的閾值相應的...
hough變換直線檢測 霍夫變換是怎麼發明的
原創 範 純真學者出神入化 2月24日 本文由純真學者出神入化編譯自 講述霍夫 hough 變換如何被發明的故事。hough變換用於檢測數字影象中的直線等幾何特徵,可能是計算機視覺中使用最廣泛的程式之一 1 3 雖然沒有人列出計算機視覺中使用任何特定演算法或技術的頻率,但我們可以通過注意在googl...