一.实验设备
计算机,matlab软件
二.实验目的
1.理解并掌握线性平滑滤波图像增强方法——邻域平均法的原理。
2.学习使用matlab对图像进行加噪声的操作。
3.学习使用matlab对噪声进行滤除。
三.实验原理
每一个像素都有一个灰度值。对于噪声而言,他的灰度值与周围像素灰度值差别很大,因此,如果对每一个像素点都与他周围一周的像素求平均值,就可以减少噪声点与周围像素灰度值的差距。通过这个方法,可以使整幅图像的灰度值突变减少。
邻域平均法的思想是通过对某一像素与其指定邻域内像素的平均值或者加权平均值作为该像素的新灰度值,以减少灰度值的突变,滤除部分噪声。
公式如下:
上式中: Z;是以(x,y)为中心的邻域像素值; w; 是对每个邻域像素的加权系数;加权系数的个数或称为模板大小。邻域平均法中常用的模板是:
为了减少模糊,即把图像边缘当做噪声的情况,可以设定一定的阈值,公式如下:
(2.3)式中f(x,y)是原始含噪声图像,g(x,y)是由(2.1)式计算的平均值,h(x,y)是经过邻域平均法滤波后的像素灰度值。
四.实验步骤
1.学习线性平滑滤波图像增强方法——邻域平均法的理论知识。
2.学习并编写对图像进行加噪声的程序。
3.学习并编写邻域平均法的程序。
4.使用matlab对图像进行邻域平均法滤除噪声操作。
5.对实验结果进行分析并总结。
五.程序及结果分析
% 用MATLAB实现领域平均法抑制噪声程序
clear
clc
I=imread('001.jpg ');
subplot(231),imshow(I);title('原始图像');
I=rgb2gray(I); %灰度化图像
I1=imnoise(I,'salt & pepper',0.02); % 图像加椒盐噪声
subplot(232),imshow(I1);title(' 添加椒盐噪声的图像')
k1=filter2(fspecial('average',3),I1)/255; %进行3*3模板平滑滤波
k2=filter2(fspecial('average',5),I1)/255;%进行5*5模板平滑滤波
k3=filter2(fspecial('average',7),I1)/255; %进行7*7模板平滑滤波
k4=filter2(fspecial('average',9),I1)/255; %进行9*9模板平滑滤波
subplot(233),imshow(k1);title('3*3 模板平滑滤波');
subplot(234),imshow(k2);title('5*5 模板平滑滤波');
subplot(235),imshow(k3);title('7*7 模板平滑滤波');
subplot(236),imshow(k4);title('9*9 模板平滑滤波');
如上图所示,在一副图像中加入椒盐噪声,再使用线性平滑滤波图像增强方法——邻域平均法进行滤波恢复,当使用的模板不同时,恢复效果也不相同。随着模板越来越大,噪声滤除效果越来越好,但是原图像的边缘变得更加模糊,图像不清晰起来。
六.实验总结
邻域平均法是一种线性平滑滤波图像增强的方法,通过图像噪声的特性,即图像噪声的灰度值与他们相邻像素的灰度直有明显不同,通过与邻域求平均值的方法,将噪声那一点的灰度值变得与相邻元素近似,以达到滤除噪声的目的。通过本次实验,我对噪声的产生以及去除噪声有了进一步的理解,学会了使用邻域平均法实现对噪声的滤除的方法,同时也学到了一些matlab中相关函数的使用,比如对图像加椒盐噪声,I1=imnoise(I,‘salt & pepper’,0.02);进行3*3模板平滑滤波:k1=filter2(fspecial(‘average’,3),I1)/255等,今后我会举一反三,认真学习此方面知识。