【摘要】:线性滤波在消除图像噪声的同时也会模糊图像的细节,利用非线性平滑滤波可在消除图像中噪声的同时较好的保持图像的边缘细节[21]。最常用的非线性滤波是中值滤波。在MATLAB软件中,采用函数medfilt2()进行图像的二维中值滤波。由此可知,中值滤波对于去除椒盐噪声有很好的效果。图8.7函数medfilt2()中值滤波结果
线性滤波在消除图像噪声的同时也会模糊图像的细节,利用非线性平滑滤波可在消除图像中噪声的同时较好的保持图像的边缘细节[21]。最常用的非线性滤波是中值滤波。
中值滤波的基本步骤是:
(1)将模板在图中漫游,并将模板中心与图中某个像素位置重合;
(2)读取模板下各对应像素的灰度值;
(3)将这些灰度值从小到大排成一列;
(4)找出这些灰度值里排在中间的一个;
(5)将这个中间值赋给对应模板中心位置的像素。
在MATLAB软件中,采用函数medfilt2()进行图像的二维中值滤波。具体代码实现如下:
clear all;
clc;
rgb=imread('1.png');
J1=imnoise(rgb,'salt&pepper',0.02);(www.xing528.com)
J2=imnoise(J1,'gaussian',0,0.01);
J3=rgb2gray(J2);
rgb1=medfilt2(J3,[7 7]);
figure;
subplot(1,3,1);imshow(rgb);title('原图像');
subplot(1,3,2);imshow(J3);title('加入噪声后的图像');
subplot(1,3,3);imshow(rgb1);title('7*7中值滤波图像');
在程序运行中,首先读入灰度图像,再通过函数imnoise()添加椒盐噪声,最后通过函数medfilt2()进行中值滤波,运行程序结果如图8.7显示,左图为原始图像,中图为添加椒盐噪声后的图像,右图为中值滤波后的图像。由此可知,中值滤波对于去除椒盐噪声有很好的效果。
图8.7 函数medfilt2()中值滤波结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。