word版全文已上传网盘https://pan.baidu.com/s/1gfpgJ7d,下文供预览:
数字图像处理
目录
2015 年12 月
P1图像灰度变换增强
一、 前言
灰度变换是基于点操作的增强方法,它将每一个像素的灰度值按照一定的数学变换公式转换为一个新的灰度值,如增强处理中的对比度增强。对比度增强可以采用线性拉伸和非线性拉伸。线性拉伸可以将原始输入图像中的灰度值不加区别地扩展。如果要求对局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理时,采用分段线性拉伸。非线性拉伸常采用对数扩展和指数扩展。对数扩展拉伸低亮度去,压缩高亮度区;指数扩展拉伸了高亮区,压缩了低亮度区。
影响系统图像清晰程度的因素很多,例如室外光照度不够均匀就会造成图像灰度过于集中;由CCD(摄像头)获得的图像经过A/D(数/模转换,该功能在图像系统中由数字采集卡来实现)转换、线路传送都会产生噪声污染等等。因此图像质量不可避免的降低了,轻者表现为图像不干净,难于看清细节;重者表现为图像模糊不清,连概貌也看不出来。因此,在对图像进行分析之前,必须要对图像质量进行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征,它的目的主要是提高图像的可懂度。图像复原技术与增强技术不同,它需要了解图像质量下降的原因,首先要建立"降质模型",再利用该模型,恢复原始图像。
根据图像增强处理过程所在的空间不同,图像增强可分为空域增强法和频域增强法两大类。频域增强是在图像的某种变换域内,对图像的变换系数值进行运算,即作某种修正,然后通过逆变换获得增强了的图像。空域增强则是指直接在图像所在的二维空间进行增强处理,既增强构成图像的像素。空域增强法主要有灰度变换增强,直方图增强,图像平滑和图像锐化等。
图像的灰度变换处理是图像增强处理技术中一种非常基础、直接的空间域图像处理法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。
二、 灰度变换增强的方法及其实现
灰度变换法又可分为:线性、分段线性和非线性变换。主要的灰度变换函数如图1所示。
1. 线性灰度变换
原理:
当图像由于成像时曝光不足或过度,由于成像设备的非线性或图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清。这时如将图像灰度线性扩展,常能显著改善图像的主观质量。假设原图像f(x,y) 的灰度范围是[a,b],希望变换后图像的灰度范围扩展到[c,d],则可采用如下的线性变换来实现:
(1) |
其中,Mf表示f(x,y)的最大值。该线性灰度变换函数是个一维线性函数:
(2) |
在灰度的线性变换中,当a>1时,输出图像的对比度将增大;当a<1时,输出图像的对比度将减小;当a=1且b≠0时,所进行的操作仅使所有像素的灰度值上移或下移,其效果是使整个图像更暗或更亮;如果a<0,则暗区域将变亮,亮区域将变暗。
图1. 基本灰度变换函数
代码实现:
图2. 线性灰度变换
依据式(1)即可对图片像素点进行运算,处理前需要先将色彩图像灰度化,需要先调用rgb2gray(I)。代码如下:
I =imread('pic/h2.jpg');
[d1,d2,d3] =size(I);
if(d3 > 1)
I =rgb2gray(I);%如果是灰度图就不用先变换
end
Im = double(I);
A=0.5; B=0;
darker=Im*A+B;
A=1;B=0;
mover=Im*A+B;
A=1.5;B=0;
lighter=Im*A+B;
A=-1;B=255;
reverser=Im*A+B;
J1=uint8(darker);
J2=uint8(mover);
J3=uint8(lighter);
J4=uint8(reverser);
subplot(2,3,1),imshow(I);title('原图');
subplot(2,3,2),imshow(J1);title('a=0.5 减小对比度');
subplot(2,3,5),imshow(J2);