当前位置:文档之家› 均值滤波 中值滤波 直方图均衡

均值滤波 中值滤波 直方图均衡

实验报告一.实验目的对图像进行空域增强,实现均值滤波、中值滤波、直方图均衡。

二.实验内容对加入椒盐噪声的图像进行均值滤波、中值滤波,对图像实现直方图均衡,通过改变图像的直方图来改变图像中像素的灰度,以达到图像增强的目标。

三.实验原理均值滤波的原理均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身)。

再用模板中的全体像素的平均值来代替原来像素值。

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。

线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(,)x y,选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(,)u x y,即x y,作为处理后图像在该点上的灰度值(,)1(,)(,)u x y f x y m=∑,m 为该模板中包含当前像素在内的像素总个数。

中值滤波的原理中值滤波是一种非线性滤波,由于它在实际运算过程中并不需要图像的统计特性,所以比较方便。

中值滤波首先是被应用在一维信号处理技术中,后来被二维图像信号处理技术所应用。

在一定的条件下,可以克服线性滤波器所带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。

中值滤波的目的是保护图像边缘的同时去除噪声。

在一维的情况下,中值滤波器是一个含有奇数个像素的窗口,在处理之后,将窗口正中的像素灰度值用窗口内各像素灰度值的中值来代替。

设有一个维序列12,,...n f f f ,取窗口长度为奇数m ,对此序列进行中值滤波,就是从输入序列中相续抽出m 个数,,,,,i v i i v f f f -+,其中为窗口的中心值(1)/2v m =-,再将这m 个点的数值按其数值大小排列,取其序号为正中间的那个数作为滤波输出。

中值滤波表达式为:{}v i i v i i f f f Med F +-=,,,,对二维序列{X i,j }的中值滤波,滤波窗口也是二维的,但这种二维窗口可以有各种不同的形状,如线状、方形、圆形、十字形、圆环形等。

二维中值滤波可表示为:{}为滤波窗口,A x Med F j i Aj i ,,=在实际使用窗口时,窗口的尺寸一般先用33⨯再取55⨯逐渐增大,直到其滤波效果满意为止。

由于中值滤波是非线性运算,在输入和输出之间的频率上不存在一一对应关系,故不能用一般线性滤波器频率特性的研究方法。

设G 为输入信号频谱,F 为输出信号频谱,定义F G H /=为中值滤波器的频率响应特性,实现表明H 是与G 有关,呈不规则波动不大的曲线,其均值比较平坦,可以认为信号经中值滤波后,传输函数近似为1,即中值滤波对信号的频域影响不大,频谱基本不变。

直方图均衡的原理利用直方图统计的结果,通过使图像的直方图均衡的方法称为直方图均衡化,可以达到增强图像的显示效果的作用。

由于通过直方图统计,可以观察出,图像中各种亮度所占的比例大都分布不均匀,设法增加在直方图统计中所占比例高的像素和其他占的比例少的像素之间的亮度差,可以提高图像的显示效果。

简单来说,直方图增强的方法就是压缩直方图中比例少的像素所占用的灰度范围,多出来的灰度空间按照统计比例分配给直方图中比例高的像素使用。

这种方法主要是针对人眼对灰度差别越大的图像更容易分辨的特点而做的增强。

灰度直方图的计算十分简单,依据定义在离散形式下有下面的公式成立:()1,1,0,-==L k nn k pk公式中:k n 为图像中出现k s 级灰度的像素数,n 是图像像素总数,而nn k即为频数。

计算累积直方图各项:()1,1,0,00-===∑∑==L k i p n n t ki ki ik 取整扩展:int[(1)0.5]k k t L t =-+映射对应关系:k k t =>四. 实验结果 均值滤波1. 读取图像,并对图像加入椒盐噪声。

结果图一和图二所示。

图一 原始图像图二 加噪图像2. 采用1/9模板对图像卷积采用1/91/91/91/91/91/91/91/91/9x ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦模板对图像33⨯区域进行平均,得到均值即为当前像素取值,得到均值滤波结果如图三所示。

图三均值滤波图像中值滤波1.读取图像和加噪过程与均值滤波相同。

2.采用取用中值对图像滤波。

区域取值并进行排序取中值,得到的中值即为当前像素的值。

结对图像33果如图四所示。

图四中值滤波图像直方图均衡1.读取图像读取图像与上相同。

结果如图五所示。

图五原始图像2.统计原始图像灰度直方图和概率分布。

读取每个像素点,得到像素点的灰度直方图分布,并除以总像素点数目,将其转换为概率分布。

得到结果如图六、图七所示。

图六原始图像直方图图七原始图像直方图概率分布3. 累积概率k t对概率分布进行累积。

得到累积概率分布如图八所示。

图八 累积概率分布4. 对累积概率分布取整扩展对累积概率用int[(1)0.5]k k t L t =-+进行扩展。

得到新的灰度分布。

然后将原图像中各个点进行灰度映射,映射到当前灰度分布中去,即可得到直方图均衡图像和新图像的直方图分布。

结果如图九和图十所示。

