1. 程式人生 > >Hough變換提取直線

Hough變換提取直線

1.霍夫變換是影象處理中的一種特徵提取技術,它通過一種投票演算法檢測具有特定形狀的物體。該過程在一個引數空間中通過計算累計結果的區域性最大值得到一個符合該特定形狀的集合作為霍夫變換結果。經典霍夫變換用來檢測影象中的直線,後來霍夫變換擴充套件到任意形狀物體的識別,多為圓和橢圓。

霍夫變換運用兩個座標空間之間的變換將在一個空間中具有相同形狀的曲線或直線對映到另一個座標空間的一個點上形成峰值,從而把檢測任意形狀的問題轉化為統計峰值問題

2.我們來說明Hough變換的定義:

    如下圖,直角座標系中有一條直線l,原點到該直線的垂直距離為ρ,垂線與x軸的夾角為θ,則這條直線是唯一的,且該直線在極座標系中的方程為:

ρ=xcosθ+ysinθ。

這條直線在極座標引數空間中表示為一點(ρ,θ),可見極座標系中一條直線對應極座標引數空間中某一點(ρ,θ),這種線到點的變換就叫Hough變換。

 在直角座標系中過任一點(x0,y0)的直線系,如下圖。滿足 :(1)

從上述直線系滿足的表示式我們可以知道,這些直線在極座標引數空間所對應的點(ρ,θ)構成一條正弦曲線。反之,這條正弦曲線上的某一點對應直角座標系中過(x0,y0)的一條直線,如下圖


看不清,參考https://wenku.baidu.com/view/2e3fd069ddccda38376baf23.html

設平面上有若干點,過每點的直線系分別對應極座標引數空間上的一條正弦曲線

,若這些曲線有共同的交點(ρ0,θ0),則這些點共線,且對應的直線方程為ρ0=xcosθ0+ysinθ0.這就是hough檢測直線的原理。


演算法:
1)將(ρ,θ)空間量化,得到二維矩陣Mρ,θMρ,θ)是一個累加器,初始值為0,Mρ,θ)=0.

2)對邊界上的每一個點(xi,yi),將θ的所有量化值帶入式1,計算出相應的ρ,並將對應累加器加1,Mρ,θ)=Mρ,θ)+1.

3)將全部(xi,yi)處理後,分析Mρ,θ),如果Mρ,θ)>T,就認為存在一條有意義的線段,T是一個剔除虛假或沒意義的線段的閾值,由影象先驗知識決定.

4)由(xi,yi)和ρ,θ)共同確定影象中的線段,並將斷裂部分連線起來。