使用imfilter功能过滤灰度和真彩色(RGB)图像
这个例子展示了如何使用包含相等权重(通常称为平均滤波器)的5 × 5滤波器对二维灰度图像进行过滤imfilter
.该示例还展示了如何使用相同的过滤器过滤真彩色(RGB)图像。真彩色图像是一个三维阵列的大小米——- - - - - -n-by-3,其中最后一个维度表示三个颜色通道。用二维滤波器对真彩色图像进行滤波相当于用同一个二维滤波器分别对图像的各个平面进行滤波。
有几个MATLAB®函数,执行二维和多维滤波可以比较imfilter
.这个函数filter2
执行二维相关性,conv2
执行二维卷积,和convn
执行多维卷积。但是,这些过滤函数总是将输入转换为双
,输出为双
.此外,这些MATLAB®滤波函数总是假设输入是零填充,他们不支持其他填充选项。相比之下,imfilter
不将输入图像转换为双
.的imfilter
函数还提供了一组灵活的边界填充选项。
用平均滤波器对二维灰度图像进行滤波
将灰度图像读入工作空间。
我= imread (“coins.png”);
显示原始图像。
图imshow(我)标题(的“原始图像”)
创建一个标准化的5乘5的平均过滤器。
h =的(5,5)/ 25;
对灰度图像进行平均滤波imfilter
.
I2 = imfilter (h);
显示过滤后的图像。
图imshow (I2)标题(“过滤图像”)
使用imfilter过滤多维真彩色(RGB)图像
读取一个真彩色图像到工作空间。
rgb = imread (“peppers.png”);imshow (rgb);
创建一个过滤器。这种平均过滤器包含相同的权重,并导致过滤后的图像看起来比原始图像更模糊。
h =的(5,5)/ 25;
使用以下方法筛选图像imfilter
和显示。
rgb2 = imfilter (rgb, h);图imshow (rgb2)