1. 程式人生 > >影象演算法:Difference of Gaussian(DOG) 高斯函式差分

影象演算法:Difference of Gaussian(DOG) 高斯函式差分

概念

Difference of Gaussian(DOG)是高斯函式的差分。

它是可以通過將影象與高斯函式進行卷積得到一幅影象的低通濾波結果,即去噪過程,

這裡的Gaussian和高斯低通濾波器的高斯一樣,是一個函式,即為正態分佈函式。

同時,它對高斯拉普拉斯LoG的近似,在某一尺度上的特徵檢測可以通過對兩個相鄰高斯尺度空間的影象相減,得到DoG的響應值影象。

基本理論
首先,高斯函式表示定義為:

其次,兩幅影象的高斯濾波表示為:

最後,將上面濾波得到的兩幅影象g1和g2相減得到:

即:可以DOG表示為:

在具體影象處理中,就是將兩幅影象在不同引數下的高斯濾波結果相減,得到DoG圖。具體步驟如下所示:

第一步,計算不同引數下的DOG

在圖1,圖2,圖3,三種影象給了不同引數下的高斯濾波輸出的效果,如下圖所示:

圖1:一個高斯平滑引數為0.3,另一個高斯平滑引數為0.4

圖2:一個高斯平滑引數為0.6,另一個高斯平滑引數為0.7

圖3 :一個高斯平滑引數為0.7,另一個高斯平滑引數為0.8

第二步,根據DOG,求角點。

根據理論:三維圖中的最大值和最小值點是角點,如圖所示:

標記紅色當前畫素點,綠色的圈標記鄰接畫素點,用這個方式,最多檢測相鄰尺度的26個畫素點。如果它是所有鄰接畫素點的最大值或最小值點,則標記紅色被標記為特徵點,如此依次進行,則可以完成影象的特徵點提取。

因此在第一步後,我們可以計算出的圖1,圖2,圖3三個DOG圖中求圖2中是極值的點,如下圖所示:

圖5:黑色為極小值,白色為極大值

因此,原始影象上以顯示的DOG角點檢測結果,如下圖所示:

參考資料
[1] Difference of Gaussian(DOG) http://fourier.eng.hmc.edu/e161/lectures/gradient/node10.html.

[2] Difference of Gaussian From Wikipedia, the free encyclopedia.

[3] Rafael C.Gonzalez, Rechard E.Woods at. el , "Digital Image Processing Using MatLab (Second Editon)",Gatesamark Publishing.

參考文章

1. https://blog.csdn.net/songzitea/article/details/8831909