Hough变换的基本思想
生活随笔
收集整理的這篇文章主要介紹了
Hough变换的基本思想
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
直線的方程可以用y=k*x+b 來表示,其中k和b是參數,分別是斜率和截距。過某一點(x0,y0)的
所有直線的參數都會滿足方程y0=kx0+b。即點(x0,y0)確定了一族直線。方程y0=kx0+b在參數k--b平
面上是一條直線。這樣,圖像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)?!⊥?#xff0c;原圖像上直線y=x上的其它點(如(3,3),(4,4)等) 對應參數
平面上的直線也會通過點(k=1,b=0)。這個性質就為解決問題提供了方法:
首先,初始化一塊緩沖區,對應于參數平面,將其所有數據置為0.對于圖像上每一前景點,求出參
數平面對應的直線,把這直線上的所有點的值都加1。最后,找到參數平面上最大點的位置,這個位置
就是原圖像上直線的參數。
上面就是霍夫變換的基本思想。就是把圖像平面上的點對應到參數平面上的線,最后通過統計特性來
解決問題。假如圖像平面上有兩條直線,那么最終在參數平面上就會看到兩個峰值點,依此類推。
在實際應用中,y=k*x+b形式的直線方程沒有辦法表示x=c形式的直線(這時候,直線的斜率為無窮大)。
所以實際應用中,是采用參數方程p=x*cos(theta)+y*sin(theta)。這樣,圖像平面上的一個點就對應到
參數p---theta平面上的一條曲線上。其它的還是一樣。
所有直線的參數都會滿足方程y0=kx0+b。即點(x0,y0)確定了一族直線。方程y0=kx0+b在參數k--b平
面上是一條直線。這樣,圖像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)?!⊥?#xff0c;原圖像上直線y=x上的其它點(如(3,3),(4,4)等) 對應參數
平面上的直線也會通過點(k=1,b=0)。這個性質就為解決問題提供了方法:
首先,初始化一塊緩沖區,對應于參數平面,將其所有數據置為0.對于圖像上每一前景點,求出參
數平面對應的直線,把這直線上的所有點的值都加1。最后,找到參數平面上最大點的位置,這個位置
就是原圖像上直線的參數。
上面就是霍夫變換的基本思想。就是把圖像平面上的點對應到參數平面上的線,最后通過統計特性來
解決問題。假如圖像平面上有兩條直線,那么最終在參數平面上就會看到兩個峰值點,依此類推。
在實際應用中,y=k*x+b形式的直線方程沒有辦法表示x=c形式的直線(這時候,直線的斜率為無窮大)。
所以實際應用中,是采用參數方程p=x*cos(theta)+y*sin(theta)。這樣,圖像平面上的一個點就對應到
參數p---theta平面上的一條曲線上。其它的還是一樣。
總結
以上是生活随笔為你收集整理的Hough变换的基本思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机械革命推出新款旷世 X 旗舰水冷本:4
- 下一篇: DB与dBm