過某一點(x0,y0)的全部直線的參數都會知足方程y0=kx0+b,在k-b空間中,以一個點表示。算法
一條直線在圖像中是一系列離散點的集合,經過一個直線的離散極座標公式,能夠表達出直線的離散點幾何等式以下:spa
X *cos(theta) + y * sin(theta) = rorm
其中角度theta指r與X軸之間的夾角,r爲到直線幾何垂直距離。任何在直線上點,x, y均可以表達,其中 r, theta是常量。xml
r, theta則是咱們要尋找 的變量。blog
若是咱們能繪製每一個(r, theta)值根據像素點座標P(x, y)值的話,那麼就從圖像笛卡爾座標系統轉換到極座標霍夫空間系統,這種從點到曲線的變換稱爲直線的霍夫變換。form
變換經過量化霍夫參數空間爲有限個值間隔等分或者累加格子。當霍夫變換算法開始,每一個像素座標點P(x, y)被轉換到(r, theta)的曲線點上面,累加到對應的格子數據點,當一個波峯出現時候,說明有直線存在。一樣的原理,咱們能夠用來檢測圓,只是對於圓的參數方程變爲以下等式:變量
(x –a ) ^2 + (y-b) ^ 2 = r^2原理
其中(a, b)爲圓的中心點座標,r圓的半徑。這樣霍夫的參數空間就變成一個三維參數空間。transform