Matlab图像处理-均值滤波

均值滤波

均值滤波所使用的运算是卷积。均值滤波用邻域内像素的平均值来代替中心像素的值,相当于低通滤波,有将图像模糊化的趋势,对椒盐噪声基本无能为力。

MATLAB中,可使用imfilter函数来实现线性空间滤波,该函数的语法如下:

J = imfilter(I,w,filtering_mode,boundary_options’size_options)

其中,I为输入图像, w为滤波模板, J为滤波后输出图像。filtering_mode对默认规定为' corr',对卷积规定为' conv'boundary_options处理边界填充问题,边界的大小由滤波器的尺寸确定。size_options ' same ''full'两个模式。关于imfilter函数的更详细的说明,可在MATLAB中输入help imfilter查看。

示例代码

I = imread('toyobjects.png');
I_1 = imnoise(I,'salt & pepper',0.3);        %对图像添加椒盐噪声
I_2 = imnoise(I,'gaussian',0.3);        %对图像添加椒盐噪声
w = [1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;]/25                  %取5×5大小掩模
J = imfilter(I_1,w,'corr','replicate');          %对椒盐噪声图像进行
均值滤波处理
K = imfilter(I_2,w,'corr','replicate');          %对高斯噪声图像进行
均值滤波处理
subplot(2,2,1),imshow(I_1),title('(a)添加椒盐噪声图像');
subplot(2,2,2),imshow(I_1),title('(b)添加高斯噪声图像');
subplot(2,2,3),imshow(J),title('(c)均值滤波处理椒盐噪声');
subplot(2,2,4),imshow(K),title('(d)均值滤波处理高斯噪声'); 

效果图片

猜你喜欢

转载自blog.csdn.net/qq_20660115/article/details/132655544