直方图均衡中值滤波均值滤波锐化滤波.docx
- 文档编号:1677871
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:12
- 大小:354.98KB
直方图均衡中值滤波均值滤波锐化滤波.docx
《直方图均衡中值滤波均值滤波锐化滤波.docx》由会员分享,可在线阅读,更多相关《直方图均衡中值滤波均值滤波锐化滤波.docx(12页珍藏版)》请在冰豆网上搜索。
直方图均衡中值滤波均值滤波锐化滤波
直方图均衡及图像滤波
一、实验目的
1、通过实验进一步加深图像直方图均衡和滤波原理的理解;
2、提高Matlab编程能力。
二、实验原理
(一)直方图均衡原理
在实际应用中,希望能够有目的地增强某个灰度区间的图像,即能够人为地修正直方图的形状,使之与期望的形状相匹配,这就是直方图规定化的基本思想。
换句话说,希望可以人为地改变直方图形状,使之成为某个特定的形状,直方图规定化就是针对上述要求提出来的一种增强技术,它可以按照预先设定的某个形状来调整图像的直方图。
每一可能的灰度层次所占的像素个数尽量均等,每个像素具有同样的显示机会,从而使图像细节清晰,改善图像的整体对比度。
(二)中值滤波
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。
模板通常为3×3和5×5区域,也可以是其他不同的形状,如线状,圆形,十字形,圆环形等。
(三)均值滤波
均值滤波是一种利用模版对图像进行模板操作的图像平滑方法,所谓模版是指模版中所有系数都取相同值的模版,常用的3×3和5×5模版。
邻域平均法的思想是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定噪声,其优点是算法简单,计算速度快,其代价会造成图像在一定程度上的模糊。
三、实验内容
(一)直方图均衡
首先读入一幅图像,利用Matlab的rgb2gray()函数将其转化为灰度图,便于接下来的处理。
转化成的灰度图像如下图所示:
图1原灰度图
上面灰度图的直方图如下:
图2原灰度图的直方图
上面原始图像的直方图共256个灰度级,我们统计每个灰度级内像素数量,每个灰度级像素数量占像素总数量的比例,计算累计直方图做出灰度直方图:
累计直方图如下:
图3累积直方图
然后按照的映射关系,将原像素的灰度值变为该式映射的灰度值,从而获得均衡后的图像和均衡后的直方图。
均衡后的图像如下:
图4直方图均衡化后图像
从图4可以看出,均衡化后的图像细节更加清晰,整体对比度提高。
均衡后的直方图如下:
图5均衡化后直方图
从图5可以看出:
1、变换后直方图趋向平坦,部分灰度合并,有效的灰度级减少;
2、变换后含有像素数多的几个灰级间隔被拉大,压缩的只是像素数少的几个灰度级。
(二)中值滤波
在进行滤波前,首先给图像添加噪声,在此,我们给图像添加椒盐噪声,得到加入噪声后的图像如下:
图6中值滤波后图像
(三)均值滤波
均值滤波能够减弱或消除图像的高频分量,保留图像的低频分量,可用于降低或消除图像中的噪声。
因此我们也可以用均值滤波去除图像上的噪点。
在这里我们利用下面的平滑模板对图像进行均值滤波:
则每个像素点等于周围自身加上周围8个像素灰度值的均值。
得到均值滤波后的图像如下:
图7均值滤波后图像
从图7中可以看出,均值滤波后,图像上的噪点减弱,但是仍剩余一些噪点,与图6中值滤波的结果相比,均值滤波对于椒盐噪声的滤波效果要差些。
四、结果分析
(一)滤波窗口大小的对滤波效果的影响
滤波窗口的大小对滤波效果有重要影响。
为了探究滤波窗口大小对滤波效果的影响,我们以均值滤波为例,分别采用3×3,5×5,7×7,9×9,11×11,13×13的窗口,对添加椒盐噪声的图像进行滤波实验,得到滤波效果如下:
图83×3均值滤波后图像(椒盐噪声)图95×5均值滤波后图像(椒盐噪声)
图107×7均值滤波后图像(椒盐噪声)图119×9均值滤波后图像(椒盐噪声)
图1211×11均值滤波后图像(椒盐噪声)图1313×13均值滤波后图像(椒盐噪声)
从上面这些滤波后的图像对比可以看出:
1、滤波器窗口越小,则保留原图像的细节信息越丰富,但是滤波效果也就越差。
2、滤波窗口越大,则滤除噪声越干净,但同时对原图像细节信息的破坏也就更严重。
3、为了达到一个良好的滤波效果,应该根据实际遇到的噪声情况,合理选择窗口的大小,早噪声滤除和细节保留之间选择一个合适的折中。
(二)中值滤波与均值滤波比较
没有一种滤波算法对于所有噪声都适用,因此,中值滤波和均值滤波也各有自己的适用范围。
为了研究两种滤波算法的对不同噪声的滤波效果,我们给图像分别添加线性的高斯噪声和非线性的椒盐噪声,并分别用两种滤波器进行滤波实验,对比滤波效果。
1、添加椒盐噪声时:
给图像添加非线性的椒盐噪声,两者的滤波效果对比如下:
图14中值滤波后图像(椒盐噪声)图15均值滤波后图像(椒盐噪声)
从图14和图15对比可以看出,中值滤波将椒盐噪声基本都滤掉了,而均值滤波上则留下了不少残余噪点。
说明中值滤波对于非线性的椒盐噪声的滤波效果要优于均值滤波。
2、添加高斯噪声时:
给图像添加均值为0,方差为0.04的线性高斯噪声时,得到添加高斯噪声的图像如下:
图10添加高斯噪声后图像
用两种滤波器进行滤波后的效果对比如下:
图16中值滤波后图像(高斯噪声)图17均值滤波后图像(高斯噪声)
从图16和图17对比可以看出,中值滤波和均值滤波后,都残留一些噪点,但是均值滤波残留的噪点量要明显小于中值滤波。
说明均值滤波对于线性的高斯噪声的滤波效果要优于中值滤波。
五、实验心得
通过本次试验,我对用直方图均衡、均值滤波和中值滤波有了更加深刻的认识。
通过在仿真实验中遇到的问题,我认识到书本理论与实际操作之间的距离。
仿真实验过程中,不同滤波器对不同噪声效果不同,没有一种算法是适合于所有情况的。
实际中遇到的图像噪声比仿真实验要复杂的多。
说明要深入的了解滤波原理,还有非常多的东西需要学习和实践。
六、附录
%直方图均衡化实验
%%%%%%%%%%%%%%一、读入图像并转化为灰度图%%%%%%%%%%%
clc;clearall;closeall;
ARGB=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/N
fork=0:
255
p(k+1)=length(find(AGray==k))/(m*n);%计算每级灰度出现的概率,将其存入p(k)中相应位置
end
figure;
bar(0:
255,p,'r')%绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%%%%%%%%%%%%%%%%%%出现概率%%%%%%%%%%%%%%%%%%
%%%%%%%%%%计算累计直方图%%%%%%%%%%%%%%%
sk1=zeros(1,256);
fori=1:
256
forj=1:
i
sk1(i)=p(j)+sk1(i);%计算累积直方图sk1
end
end
figure;
bar(0:
255,sk1,'g');%绘制累积直方图
title('累积直方图');
xlabel('灰度值');
ylabel('出现概率');
sk2=round((sk1*256)+0.5);%将sk1归到相近级的灰度
pSum=zeros(1,256);
fori=1:
256
pSum(i)=sum(p(find(sk2==i)));%计算均衡化后每个灰度级出现的概率
end
figure;
bar(0:
255,pSum,'b');%绘制累积直方图
title('均衡化后直方图');
xlabel('灰度值');
ylabel('出现概率');
%%%%%%%%%%%%%%%%%%%%%%图像均衡化%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
AGrayMean=AGray;
fori=0:
255
AGrayMean(find(AGray==i))=sk2(i+1);%将各个像素归一化后的灰度值赋给这个像素
end
figure;
imshow(AGrayMean);%显示均衡化后的图像
title('均衡化后图像');
imwrite(AGrayMean,'AGrayMean.bmp');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%四、给灰度图像添加椒盐噪声,以对比滤波效果%%%%%%%%%%%%%%
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;%用来存储滤波后的图像
fori=1:
m-L+1
forj=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);
end
end
figure;
imshow(uint8(AGrayMean_Filted));
title('3*3均值滤波后图像')
%%%%%%%%%%%%%%%%%%%%%%%%%%六、中值滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
AGrayMedian=AGrayAddNoise;
fori=2:
m-1
forj=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;
end
end
figure;
imshow(uint8(AGrayMedian));
title('3*3中值滤波后图像');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 直方图 均衡 中值 滤波 均值 锐化