一、簡單介紹
Hough變換是圖像處理中從圖像中識(shí)別幾何形狀的基本方法之一。Hough變換的基本原理在于利用點(diǎn)與線的對(duì)偶性,將原始圖像空間的給定的曲線通過曲線表達(dá)形式變?yōu)閰?shù)空間的一個(gè)點(diǎn)。這樣就把原始圖像中給定曲線的檢測問題轉(zhuǎn)化為尋找參數(shù)空間中的峰值問題。也即把檢測整體特性轉(zhuǎn)化為檢測局部特性。比如直線、橢圓、圓、弧線等。
二、Hough變換的基本思想
設(shè)已知一黑白圖像上畫了一條直線,要求出這條直線所在的位置。我們知道,直線的方程可以用y=k*x+b 來表示,其中k和b是參數(shù),分別是斜率和截距。過某一點(diǎn)(x0,y0)的所有直線的參數(shù)都會(huì)滿足方程y0=kx0+b。即點(diǎn)(x0,y0)確定了一族直線。方程y0=kx0+b在參數(shù)k--b平面上是一條直線,(你也可以是方程b=-x0*k+y0對(duì)應(yīng)的直線)。這樣,圖像x--y平面上的一個(gè)前景像素點(diǎn)就對(duì)應(yīng)到參數(shù)平面上的一條直線。我們舉個(gè)例子說明解決前面那個(gè)問題的原理。設(shè)圖像上的直線是y=x, 我們先取上面的三個(gè)點(diǎn):A(0,0), B(1,1), C(22)。可以求出,過A點(diǎn)的直線的參數(shù)要滿足方程b=0, 過B點(diǎn)的直線的參數(shù)要滿足方程1=k+b, 過C點(diǎn)的直線的參數(shù)要滿足方程2=2k+b, 這三個(gè)方程就對(duì)應(yīng)著參數(shù)平面上的三條直線,而這三條直線會(huì)相交于一點(diǎn)(k=1,b=0)?!⊥?,原圖像上直線y=x上的其它點(diǎn)(如(3,3),(4,4)等) 對(duì)應(yīng)參數(shù)平面上的直線也會(huì)通過點(diǎn)(k=1,b=0)。這個(gè)性質(zhì)就為我們解決問題提供了方法,就是把圖像平面上的點(diǎn)對(duì)應(yīng)到參數(shù)平面上的線,最后通過統(tǒng)計(jì)特性來解決問題。假如圖像平面上有兩條直線,那么最終在參數(shù)平面上就會(huì)看到兩個(gè)峰值點(diǎn),依此類推。
簡而言之,Hough變換思想為:在原始圖像坐標(biāo)系下的一個(gè)點(diǎn)對(duì)應(yīng)了參數(shù)坐標(biāo)系中的一條直線,同樣參數(shù)坐標(biāo)系的一條直線對(duì)應(yīng)了原始坐標(biāo)系下的一個(gè)點(diǎn),然后,原始坐標(biāo)系下呈現(xiàn)直線的所有點(diǎn),它們的斜率和截距是相同的,所以它們?cè)趨?shù)坐標(biāo)系下對(duì)應(yīng)于同一個(gè)點(diǎn)。這樣在將原始坐標(biāo)系下的各個(gè)點(diǎn)投影到參數(shù)坐標(biāo)系下之后,看參數(shù)坐標(biāo)系下有沒有聚集點(diǎn),這樣的聚集點(diǎn)就對(duì)應(yīng)了原始坐標(biāo)系下的直線。
在實(shí)際應(yīng)用中,y=k*x+b形式的直線方程沒有辦法表示x=c形式的直線(這時(shí)候,直線的斜率為無窮大)。所以實(shí)際應(yīng)用中,是采用參數(shù)方程p=x*cos(theta)+y*sin(theta)。這樣,圖像平面上的一個(gè)點(diǎn)就對(duì)應(yīng)到參數(shù)p---theta平面上的一條曲線上,其它的還是一樣。
三、Hough變換推廣
1、已知半徑的圓
其實(shí)Hough變換可以檢測任意的已知表達(dá)形式的曲線,關(guān)鍵是看其參數(shù)空間的選擇,參數(shù)空間的選擇可以根據(jù)它的表達(dá)形式而定。比如圓的表達(dá)形式為 ,所以當(dāng)檢測某一半徑的圓的時(shí)候,可以選擇與原圖像空間同樣的空間作為參數(shù)空間。那么圓圖像空間中的一個(gè)圓對(duì)應(yīng)了參數(shù)空間中的一個(gè)點(diǎn),參數(shù)空間中的一個(gè)點(diǎn)對(duì)應(yīng)了圖像空間中的一個(gè)圓,圓圖像空間中在同一個(gè)圓上的點(diǎn),它們的參數(shù)相同即a,b相同,那么它們?cè)趨?shù)空間中的對(duì)應(yīng)的圓就會(huì)過同一個(gè)點(diǎn)(a,b),所以,將原圖像空間中的所有點(diǎn)變換到參數(shù)空間后,根據(jù)參數(shù)空間中點(diǎn)的聚集程度就可以判斷出圖像空間中有沒有近似于圓的圖形。如果有的話,這個(gè)參數(shù)就是圓的參數(shù)。
2、未知半徑的圓
對(duì)于圓的半徑未知的情況下,可以看作是有三個(gè)參數(shù)的圓的檢測,中心和半徑。這個(gè)時(shí)候原理仍然相同,只是參數(shù)空間的維數(shù)升高,計(jì)算量增大。圖像空間中的任意一個(gè)點(diǎn)都對(duì)應(yīng)了參數(shù)空間中的一簇圓曲線。 ,其實(shí)是一個(gè)圓錐型。參數(shù)空間中的任意一個(gè)點(diǎn)對(duì)應(yīng)了圖像空間中的一個(gè)圓。
3、橢圓
橢圓有5個(gè)自由參數(shù),所以它的參數(shù)空間是5維的,因此他的計(jì)算量非常大,所以提出了許多的改進(jìn)算法。
四、總結(jié)
圖像空間中的在同一個(gè)圓,直線,橢圓上的點(diǎn),每一個(gè)點(diǎn)都對(duì)應(yīng)了參數(shù)空間中的一個(gè)圖形,在圖像空間中這些點(diǎn)都滿足它們的方程這一個(gè)條件,所以這些點(diǎn),每個(gè)投影后得到的圖像都會(huì)經(jīng)過這個(gè)參數(shù)空間中的點(diǎn)。也就是在參數(shù)空間中它們會(huì)相交于一點(diǎn)。所以,當(dāng)參數(shù)空間中的這個(gè)相交點(diǎn)的越大的話,那么說明元圖像空間中滿足這個(gè)參數(shù)的圖形越飽滿。越象我們要檢測的東西。
Hough變換能夠查找任意的曲線,只要你給定它的方程。Hough變換在檢驗(yàn)已知形狀的目標(biāo)方面具有受曲線間斷影響小和不受圖形旋轉(zhuǎn)的影響的優(yōu)點(diǎn),即使目標(biāo)有稍許缺損或污染也能被正確識(shí)別。