6.中值滤波
中值滤波是一种非线性的图像处理方式,中值滤波需要对采样窗口内像素灰度数值进行排序并取中间位置的灰度值作为结果。中值滤波
原理:简单平滑滤波和高斯滤波为代表的平滑线性滤波都是将干扰噪声平摊在整个邻域中的每个像素,会影响图像清晰度,
二中值滤波对孤立的像素属性并不十分关注,对于每个邻域,算法都会在采样得到的若干像素中选择一个最有可能代表当前邻域特征的像素灰度作为中心灰度像素。简单来说线性滤波和中值滤波对图像的处理就像是一个用水冲洗上面的污渍,污渍冲淡了但是也影响力原图的质量,而中值滤波则是直接将污渍拿掉,根据相邻邻域特征关系。
算法实现:
MATLAB使用**medfilt2()**函数
I2 = medfit2(I1,[m,n])
使用 J =imnoise(I,type,parameters);
i =rgb2gray(imread('Lena.jpg'));
j =imnoise(i,'salt & pepper');
w1 =[1 2 1;2 4 2;1 2 1]/16;
o1 =imfilter(j,w1,'conv','replicate');
w2 =[1 1 1; 1 1 1;1 1 1]/9;
o2 =imfilter(j,w2,'conv','replicate');
o3 =medfilt2(j,[3,3]);
subplot(2,2,1),imshow(j);
subplot(2,2,2),imshow(o1);
subplot(223),imshow(o2);
subplot(224),imshow(o3);
7.图像双边滤波