周进展
1.均值滤波器:
算数均值滤波器是用一个 的滑动窗口计算窗口中所有像素值的平均值,并替换窗口中间像素的值。均值滤波器对高斯、均匀、爱尔兰噪声的效果最好。
I = imread('jpg.png');
In = imnoise(I, 'gaussian', 0, 0.01);
f1 = fspecial('average');%默认卷积核尺寸3x3
I_blur1 = imfilter(In,f1);
f2 = fspecial('average', [5 5]);
I_blur2 = imfilter(In,f1);
figure
subplot(221),imshow(I),title('Original Image');
subplot(222),imshow(In),title('Noise');
subplot(223),imshow(I_blur1),title('Average3x3')
subplot(224),imshow(I_blur2),title('Average5x5')
问:核的尺寸如何影响图像的变化?
答:在滤除高斯噪声模糊的实验中,fspecial(‘average’)默认采用的是3x3的卷积核,得到的结果相较于In来说噪声少了,但还是肉眼可见的明显,相较于原图模糊程度倒是几乎看不出来;然而换成5x5的均值滤波器之后,发现噪声情况有微弱的改善,但是肉眼可见的模糊了。
几何均值滤波器:
该滤波器是算术均值滤波器的一种变形,主要用于消除高斯噪声,可以更好的保留图像细节。
调和均值滤波器:
主要针对高斯噪声和盐噪声(椒盐噪声中的亮点),而椒噪声(黑色)不受影响。
逆调和均值滤波器:
主要针对椒盐噪声,不能同时消除椒和盐噪声,但是可以通过调整R值选择消除盐噪声还是椒噪声。使用负的R值来消除盐噪声,使用正的R值来消除椒噪声。
由于matlab16里面没有自带的harmonic函数,所以根据逆调和滤波器的表达式和均值滤波表达式的关系,利用均值滤波器的实现方法组合成逆调和滤波器。
R=-1.5;
I_blur3=imfilter(In.(R+1),fspecial(‘average’,3))./imfilter(In.R,fspecial(‘average’,3));
imshow(I_blur3,[]);title(‘R=-1.5’);
结果表明R小于零时,对图像中的椒噪声没有滤除作用,对盐噪声的作用不是很好观测。
R=1.5;
I_blur3=imfilter(In.(R+1),fspecial(‘average’,3))./imfilter(In.R,fspecial(‘average’,3));
imshow(I_blur3,[]);title(‘R=1.5’);
调整参数R为正值,与R为负的时候对比,黑色的椒噪声被滤除了,留下明显的白色盐噪声。
二、排序统计滤波器
1.中值滤波器,将窗中的像素值全部排序,取中值赋给窗中间的像素,常用于滤除椒盐噪声。
I = imread('pic.png');
I1 = rgb2gray(I);
In = imnoise(I1, 'salt & pepper');
I_fix1 = medfilt2(In, [3 3]);
I_fix2 = medfilt2(In, [5 5]);
figure
subplot(221),imshow(I),title('Original Image');
subplot(222),imshow(In),title('Noise');
subplot(223),imshow(I_fix1),title('fixed Image');
subplot(224),imshow(I_fix2),title('5x5fixed Image');
问:窗的大小对图像的影响?
答:其实选择3x3的窗就已经将椒盐噪声基本滤除干净了,5x5进一步滤除了噪声,但是图像变得非常模糊。从原理上不难理解,因为5x5找了25个值的中间值作为中间像素的像素值,自然和3x3的中值相比和周围像素更加相似。
和同尺寸的均值滤波相比较,中值滤波器对椒盐噪声的消除效果更彻底,但是也将图片变得更加模糊。
问:为什么中值滤波器不适合消除高斯噪声?
利用中值滤波器对高斯噪声进行滤波得到的结果:
中值滤波器之所以对椒盐噪声作用很好是因为椒盐噪声只由亮点和暗点组成,中值滤波刚好可以削减这种方式的污染;而高斯噪声的点是完全随机的灰度值,中值滤波并不能针对这种噪声有很好的效果。
2.最小值最大值滤波器: