直方图均衡、中值滤波、均值滤波、锐化滤波_第1页
直方图均衡、中值滤波、均值滤波、锐化滤波_第2页
直方图均衡、中值滤波、均值滤波、锐化滤波_第3页
直方图均衡、中值滤波、均值滤波、锐化滤波_第4页
直方图均衡、中值滤波、均值滤波、锐化滤波_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、直方图均衡及图像滤波一、 实验目的1、通过实验进一步加深图像直方图均衡和滤波原理的理解;2、提高Matlab编程能力。二、 实验原理(一)直方图均衡原理在实际应用中,希望能够有目的地增强某个灰度区间的图像, 即能够人为地修正直方图的形状, 使之与期望的形状相匹配,这就是直方图规定化的基本思想。换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。每一可能的灰度层次所占的像素个数尽量均等,每个像素具有同样的显示机会,从而使图像细节清晰,改善图像的整体对比度。(二)中值滤波中值滤波是基于排序

2、统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。模板通常为3×3和5×5区域,也可以是其他不同的形状,如线状,圆形,十字形,圆环形等。(三)均值滤波均值滤波是一种利用模版对图像进行模板操作的图像平滑方法,所谓模版是指模版中所有系数都取相同值的模版,常用的3×3和5×5模版。邻域平均法的思想是通过一点和邻域内像素点

3、求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。三、 实验内容(一) 直方图均衡首先读入一幅图像,利用Matlab的rgb2gray()函数将其转化为灰度图,便于接下来的处理。转化成的灰度图像如下图所示:图1 原灰度图上面灰度图的直方图如下:图2 原灰度图的直方图上面原始图像的直方图共256个灰度级,我们统计每个灰度级内像素数量,每个灰度级像素数量占像素总数量的比例,计算累计直方图做出灰度直方图:累计直方图如下:图3累积直方图然后按照的映射关系,将原像素的灰度值变为该式映射的灰度值,从而获得均衡后的图像和均衡后的直方图。均衡后的图像

4、如下:图4直方图均衡化后图像从图4可以看出,均衡化后的图像细节更加清晰,整体对比度提高。均衡后的直方图如下:图5均衡化后直方图从图5可以看出:1、变换后直方图趋向平坦,部分灰度合并,有效的灰度级减少;2、 变换后含有像素数多的几个灰级间隔被拉大,压缩的只是像素数少的几个灰度级。(二) 中值滤波在进行滤波前,首先给图像添加噪声,在此,我们给图像添加椒盐噪声,得到加入噪声后的图像如下:图6中值滤波后图像(三) 均值滤波均值滤波能够减弱或消除图像的高频分量,保留图像的低频分量,可用于降低或消除图像中的噪声。因此我们也可以用均值滤波去除图像上的噪点。在这里我们利用下面的平滑模板对图像进行均值滤波:则每

5、个像素点等于周围自身加上周围8个像素灰度值的均值。得到均值滤波后的图像如下:图7均值滤波后图像从图7中可以看出,均值滤波后,图像上的噪点减弱,但是仍剩余一些噪点,与图6中值滤波的结果相比,均值滤波对于椒盐噪声的滤波效果要差些。四、 结果分析(一)滤波窗口大小的对滤波效果的影响滤波窗口的大小对滤波效果有重要影响。为了探究滤波窗口大小对滤波效果的影响,我们以均值滤波为例,分别采用3×3,5×5,7×7,9×9,11×11,13×13的窗口,对添加椒盐噪声的图像进行滤波实验,得到滤波效果如下:图83×3均值滤波后图像(椒盐噪声)图

6、95×5均值滤波后图像(椒盐噪声)图10 7×7均值滤波后图像(椒盐噪声) 图119×9均值滤波后图像(椒盐噪声)图12 11×11均值滤波后图像(椒盐噪声) 图1313×13均值滤波后图像(椒盐噪声)从上面这些滤波后的图像对比可以看出:1、 滤波器窗口越小,则保留原图像的细节信息越丰富,但是滤波效果也就越差。2、 滤波窗口越大,则滤除噪声越干净,但同时对原图像细节信息的破坏也就更严重。3、 为了达到一个良好的滤波效果,应该根据实际遇到的噪声情况,合理选择窗口的大小,早噪声滤除和细节保留之间选择一个合适的折中。(二)中值滤波与均值滤波比较没有一

