基於HOUGH變換的矩形的檢測
在影象中查詢直線、圓、橢圓的方法很多,網上也有很多類似的原始碼。但是介紹矩形(正方形,長方形)查詢的方法很少,本文介紹基於HOUGH變換的矩形的檢測。
1、 首先介紹以下直線的極座標方程。
ρ = x * cos θ + y * sin θ
轉換k = (- cos θ1)/(sin θ1)
y = k*x + b
b = ρ1/(sin θ1) + oy - ox *k
注:(ox,oy)為中心座標。
用C(ρ,θ)表示累積值陣列。
2、 平面空間
注:P1,P2,P3,P4為矩形的四點,a,b為矩形的長寬,α1,α0分別為長寬與座標系原點的角度。
HT空間:
(注:H1=(ρ1,θ1),H2=(ρ2,θ2),H3=(ρ3,θ3),H4=(ρ4,θ4))
四個頂點的一般關係:
1) 當θ= α1時,形成了H1,H2,即有H1,H2點。
當θ= α0時,形成了H3,H4,即有H3,H4點。
2) 判斷是否與θ對稱,若以θ軸為對稱軸,則有:
ρ1 +ρ2 = 0和ρ3 +ρ4 = 0
3) 直線垂直時
△ θ = 90度(|α1 –α0| = 90)
4) 線段的長度
C(ρ1,θ1)= C(ρ2,θ2)= b
C(ρ3,θ3)= C(ρ4,θ4)= a
5) 點或直線的距離
ρ1 -ρ2 = a
ρ3 -ρ4 = b
大部分情況下,滿足條件1),2),3)。
3.演算法:
1) 找到一個點,在距離[Dmin,Dmax]之間搜尋。
2) 增強C(ρ,θ)模型(略)
3) 檢測矩形型別
若在增強之後的C(ρ,θ)中有H1=(ρ1,θ1),H2=(ρ2,θ2)…Hm=(ρm,θm)。
根據 △θ = |θi –θj | < Tθ ,注:Tθ表示域值。
△ρ = |ρi +ρj | < Tρ
| C(ρi,θi–C(ρj,θj | 〈 TL * (C(ρi,θi)+C(ρj,θj))/2
判斷直線i,j是否有關聯。
若滿足上面的關係表示式,就說明有關聯。令Pk = (+/- Уk,αk),條件:
αk = 1/2 *(θi +θj)
Уk = 1/2 *(ρi -ρj)
下一步:判斷直角線,垂直線
△α = | |αk -αl | — 90’ | < Tα (域值)
則直線Pk,Pl是垂直的。
最後:可以檢測到矩形的中心點。
方向為αk。
兩邊的長度為2Уk與2Уl。
歡迎關注我們的機器視覺二維碼,一起學習交流。
二維碼如下:
http://
ww2。sinaimg。cn/mw690/a1
4eb5b5gw1fa4ut8oviaj20fk09et9s。jpg
歡迎轉載機器視覺助手的文章,我們也希望能夠讓更多的對機器視覺感興趣的人看到我們的文章,不過在轉載之前請獲得我們的授權或嚴格按照要求進行轉載