Matlab的imfilter函数用法

时间:2022-02-25 21:31:59

功能:对任意类型数组或多维图像进行滤波

用法: B = imfilter(A,H)
    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)

运行结果为如下:
Matlab的imfilter函数用法
Matlab的imfilter函数用法
例二,matlab代码如下:
originalRGB = imread('peppers.png');
imshow(originalRGB)
h = fspecial('average');%创建一个滤波器
filteredRGB = imfilter(originalRGB, h);
figure, imshow(filteredRGB)

运行结果如下:
Matlab的imfilter函数用法
Matlab的imfilter函数用法
例三,matlab代码如下:
originalRGB = imread('peppers.png');
imshow(originalRGB)
h = fspecial('gaussian',5,10);%创建一个滤波器
filteredRGB = imfilter(originalRGB, h);
figure, imshow(filteredRGB)

运行结果如下:
Matlab的imfilter函数用法
Matlab的imfilter函数用法