Gabor濾波器及其在OpenCV中的使用

因為最近畢設(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • Gabor函數(shù)是一個用于邊緣提取的線性濾波器,十分適合紋理表達和分離,其頻率和方向表達同人類視覺系統(tǒng)類似。另外從生...
    sunsimple閱讀 3,257評論 0 0
  • 一、傅立葉變換的由來 關(guān)于傅立葉變換,無論是書本還是在網(wǎng)上可以很容易找到關(guān)于傅立葉變換的描述,但是大都是些故弄玄虛...
    constant007閱讀 4,685評論 1 10
  • 這些年計算機視覺識別和搜索這個領(lǐng)域非常熱鬧,后期出現(xiàn)了很多的創(chuàng)業(yè)公司,大公司也在這方面也花了很多力氣在做。做視覺搜...
    方弟閱讀 6,759評論 6 24
  • 通常,大家在剛剛接觸水晶的時候,會用水晶的品種來定義水晶的作用。 依據(jù)顏色來劃分,有白水晶、粉水晶、紫水晶等;依據(jù)...
    蓋亞的禮物閱讀 6,507評論 1 8

友情鏈接更多精彩內(nèi)容