在MATLAB中使用imfilter()函数,即可实现线性空间滤波,将模板设置为全1矩阵,那么可以简单的实现均值滤波,程序如下:
close all;
clear all;
clc;
p = imread('ayst.jpg');
a1 = p(:,:,1);%只取彩色图像的R分量
J=imresize(a1,[512,512]);%将图像压缩为512*512
figure,imshow(a1);
figure;
imshow(J);
w = ones(31);
J = im2double(J);%空间滤波时,必须要使用浮点算法,因此先转变为浮点型,(0-255)将转变为(0.0-1.0)
gd = imfilter(J,w);
gd = gd./(31*31);%均值滤波,要除以模板大小31*31
figure,imshow(gd,[]);
经过均值滤波之后,整幅图像变得更加模糊,并且,模板越大,图像越模糊。