1,实验原理
图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”信息,削弱或去除不需要的信息,以改善图像的视觉效果,或突出图像的特征,便于计算机处理。图像增强可以在空间域进行,也可以在频率域中进行。
空间域滤波主要利用空间模板进行,如3*3,5*5模板等,一般来说,使用大小为m×n 的滤波器对大小为M×N 的图像f进行空间滤波,可表示成:
其中,m=2a+1, n=2b+1, w(s,t)是滤波器系数,f(x,y)是图像值
均值滤波器是一种空间平滑滤波器,它是对包含噪声的图像上的每个像素点,用它邻域内像素的平均值替代原来的像素值。例如,采用一个3×3的模板,待处理的像素为f(i,j),则处理后图像对应的像素值为g(i-1,j+1)
g(i,j)=1/9*(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1));
中值滤波器也是一种空间平滑滤波器,它是对以图像像素点为中心的一个滑动窗口内的诸像素灰度值排序,用中值代替窗口中心像素的原来灰度值,因此它是一种非线性的图像平滑法。
2,实验要求
对原图像分别加入高斯噪声、椒盐噪声
利用邻域平均法,分别采用3´3,5´5模板对加噪声图像进行平滑处理,显示原图像、加噪图像和处理后的图像
利用中值滤波法,分别采用3´3,5´5模板对加噪声图像进行去噪处理,显示原图像、加噪图像和处理后的图像
3,实验过程和结果
clc;
clear;
close all;
I = imread('test3.gif','gif'); %自己设置路径
imshow(I);
subplot(5,4,1);
imshow(I);
title('原图');
G1 = imnoise(I,'gaussian',0.02);
subplot(5,4,2);
imshow(G1);
title('加入高斯噪声');
G2 = imnoise(I,'salt & pepper',0.05);
subplot(5,4,3);
imshow(G2);
title('加入椒盐噪声');
G3 = imnoise(I,'speckle',0.04);
subplot(5,4,4);
imshow(G3);
title('均匀分布的随机噪声');
H1 = fspecial('average',[3,3]);
G331 = imfilter(I,H1);
subplot(5,4,5);
imshow(G331);
title('原图3*3均值滤波');
G332 = imfilter(G1,H1);
subplot(5,4,6);
imshow(G332);
title('高斯噪声3*3均值滤波');
G333 = imfilter(G2,H1);
subplot(5,4,7);
imshow(G333);
title('椒盐噪声3*3均值滤波');
G334 = imfilter(G3,H1);
subplot(5,4,8);
imshow(G334);
title('均匀分布的随机噪声3*3均值滤波');
H2 = fspecial('average',[5,5]);
G551 = imfilter(I,H2);
subplot(5,4,9);
imshow(G331);
title('原图5*5均值滤波');
G552 = imfilter(G1,H2);
subplot(5,4,10);
imshow(G552);
title('高斯噪声5*5均值滤波');
G553 = imfilter(G2,H2);
subplot(5,4,11);
imshow(G553);
title('椒盐噪声5*5均值滤波');
G554 = imfilter(G3,H2);
subplot(5,4,12);
imshow(G554);
title('均匀分布的随机噪声5*5均值滤波');
K331 = medfilt2(I,[3,3]);
subplot(5,4,13);
imshow(K331);
title('原图3*3中值滤波');
K332 = medfilt2(G1,[3,3]);
subplot(5,4,14);
imshow(K332);
title('高斯噪声3*3中值滤波');
K333 = medfilt2(G2,[3,3]);
subplot(5,4,15);
imshow(K333);
title('椒盐噪声3*3中值滤波');
K334 = medfilt2(G3,[3,3]);
subplot(5,4,16);
imshow(K334);
title('均匀分布的随机噪声3*3中值滤波');
K551 = medfilt2(I,[5,5]);
subplot(5,4,17);
imshow(K551);
title('原图5*5中值滤波');
K552 = medfilt2(G1,[5,5]);
subplot(5,4,18);
imshow(K552);
title('高斯噪声5*5中值滤波');
K553 = medfilt2(G2,[5,5]);
subplot(5,4,19);
imshow(K553);
title('椒盐噪声5*5中值滤波');
K554 = medfilt2(G3,[5,5]);
subplot(5,4,20);
imshow(K554);
title('均匀分布的随机噪声5*5中值滤波');
4,实验结果
采用邻域平均法即均值滤波对高斯噪声比较有效,但造成一定的模糊,邻域越大,模糊越严重。但均值滤波不能很好地处理椒盐噪声。
采用中值滤波法,不适用于去除高斯噪声,而且造成图像模糊严重。但可以很好的抑制椒盐噪声,3*3模板处理过的图像接近原图像,但模板增大即邻域扩大,加强去噪声能力的同时,使图像模糊严重。
最后附上实验原图