直方图均衡、中值滤波、均值滤波、锐化滤波

上传人:xins****2008 文档编号:111077902 上传时间:2019-11-01 格式:DOC 页数:10 大小:5.43MB
返回 下载 相关 举报
直方图均衡、中值滤波、均值滤波、锐化滤波_第1页
第1页 / 共10页
直方图均衡、中值滤波、均值滤波、锐化滤波_第2页
第2页 / 共10页
直方图均衡、中值滤波、均值滤波、锐化滤波_第3页
第3页 / 共10页
直方图均衡、中值滤波、均值滤波、锐化滤波_第4页
第4页 / 共10页
直方图均衡、中值滤波、均值滤波、锐化滤波_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《直方图均衡、中值滤波、均值滤波、锐化滤波》由会员分享,可在线阅读,更多相关《直方图均衡、中值滤波、均值滤波、锐化滤波(10页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

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

6、图12 1111均值滤波后图像(椒盐噪声) 图13 1313均值滤波后图像(椒盐噪声)从上面这些滤波后的图像对比可以看出:1、 滤波器窗口越小,则保留原图像的细节信息越丰富,但是滤波效果也就越差。2、 滤波窗口越大,则滤除噪声越干净,但同时对原图像细节信息的破坏也就更严重。3、 为了达到一个良好的滤波效果,应该根据实际遇到的噪声情况,合理选择窗口的大小,早噪声滤除和细节保留之间选择一个合适的折中。(二)中值滤波与均值滤波比较没有一种滤波算法对于所有噪声都适用,因此,中值滤波和均值滤波也各有自己的适用范围。为了研究两种滤波算法的对不同噪声的滤波效果,我们给图像分别添加线性的高斯噪声和非线性的椒盐

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

8、7对比可以看出,中值滤波和均值滤波后,都残留一些噪点,但是均值滤波残留的噪点量要明显小于中值滤波。说明均值滤波对于线性的高斯噪声的滤波效果要优于中值滤波。五、 实验心得通过本次试验,我对用直方图均衡、均值滤波和中值滤波有了更加深刻的认识。通过在仿真实验中遇到的问题,我认识到书本理论与实际操作之间的距离。仿真实验过程中,不同滤波器对不同噪声效果不同,没有一种算法是适合于所有情况的。实际中遇到的图像噪声比仿真实验要复杂的多。说明要深入的了解滤波原理,还有非常多的东西需要学习和实践。六、 附录%直方图均衡化实验%一、读入图像并转化为灰度图% clc;clear all;close all;ARGB

9、= imread(lady.jpg);imwrite(rgb2gray(ARGB),AGray.bmp); %将彩色图片灰度化并保存AGray=rgb2gray(ARGB); %灰度化后的数据存入数组figure;imshow(AGray); %显示均衡化后的图像title(原灰度图像);%二、绘制直方图%m,n=size(AGray); %测量图像的宽和高p=zeros(1,256); %存储每个灰度级出现的概率p(k)=nk/Nfor k=0:255 p(k+1)=length(find(AGray=k)/(m*n); %计算每级灰度出现的概率,将其存入p(k)中相应位置endfigure

10、;bar(0:255,p,r) %绘制直方图title(原图像直方图)xlabel(灰度值)ylabel(出现概率)%出现概率%计算累计直方图%sk1=zeros(1,256);for i=1:256 for j=1:i sk1(i)=p(j)+sk1(i); %计算累积直方图sk1 endendfigure;bar(0:255,sk1,g); %绘制累积直方图title(累积直方图);xlabel(灰度值);ylabel(出现概率);sk2=round(sk1*256)+0.5); %将sk1归到相近级的灰度pSum = zeros(1,256);for i=1:256 pSum(i)=su

11、m(p(find(sk2=i); %计算均衡化后每个灰度级出现的概率endfigure;bar(0:255,pSum,b); %绘制累积直方图title(均衡化后直方图);xlabel(灰度值);ylabel(出现概率);%图像均衡化%AGrayMean=AGray;for i=0:255 AGrayMean(find(AGray=i)=sk2(i+1);%将各个像素归一化后的灰度值赋给这个像素endfigure;imshow(AGrayMean); %显示均衡化后的图像title(均衡化后图像);imwrite(AGrayMean,AGrayMean.bmp); %四、给灰度图像添加椒盐噪声

12、,以对比滤波效果%AGrayAddNoise = imnoise(AGray,salt & pepper, 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).*Mean_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均值滤波后图像) %

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号