天天看点

基于灰度变换的图像增强及MATLAB实现

一   引言:图像增强技术是不考虑图像降质的原因 ,只将图像中感兴趣的特征有选择地突出,而衰减其不需要的特征,故改善后的图像不一定要去逼近原图像。如突出目标物轮廓,去除各类噪音,将黑白图像转变为伪彩色图像。从图像质量评价观点来看,图像增强的主要目的是提高图像的可懂度,更有利于人的视觉感知

二  图像增强的重要方法简介:

图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理、和彩色处理技术等。图像增强有图像对比度增强、亮度增强,轮廓增强等等。图像增强有两类方法:空间域法和频率域法。空间域法主要在空间域内对像素灰度值直接运算处理,如图像的灰度变换 直方图修正 图像空域平滑 和蜕化处理。频域法就是在图像的某种变化域内,对图像的变换值进行预算,如先对图像进行傅里叶变换,在进行滤波处理,最后将滤波处理后的图像变换值反变换到空间域,从而获得增强后的图像。

  1. 对比度增强

是一种通过改变图像像元的亮度分布态势,扩展灰度分布区间来改变图像像元对比度,从而改善图像质量的图像处理方法。因为亮度值是辐射强度的反映,所以也称为辐射增强。常用的方法有对比度线性变换和非线性变换。其关键是寻找到一个函数,以此函数对图像中每一个像元进行变换,使像元得到统一的重新分配,构成得到反差增强的图像

2、直方图增强

 (1)直方图均衡化(2)直方图规定化

3、平滑 平滑图像中出现某些亮度变化过大的区域,或出现不该有的亮点(“噪声”)时采用平滑方法可以减小变化,使亮度平缓或去掉不必要“噪声”点。它实际上是使图像中高频成分消退,即平滑图像的细节,降低其反差,保存低频成分,在频域中称为低通滤波。

4、锐化的作用在于提高边缘灰度值的变化率,使界线更加清晰。它是增强图像中的高频成分,在频域处理中称为高通滤波,也就是使图像细节的反差提高,也称边缘增强。要突出图像的边缘、线状目标或亮度变化率大的部分常采用锐化方法。

三 直方图增强及matlab实现

3.1 直方图均衡化

直方图均衡化是一种最常用的直方图修正。它是把给定图象的直方图分布改造成均匀直方图分布。由信息学的理论来解释,具有最大熵(信息量)的图象为均衡化图象。直观地讲,直方图均衡化导致图象的对比度增加。直方图均衡化基本做法是将每个灰度区间等概率分布代替了原来的随机分布,即增强后的图象中每一灰度级的像元数目大致相同。直方图均衡化可使得面积最大的地物细节得以增强,而面积小的地物与其灰度接近的地物进行合并,形成综合地物。减少灰度等级换取对比度的增大要注意的是,均衡化处理后的图象只能是近似均匀分布。均衡化图象的动态范围扩大了,但其本质是扩大了量化间隔,而量化级别反而减少了,因此,原来灰度不同的象素经处理后可能变的相同,形成了一片的相同灰度的区域,各区域之间有明显的边界,从而出现了伪轮廓。

下面给出直方图均衡化的源程序:

ourcePic=imread('D:\sourcePic.JPG'); %读取原图象 
 [m,n,o]=size(sourcePic); 
 grayPic=rgb2gray(sourcePic); 
 figure,imshow(sourcePic); 
  figure,imshow(grayPic); 
gp=zeros(1,256); %计算各灰度出现的概率 
 
 for i=1:256 
 
     gp(i)=length(find(grayPic==(i-1)))/(m*n); 
 
 end 
 
 figure,bar(0:255,gp); 
 
 title('原图像直方图'); 
 
 xlabel('灰度值'); 
 
 ylabel('出现概率'); 
 
   
 
 newGp=zeros(1,256); %计算新的各灰度出现的概率 
 
 S1=zeros(1,256); 
 
 S2=zeros(1,256); 
 
 tmp=0; 
 
 for i=1:256 
 
     tmp=tmp+gp(i); 
 
     S1(i)=tmp; 
 
     S2(i)=round(S1(i)*256); 
 
 end 
 
 for i=1:256 
 
     newGp(i)=sum(gp(find(S2==i))); 
 
 end 
 
 figure,bar(0:255,newGp); 
 
 title('均衡化后的直方图'); 
 
 xlabel('灰度值'); 
 
 ylabel('出现概率'); 
 
   
 
newGrayPic=grayPic; %填充各像素点新的灰度值 
 
for i=1:256 
 
    newGrayPic(find(grayPic==(i-1)))=S2(i); 
 
 end 
 
 figure,imshow(newGrayPic);      
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)
title('直方图均衡化后的图像')
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;      

继续阅读