功能:對任意類型數組或多維圖像進行濾波。
B = imfilter(A,H,option1,option2,...)
或寫作g = imfilter(f, w, filtering_mode, boundary_options, size_options)
其中,f爲輸入圖像,w爲濾波掩模,g爲濾波後圖像。filtering_mode用於指定在濾波過程中是使用“相關”還是“卷積”。boundary_options用於處理邊界充零問題,邊界的大小由濾波器的大小確定。具體參數選項見下表:
選項 | 描述 | |
filtering_mode | ‘corr’ | 通過使用相關來完成,該值爲默認。 |
‘conv’ | 通過使用卷積來完成 | |
boundary_options | ‘X’ | 輸入圖像的邊界通過用值X(無引號)來填充擴展 其默認值爲0 |
‘replicate’ | 圖像大小通過複製外邊界的值來擴展 | |
‘symmetric’ | 圖像大小通過鏡像反射其邊界來擴展 | |
‘circular’ | 圖像大小通過將圖像看成是一個二維週期函數的一個週期來擴展 | |
size_options | ‘full’ | 輸出圖像的大小與被擴展圖像的大小相同 |
‘same’ | 輸出圖像的大小與輸入圖像的大小相同。這可通過將濾波掩模的中心點的偏移限制到原圖像中包含的點來實現,該值爲默認值。 |
例一,matlab代碼如下:
originalRGB = imread('peppers.png');
imshow(originalRGB)
h = fspecial('motion', 50, 45);%創建一個濾波器
filteredRGB = imfilter(originalRGB, h);
figure, imshow(filteredRGB)
運行結果爲如下:
originalRGB = imread('peppers.png');
imshow(originalRGB)
h = fspecial('average');%創建一個濾波器
filteredRGB = imfilter(originalRGB, h);
figure, imshow(filteredRGB)
運行結果如下:
originalRGB = imread('peppers.png');
imshow(originalRGB)
h = fspecial('gaussian',5,10);%創建一個濾波器
filteredRGB = imfilter(originalRGB, h);
figure, imshow(filteredRGB)
運行結果如下: