Hough變換的直線檢測基礎
阿新 • • 發佈:2018-12-14
一、Hough 變換(直線)
Hough變換是依賴於投票機制的,在引數空間統計原空間下點的貢獻值(投票)得到了累計值,累積量的峰值確定了所要的檢測目標 1。以直線為例,在二維平面X - Y 中,直線方程可以描述為點斜式: 若是已知直線的(k,b)那麼也就唯一的確定了平面上的直線。我們把(k,b)所組成的空間理解為引數空間(K,B)。過X-Y平面上的一點有無數條直線,對應引數空間有無數個點(k,b),他們滿足 也就是引數空間(K,B)上的一條直線。由於直線的斜率可能取值很大,不利於統計計算。如下圖所示,直線可以用唯一確定。
所以對X-Y平面上的直線方程改為: 此時,平面X-Y上的一條直線對應引數空間 上的一個點,過X-Y平面上的一個點的所有直線,在引數空間 上得到一條曲線。 注意:
- 1、上式雖然可以由點的極座標形式推導得出,但是並非極座標系,仍是笛卡爾座標系下得到的引數。
- 2、是原點到直線的距離,並不會取負值,但是由於取值範圍的原因,會有負數的情況。
二、影象變換實現步驟
- 1 、對影象做二值化或者取邊緣資訊,得到影象,這裡假設影象大小為640*480.
- 2、設定引數的取值範圍: 取值, 取值為(直覺上並不會取到-800)
- 3、設儲存點出現的次數。
- 3、遍歷二值化影象,得到第一個非零點 ,帶入到: 取值間隔1,得到一系列點,在相應的加一。依次處理整幅圖片。
三、Opencv 下的測試結果