因為最近畢設(shè)要用到 Gabor 特征提取,所以來總結(jié)一下對 Gabor 濾波器的理解,以及在 OpenCV 中的應用。
1 對 Gabor 濾波器的理解
Fourier 變換是一種信號處理中的有力工具,可以將圖像從空域轉(zhuǎn)換到頻域,并提取到空域上不易提取的特征。但是 Fourier 變換缺乏時間和位置的局部信息。
Gabor 變換是一種加窗短時 Fourier 變換(簡單理解起來就是在特定時間窗內(nèi)做 Fourier 變換),是短時 Fourier 變換中當窗函數(shù)取為高斯函數(shù)時的一種特殊情況。因此,Gabor 濾波器可以在頻域不同尺度、不同方向上提取相關(guān)的特征。另外 Gabor 函數(shù)與人眼的生物作用相仿,所以經(jīng)常用作紋理識別上,并取得了較好的效果。
在二維空間中,使用一個三角函數(shù)(如正弦函數(shù))與一個高斯函數(shù)疊加,我們就得到了一個 Gabor 濾波器。如下圖所示:

2 Gabor 函數(shù)以及參數(shù)含義
二維 Gabor 函數(shù)的數(shù)學表達如下(OpenCV 里好像只用到了實數(shù)部分):
復數(shù)表達

實數(shù)部分

虛數(shù)部分

其中


下面介紹公式中各個參數(shù)的含義:
波長 (λ):表示 Gabor 核函數(shù)中余弦函數(shù)的波長參數(shù)。它的值以像素為單位指定,通常大于等于2,但不能大于輸入圖像尺寸的五分之一。
方向 (θ):表示 Gabor 濾波核中平行條帶的方向。有效值為從0到360度的實數(shù)。
相位偏移 (φ):表示 Gabor 核函數(shù)中余弦函數(shù)的相位參數(shù)。它的取值范圍為-180度到180度。其中,0度和180度對應的方程與原點對稱,-90度和90度的方程分別于原點成中心對稱。
長寬比 (γ):空間縱橫比,決定了 Gabor 函數(shù)形狀的橢圓率。當 γ=1 時,形狀是圓的;當 γ<1 時,形狀隨著平行條紋方向而拉長。通常該值為0.5。
帶寬 (b):Gabor 濾波器的半響應空間頻率帶寬 b 和 σ/ λ 的比率有關(guān),其中 σ 表示 Gabor 函數(shù)的高斯因子的標準差。三者的關(guān)系如下:

σ 的值不能直接設(shè)置,它僅隨著帶寬 b 變化。帶寬值必須是正實數(shù),通常為1,此時,標準差和波長的關(guān)系為 σ=0.56λ。帶寬越小,標準差越大,Gabor 形狀越大,可見平行條紋數(shù)量越多。
3 在 OpenCV 中使用 Gabor 濾波
我在網(wǎng)上看到好多 OpenCV 的代碼實現(xiàn)的 Gabor 函數(shù),但是其實可以利用 OpenCV 的庫函數(shù),實現(xiàn)起來非常簡單,只要幾行代碼。
主要的函數(shù)有以下兩個:
CV_EXPORTS_W Mat getGaborKernel( Size ksize, double sigma, double theta,
double lambd, double gamma, double psi = CV_PI*0.5, int ktype = CV_64F );
CV_EXPORTS_W void filter2D( InputArray src, OutputArray dst, int ddepth,
InputArray kernel, Point anchor = Point(-1,-1), double delta = 0,
int borderType = BORDER_DEFAULT );
(哈哈哈,學會插入代碼了!愛上了 Markdown 編輯器)
getGaborKernel 函數(shù)生成了一個 Gabor 濾波的核,也就是相當于一個模板。參數(shù)參見上面的說明。
filter2D 函數(shù)實現(xiàn)卷積運算。其中參數(shù) ddepth 表示目標圖像深度,ddepth=-1 表示生成與原圖像深度相同的圖像。
4 效果展示
我用了一張視頻截圖來做的濾波,識別文字的效果還是蠻好的。


撒老師的表情非常適合做濾波,2333
參考:
https://blog.csdn.net/jolly12191/article/details/46428107
https://blog.csdn.net/xue_wenyuan/article/details/51533953
https://blog.csdn.net/jinshengtao/article/details/17797641
https://www.cnblogs.com/sdlypyzq/p/4378309.html