天天看點

OpenCV C++頻率域濾波 高斯低通

l  頻率域濾波的基本步驟

OpenCV C++頻率域濾波 高斯低通

思想:通過濾波器函數以某種方式來修改圖像 變換,然後通過取結果的反變換來獲得處理後 的輸出圖像

低通濾波器:

              使低頻通過而使高頻衰減的濾波 器

              被低通濾波的圖像比原始圖像少尖銳的細節部分而 突出平滑過渡部分

              對比空間域濾波的平滑處理,如均值濾波器

高通濾波器:

             使高頻通過而使低頻衰減的濾波 器

            被高通濾波的圖像比原始圖像少灰階級的平滑過渡 而突出邊緣等細節部分

            對比空間域的梯度算子、拉普拉斯算子

OpenCV C++頻率域濾波 高斯低通

從濾波器處理效果的尖銳程度,可以将他們分為三種類型:理想濾波器、巴特沃斯濾波器、高斯濾波器。他們的尖銳程度也是依次遞減。 

再從濾波的通過範圍看,這三種濾波器都有低通、高通、帶通、帶阻四個版本。 

下面将他們的的公式貼出來,就一目了然啦。

理想低通濾波器: 

OpenCV C++頻率域濾波 高斯低通

理想高通濾波器: 

OpenCV C++頻率域濾波 高斯低通

理想帶阻濾波器: 

OpenCV C++頻率域濾波 高斯低通

這裡: 

OpenCV C++頻率域濾波 高斯低通

巴特沃斯低通濾波器: 

OpenCV C++頻率域濾波 高斯低通

巴特沃斯高通濾波器: 

OpenCV C++頻率域濾波 高斯低通

巴特沃斯帶阻濾波器: 

OpenCV C++頻率域濾波 高斯低通

W是帶寬

高斯低通濾波器 

OpenCV C++頻率域濾波 高斯低通

高斯高通濾波器 

OpenCV C++頻率域濾波 高斯低通

高斯帶阻濾波器 

OpenCV C++頻率域濾波 高斯低通

按照公式可以實作任意濾波器。

頻率域濾波——以高斯低通為例

/

    idft( BLUR, BLUR);    //idft結果也為複數

    split(BLUR,plane);//分離通道,主要擷取通道

    magnitude(plane[0],plane[1],plane[0]);  //求幅值(模)

    normalize(plane[0],plane[0],1,0,CV_MINMAX);  //歸一化便于顯示

    return plane[0];//傳回參數

}

結果:

原圖:

OpenCV C++頻率域濾波 高斯低通

原圖像頻譜圖

OpenCV C++頻率域濾波 高斯低通

高斯低通濾波器

OpenCV C++頻率域濾波 高斯低通

結果圖像:

OpenCV C++頻率域濾波 高斯低通

結論

ü   GLPF不能達到有相同截止頻率的二階 BLPF的平滑效果

           ü   GLPF沒有振鈴

ü   如果需要嚴格控制低頻和高頻之間截 至頻率的過渡,選用BLPF,代價是可能 産生振鈴

繼續閱讀