7、种滤波算法对于所有噪声都适用,因此,中值滤波和均值滤波也各有自己的适用范围。为了研究两种滤波算法的对不同噪声的滤波效果,我们给图像分别添加线性的高斯噪声和非线性的椒盐噪声,并分别用两种滤波器进行滤波实验,对比滤波效果。1、添加椒盐噪声时:给图像添加非线性的椒盐噪声,两者的滤波效果对比如下:图14中值滤波后图像(椒盐噪声)图15均值滤波后图像(椒盐噪声)从图14和图15对比可以看出,中值滤波将椒盐噪声基本都滤掉了,而均值滤波上则留下了不少残余噪点。说明中值滤波对于非线性的椒盐噪声的滤波效果要优于均值滤波。2、添加高斯噪声时:给图像添加均值为0,方差为0.04的线性高斯噪声时,得到添加高斯噪声的图

8、像如下:图10添加高斯噪声后图像用两种滤波器进行滤波后的效果对比如下:图16中值滤波后图像(高斯噪声) 图17均值滤波后图像(高斯噪声)从图16和图17对比可以看出,中值滤波和均值滤波后,都残留一些噪点,但是均值滤波残留的噪点量要明显小于中值滤波。说明均值滤波对于线性的高斯噪声的滤波效果要优于中值滤波。五、 实验心得通过本次试验,我对用直方图均衡、均值滤波和中值滤波有了更加深刻的认识。通过在仿真实验中遇到的问题,我认识到书本理论与实际操作之间的距离。仿真实验过程中,不同滤波器对不同噪声效果不同,没有一种算法是适合于所有情况的。实际中遇到的图像噪声比仿真实验要复杂的多。说明要深入的了解滤波原理,

9、还有非常多的东西需要学习和实践。六、 附录%直方图均衡化实验%一、读入图像并转化为灰度图%clc;clear all;close all;ARGB = imread('lady.jpg');imwrite(rgb2gray(ARGB),'AGray.bmp'); %将彩色图片灰度化并保存AGray=rgb2gray(ARGB); %灰度化后的数据存入数组figure;imshow(AGray); %显示均衡化后的图像title('原灰度图像');%二、绘制直方图%m,n=size(AGray); %测量图像的宽和高p=zeros(1,256);

10、%存储每个灰度级出现的概率p(k)=nk/Nfor k=0:255 p(k+1)=length(find(AGray=k)/(m*n); %计算每级灰度出现的概率,将其存入p(k)中相应位置endfigure;bar(0:255,p,'r') %绘制直方图title('原图像直方图')xlabel('灰度值')ylabel('出现概率')%出现概率%计算累计直方图%sk1=zeros(1,256);for i=1:256for j=1:i sk1(i)=p(j)+sk1(i); %计算累积直方图sk1endendfigure;ba

11、r(0:255,sk1,'g'); %绘制累积直方图title('累积直方图');xlabel('灰度值');ylabel('出现概率');sk2=round(sk1*256)+0.5); %将sk1归到相近级的灰度pSum = zeros(1,256);for i=1:256 pSum(i)=sum(p(find(sk2=i); %计算均衡化后每个灰度级出现的概率endfigure;bar(0:255,pSum,'b'); %绘制累积直方图title('均衡化后直方图');xlabel('

12、灰度值');ylabel('出现概率');%图像均衡化%AGrayMean=AGray;for i=0:255 AGrayMean(find(AGray=i)=sk2(i+1);%将各个像素归一化后的灰度值赋给这个像素endfigure;imshow(AGrayMean); %显示均衡化后的图像title('均衡化后图像');imwrite(AGrayMean,'AGrayMean.bmp');%四、给灰度图像添加椒盐噪声,以对比滤波效果%AGrayAddNoise = imnoise(AGray,'salt & pepp

13、er', 0.02);%添加椒盐噪声figure;imshow(AGrayAddNoise); %显示添加椒盐噪声后的图像title('添加椒盐噪声后的图像');%五、均值滤波%L = 13;%窗长Mean_Filter(1:L,1:L)=1; %在此选用3*3的滤波器AGrayAddNoise = double(AGrayAddNoise);AGrayMean_Filted = AGrayAddNoise;%用来存储滤波后的图像for i=1:m-L+1 for j=1:n-L+1 temp=AGrayAddNoise(i:i+(L-1),j:j+(L-1).*Mea

14、n_Filter; s=sum(sum(temp); AGrayMean_Filted(i+(L-1)/2,j+(L-1)/2)=s/(L*L); endendfigure;imshow(uint8(AGrayMean_Filted);title('3*3均值滤波后图像') %六、中值滤波%AGrayMedian = AGrayAddNoise;for i=2:m-1for j=2:n-1 Window=AGrayAddNoise(i-1:i+1,j-1:j+1); Wu,Wd=size(Window); temp = reshape(Window,1,Wu*Wd);%将窗口内元素构成的矩阵构造成行向量,便于运算 Window_sorted = sort(temp); %对窗口内元素进行排序 mid = Window_sorted(ceil(Wu*Wd/2);% 找到窗口内元素的中值 AGrayMedian(i,j)=mid;endendfigure;imshow(uint8(AGrayMedian);title(&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论