matlab對圖像進行濾波,濾波器應該是個幾乘幾的矩陣?

最近在做數字圖像處理方面的東西,一直不清楚一個濾波器到底應該是個幾乘幾的矩陣?


謝邀。

是feature domain的濾波還是frequency domain的濾波。。。

feature domain的濾波(濾鏡),濾波器(mask)多大都行,但常用mask都是n x n,n是個位數,gain一般為1,一般採用convolution演算法。用matlab的話使用fspecial創建常用mask,imfilter函數apply mask。也有特殊的濾鏡,除了濾波器還需進一步計算,例如sobel filter,malab函數edge(Image,"sobel")。

frequency domain的濾波,濾波器(filter)一般和圖像大小相等,使用點乘法。


根據《Visual Studio 高級圖形程序設計教程(兼容VB5.0!)》的說法,濾波器幾乘幾都可以。


濾波窗口一般都是(2n+1)x(2n+1) (n=1,2,3,...)

濾波器的大小影響濾波的效果,一般來說越小濾波效果越不明顯,越大越明顯。


RTFM


題主問的太開放了,濾波的目的和方式很多,比如降噪、反降晰(去模糊)等等。具體問到採用多大的窗口,看你需求。對於降噪,採用越大的窗口結果中雜訊看起來越少,但是損失的信息會越多。


可以設計所謂的多尺度,也就是根據實際的圖像大小,對模板做些放大縮小,例如3×3,5×5,7×7


一般來說,濾波器階數越高越好,但階數太高複雜度又太大。

其實,matlab那麼多help和Demo,題主為什麼不多試試呢,這樣理解更深。


推薦閱讀:

有沒有一鍵式的、傻瓜式的深度學習工具?如果有,是哪個?
為什麼人類對倒置的熟悉人臉頭像沒有記憶和審美能力?
自動售貨機是如何識別不同面額的紙幣的?
sift演算法特徵點如何匹配?
行為識別常用哪種特徵提取?

TAG:圖像處理 | MATLAB | 圖像識別 | 特徵提取 |