图九 直方图均衡图像图十均衡图像的直方图五.结果分析均值滤波和中值滤波对比分析:根据以上实验结果进行对比分析,可以得出以下结论:1、均值滤波, 对椒盐噪声的影响不大,因为在削弱噪声的同时整幅图像内容总体也变得模糊,其噪声仍然存在。

2、对于中值滤波,由图可以看出,中值滤波对去除“椒盐”噪声可以起到很好的效果,因为椒盐噪声只在画面中的部分点上随机出现,所以根据中值滤波原理可知,通过数据排序的方法,将图像中未被噪声污染的点代替噪声点的值的概率比较大,因此噪声的抑制效果很好,同时画面的轮廓依然比较清晰。

由此看来,对于椒盐噪声密度较小时,尤其是孤立噪声点,用中值滤波的效果非常好的。

对于高斯噪声。

对图像加入均值为0,方法0.005的高斯噪声。

结果如图十一所示。

图十一图像加入高斯噪声分别进行均值滤波和中值滤波,结果如图十二、图十三所示。

图十二高斯噪声图像均值滤波图十三高斯噪声图像中值滤波对比发现两种滤波方式对于高斯噪声滤波都不太理想。

使用20张高斯噪声污染的图像相加的方法滤波结果如图十四所示。

图十四图像相加去噪对比发现对于高斯噪声,图像相加去噪结果更好。

直方图均衡本文中的直方图均衡化算法,采用灰度映射方法,简单明了,易于实现,均衡化后的各灰度级更加均衡,接近理想值。

同时对于灰度范围小,直方图分布极不均匀的图像,可人为的适当的扩大灰度范围,均衡化后能取得较好的层次感,使图像信息变得更清晰。

此方法在图像增强方面,有很大的实用价值。

六.实验心得本次实验时首次接触图像处理,发现图像处理必须思路清晰,表达明确,而且发现对于像素级的图像处理,数据量很大,程序运行慢,还有优化的空间。

对于图像处理,以矩阵运算为基础,以后要多加练习。

附录实验程序代码如下。

均值滤波和中值滤波clear all;close all;clc;I=imread('D:\My Documents\MATLAB\kecheng\shuzituxiang\2.jpg'); I=I(:,:,1);figure(1)imshow(I);title('原始图像');colormap(gray(256));figure(2);imhist(I);title('原始图像直方图');J=imnoise(I,'salt & pepper',0.02);figure(3);imshow(J);title('加噪图像');colormap(gray(256));figure(4);imhist(J);title('加噪图像直方图');x=double(ones(3)/9); %必须将1/9变为double型模板A=size(J);%% 均值滤波for i=2:A(1)-1for j=2:A(2)-1x1=double(J(i-1:i+1,j-1:j+1));%将数据转换类型y=x.*x1; %均值su=sum(sum(y)); %求和d(i,j)=uint8(su); %转换为整形endendfigure(5);imshow(d);title('均值滤波图像');%% 中值滤波for i=2:A(1)-1for j=2:A(2)-1x2=J(i-1:i+1,j-1:j+1);x2=[x2(1,:) x2(2,:) x2(3,:)];c(i,j)=median(x2);endendfigure(6);imshow(c);title('中值滤波图像');图像相加去除高斯噪声clear all;close all;clc;%% 图像加法实现消除噪声[filename, pathname, filterindex] = uigetfile({'*.jpg';'*.bmp'}, 'Pick a file'); datafile=[pathname,filename];if filterindex==0returnendI=imread(datafile);I=I(:,:,1);figure(1);imshow(I);title('原始图像');%% 图像加噪k=20; %加噪图像数目z=cell(1,k); %构造多幅加噪图像for i=1:kz{i}=imnoise(I,'gaussian',0,0.005);endfigure(2);imshow(z{2});title('加入高斯噪声图像');%% 图像相加取平均J=0;for i=1:kJ=J+double(z{i});endJ=uint8(J/k);figure(3);imshow(J);title('图像相加去噪');直方图均衡clear all;close all;clc;%% 直方图均衡%%严格按照直方图均衡化的步骤来做,一共六步,思路要清晰A=imread('D:\My Documents\MATLAB\kecheng\shuzituxiang\2.jpg');A=A(:,:,1);[m,n]=size(A);B=zeros(m,n);N=m*n; %像素总个数s=zeros(1,256);t=zeros(1,256);%% 原始直方图概率分布for i=1:mfor j=1:ns(A(i,j)+1)=s(A(i,j)+1)+1; %计算各个灰度级像素个数endends=s./N; %各个灰度级的频率%% 累积分布tkt(1)=s(1);for k=2:256t(k)=t(k-1)+s(k); %累积分布函数累积频率endz=t;%% 取整扩展for k=1:256t(k)=floor(255*t(k)+0.5); %tk取整扩展end%% 确定映射关系,将原图像中点的数值变为映射后的数值for i=1:mfor j=1:nB(i,j)=t(A(i,j)+1);endendA=uint8(A);B=uint8(B);figure(1);imshow(A);title('原始图像');figure(2);imhist(A);title('原始图像直方图');figure(3);stem(z,'fill');title('累积直方图');figure(4);imshow(B);title('均衡图像');figure(5);imhist(B);title('均衡图像直方图');figure(6);stem(s,'fill');title('原始图像直方图概率分布');。

相关主题