您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MATLAB实现基于灰度变换图像增强----孙明朗---140303006
0宜宾学院物理与电子信息工程学院学科:数字信号处理原理及实现题目:MATLAB实现基于灰度变换的图像增强姓名:孙明朗班级:14级励志班学号:1403030061图像增强技术是不考虑图像降质的原因,只将图像中感兴趣的特征有选择地突出,而衰减其不需要的特征,故改善后的图像不一定要去逼近原图像。如突出目标物轮廓,去除各类噪音,将黑白图像转变为伪彩色图像。从图像质量评价观点来看,图像增强的主要目的是提高图像的可懂度,更有利于人的视觉感知.一、图像增强的重要方法简介:图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理、和彩色处理技术等。图像增强有图像对比度增强、亮度增强,轮廓增强等等。图像增强有两类方法:空间域法和频率域法。空间域法主要在空间域内对像素灰度值直接运算处理,如图像的灰度变换直方图修正图像空域平滑和蜕化处理。频域法就是在图像的某种变化域内,对图像的变换值进行预算,如先对图像进行傅里叶变换,在进行滤波处理,最后将滤波处理后的图像变换值反变换到空间域,从而获得增强后的图像。1、对比度增强是一种通过改变图像像元的亮度分布态势,扩展灰度分布区间来改变图像像元对比度,从而改善图像质量的图像处理方法。因为亮度值是辐射强度的反映,所以也称为辐射增强。常用的方法有对比度线性变换和非线性变换。其关键是寻找到一个函数,以此函数对图像中每一个像元进行变换,使像元得到统一的重新分配,构成得到反差增强的图像2、直方图增强(1)直方图均衡化(2)直方图规定化3、平滑平滑图像中出现某些亮度变化过大的区域,或出现不该有的亮点(“噪声”)时采用平滑方法可以减小变化,使亮度平缓或去掉不必要“噪声”点。它实际上是使图像中高频成分消退,即平滑图像的细节,降低其反差,保存低频成分,在频域中称为低通滤波。4、锐化的作用在于提高边缘灰度值的变化率,使界线更加清晰。它是增强图像中的高频成分,在频域处理中称为高通滤波,也就是使图像细节的反差提高,也称边缘增强。要突出图像的边缘、线状目标或亮度变化率大的部分常采用锐化方法。二、直方图增强及matlab实现1直方图均衡化直方图均衡化是一种最常用的直方图修正。它是把给定图象的直方图分布改造成均匀直方图分布。由信息学的理论来解释,具有最大熵(信息量)的图象为均衡化图象。直观地讲,直方图均衡化导致图象的对比度增加。直方图均衡化基本做法是将每个灰度区间等概率分布代替了原来的随机分布,即增强后的图象中每一灰度级的像元数目大致相同。直方图均衡化可使得面积最大的地物细节得以增强,而面积小的地物与其灰度接近的地物进行合并,形成综合地物。减少灰度等级换取对比度的增大要注意的是,均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各2区域之间有明显的边界,从而出现了伪轮廓。matlab直方图均衡化的函数是histeq,I=imread('pout.tif');[J,T]=histeq(I);figure,plot((0:255)/255,T);图像的灰度直方图均衡化公式:公式中,T(rk)来表示原图像的第k个灰度级的转换函数。∑表示总和。∑nj/N表示0~j个灰度级的像素数量总和与像素总数的比值,也就是前面讲过的百分位(当前色阶与前面色阶的所有像素数量÷总像素数量)。∑Pr(rk)表示第0~k的灰度级出现概率累积相加。因为s是归一化的数值(s∈[0,1]),要转换为0~255的颜色值,需要再乘上255,即S=∑Pr(rk)*255。下面给出直方图均衡化的源程序:ourcePic=imread('D:\sourcePic.JPG');%读取原图象[m,n,o]=size(sourcePic);grayPic=rgb2gray(sourcePic);figure,imshow(sourcePic);figure,imshow(grayPic);gp=zeros(1,256);%计算各灰度出现的概率fori=1:256gp(i)=length(find(grayPic==(i-1)))/(m*n);endfigure,bar(0:255,gp);title('原图像直方图');3xlabel('灰度值');ylabel('出现概率');newGp=zeros(1,256);%计算新的各灰度出现的概率S1=zeros(1,256);S2=zeros(1,256);tmp=0;fori=1:256tmp=tmp+gp(i);S1(i)=tmp;S2(i)=round(S1(i)*256);endfori=1:256newGp(i)=sum(gp(find(S2==i)));endfigure,bar(0:255,newGp);title('均衡化后的直方图');xlabel('灰度值');ylabel('出现概率');4newGrayPic=grayPic;%填充各像素点新的灰度值fori=1:256newGrayPic(find(grayPic==(i-1)))=S2(i);endfigure,imshow(newGrayPic);52直方图规定化程序代码:I=imread('cameraman.tif');subplot(121)imshow(I);title('原始图像');subplot(122)imhist(I,64)%绘制图像的直方图,n=64为灰度图像灰度级,若I为灰度图像,默认n=256;若I为二值图像,默认n=2。title('图像的直方图');n=256时下面利用直方图均衡化增强图像的对比度:I=imread('cameraman.tif');J=histeq(I);%将灰度图像转换成具有64(默认)个离散灰度级的灰度图像imshow(I)title('原始图像')figure,imshow(J)6title('直方图均衡化后的图像')figure(1)subplot(121);imhist(I,64)title('原始图像的直方图')subplot(122);imhist(J,64)title('均衡化的直方图')(请自己运行查看)分析:从上图中可以看出,用直方图均衡化后,图像的直方图的灰度间隔被拉大了,均衡化的图像的一些细节显示了出来,这有利于图像的分析和识别。直方图均衡化就是通过变换函数histeq将原图的直方图调整为具有“平坦”倾向的直方图,然后用均衡直方图校正图像。下面利用直方图规定化对图像进行增强:I=imread('cameraman.tif');figure,imshow(I);title('原始图像');hgram=50:2:250;%规定化函数J=histeq(I,hgram);figure,imshow(J);title('直方图规定化后的图像');figure,imhist(I,64);title('原始图像的直方图');figure,imhist(J,64);title('直方图规定化后的直方图');运行结果:变换灰度间隔后的图像和直方图:hgram=50:1:250;hgram=50:5:250;三、总结直方图均衡化是灰度变换的一个重要应用,它高效且易于实现,广泛应用于图像增强处理中。图像的像素灰度变化是随机的,直方图的图形高低不齐,直方图均衡化就是用一定的算法使直方图大致平和。均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。如果原始图像对比度本来就很高,如果再均衡化则灰度调和,对比度降低。在泛白缓和的图像中,均衡化会合并一些象素灰度,从而增大对比度。均衡化后的图片如果再对其均衡化,则图像不会有任何变化。灰度直方图均衡化的算法,简单地说,就是把直方图的每个灰度级进行归一化处理,求每种7灰度的累积分布,得到一个映射的灰度映射表,然后根据相应的灰度值来修正原图中的每个像素。经典的直方图均衡化算法可能存在以下一些不足:输出图像的实际灰度变化范围很难达到图像格式所允许的最大灰度变化范围。输出图像的灰度分布直方图虽然接近均匀分布,但其值与理想值1/n仍有可能存在较大的差异,并非是最佳值。输出图像的灰度级有可能被过多地合并。由于灰度的吞噬也易造成图像信息的丢失。
本文标题:MATLAB实现基于灰度变换图像增强----孙明朗---140303006
链接地址:https://www.777doc.com/doc-4735820 .html