在圖像處理領域,Gabor濾波器通常用於紋理分析和特徵提取等方面,這主要是因為Gabor濾波器在頻率和方向上的表達類似於人類視覺系統。本節我們將使用Gabor算法對圖像進行處理,並結合餘弦相似度、歐氏距離度量方法及Naive檢索方法對圖像進行相似性檢索。
7.10.1 Gabor算法的使用
在 Windows 7 環境下,安裝 Microsoft Visual Studio 2010 軟件,並配置OpenCV2.4.9。
本算法對應的項目名稱是texture。打開texture文件夾,然後使用Visual Studio 2010編譯工具打開texuture.sln文件,並配置OpenCV2.4.9及以上版本。
數據輸入可在主函數的以下兩行代碼中修改:
第一行是圖像的格式,第二行是圖像文件夾的名稱。註:目前該代碼只能實現RGB圖像。
圖像的縮放比例參數在doGabor代碼中修改:
double scale = 0.5;
結果的輸出在當前項目路徑下的「CosEuDis_similityGABORFeature1.txt」或「EuDis_similityGABORFeature1.txt」文件中。其中前者是利用相似餘弦距離匹配後的結果,後者是利用歐氏距離匹配後的結果。註:本算法中,相似餘弦距離的閾值為0.50,歐氏距離的閾值為62000。
測試圖像為image1文件夾下的「\\image\\S001-002.jpg」圖像。
測試圖像集在當前項目下,文件名稱為image1。
按照以上步驟,執行texture.cpp文件即可。
7.10.2 Gabor算法原理
在空間域中,二維的Gabor濾波器由高斯核函數和正弦平面波的乘積組成。Gabor函數的數學公式如下[10,11]:
實數部分:
虛數部分:
(x, y)表示圖像中像素的位置(坐標)。
λ:波長,該參數以像素為單位。
θ:取值範圍0~2π,是Gabor函數並行條紋的方向,它決定了Gabor條紋的方向。
φ:指相位偏移,決定了Gabor函數的對稱性,如φ=0時,為中心對稱。
σ:高斯函數的標準差。
γ:空間的寬高比,它決定了Gabor條紋的尺度(大小)。
下面講述Gabor濾波器的相關參數調優。
參考文獻[10]基於C++實現了Gabor,運行上述程序時需要調整Gabor函數的參數。下面是通過調整參數得到的不同Gabor濾波結果,分別在圖7-12、圖7-13、圖7-14中進行展示。
(1)調整參數θ後的Gabor濾波結果比較(見圖7-12),其中其他參數為:γ=1.0,λ=10.0,σ=100,0。
圖7-12 調整參數θ後的Gabor濾波結果
(2)調整參數λ後的Gabor濾波結果比較(見圖7-13),其中其他參數為:θ=0,γ=1.0,σ= 100,0。
圖7-13 調整參數λ後的Gabor濾波結果
從上面的示例可以看出,Gabor濾波器具有方向選擇性(θ)和尺度選擇性(λ)。此外,對濾波器輸出產生影響的參數還有高斯函數的作用範圍,即高斯窗體。不同高斯窗體的濾波結果如圖7-14所示,其中width為濾波寬度,height為濾波高度。
圖7-14 調整參數width和height後的Gabor濾波結果
7.10.3 Gabor算法實現
在主函數中,讀取每一幅圖像,並調用doGabor函數獲得該圖像Gabor處理後的特徵,進而做PCA降維處理,再進行匹配。本書使用了文獻[12]中實現的Gabor濾波程序,相關代碼如下:
gaborfilter的相關具體實現如下:
7.10.4 Gabor算法的實驗數據、實驗結果及分析
1.實驗數據
該算法的實驗數據為當前路徑下的image1文件夾下的所有JPG圖像。原圖像的尺寸為1200×1600像素,在本次實驗中,我們設置的尺寸為0.5,也就是說,我們將圖像的尺寸縮放到600×800像素。
2.實驗結果
查詢圖像如圖7-15所示。
圖7-15 查詢圖像(6)
檢索出的部分相似圖像如圖7-16所示。
圖7-16 檢索出的部分相似圖像(6)
以下是實驗結果的兩個表格,其中,表7-5表示圖像庫中的圖像與檢索圖像之間的餘弦相似度,表7-6表示圖像庫中的圖像與檢索圖像之間的歐氏距離。「yes」表示返回機器視覺上的相似圖像,換而言之,表示在閾值範圍內的相似圖像。
基於餘弦相似度度量的Gabor圖像檢索算法的實驗結果如表7-5所示。
表7-5 基於餘弦相似度度量的Gabor圖像檢索算法的實驗結果
續表
基於歐氏距離度量的Gabor圖像檢索算法的實驗結果如表7-6所示。
表7-6 基於歐氏距離度量的Gabor圖像檢索算法的實驗結果
續表
續表
3.實驗分析
從實驗結果中看出,該算法對圖像的塗抹、覆蓋很敏感。但是整體上,匹配到的相似圖像的成效尚可。基於餘弦相似度度量的Gabor算法的閾值為0.50,查准率為29/31×100%=93.5%,查全率為29/40×100%=72.5%。基於歐氏距離度量的Gabor算法的閾值為62000,查准率為37/41×100%=90.2%,查全率為37/40×100%=92.5%。