灰度变换_原理_及Matlab程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像灰度变换
内容摘要
1 引言
通常经输入系统获取的图像信息中含有各种各样的噪声与畸变,例如室外光照度不够均匀会造成图像灰度过于集中;由摄像头获得的图像经过A/D转换、线路传送都会产生噪声污染等等,这些不可避免地影响系统图像清晰度,降低了图像质量,轻者表现为图像不干净,难以看清细节;重者表现为图像模糊不清,连概貌都看不出来。因此,在对图像经行分析前,必须对图像质量经行改善,一般情况下改善的方法有两类:图像增强和图像复原。图像增强的目的是设法改善图像的视觉效果,提高图像的可读性,将图像中感兴趣的特征有选择的突出,便于人与计算机的分析和处理。图像增强不考虑图像质量下降的原因,只将图像中感兴趣的特征有选择的突出,而衰减不需要的特征。灰度变换是图像增强处理中一种非常基础直接的空间域图像处理方法。灰度变换是根据某种条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。
1.灰度的线性变换
当图像由于成像时曝光不足或过度, 由于成像设备的非线性或图像记录设备动态范围太窄等因素, 都会产生对比度不足的弊病, 使图像中的细节分辨不清。这时如将图像灰度线性扩展, 常能显著改善图像的主观质量。假设原图像f (x, y ) 的灰度范围是[ a, b ] 希望变换后图像的灰度范围扩展到[ c, d ] 则:
M f 表示f ( x, y ) 的最大值。在线性灰度变换中,灰度执照完全线性变换函数进行变换。该线性灰度线性变换函数f ( r ) 是一个一维线性函数:
其中, a 为线性变换的斜率, b 为线性变换函数在y 轴的截距, 如图1所示。
在灰度的线性变换中, 当a > 1时, 输出图像的对比度将增大; 当a < 1时, 输出图像的对比度将减小; 当a = 1且b ∃0时, 所进行的操作仅使所有像素的灰度值上移或下移, 其效果是
使整个图像更暗或更亮; 如果a < 0, 则暗区域将变亮, 亮区域将变暗。
2分段线性灰度变换
为了突出感兴趣的目标或者灰度区间, 相对抑制那些不感兴趣的灰度区域, 可采用分段线性法。常用的是三段线性变换。分段线性变换称为图像直方图的拉伸, 它与完全线性变换类似, 其不同之处在于其变换函数是分段的, 如图2所示:
其变换函数表达式如下:
灰度拉伸可以更加灵活地控制输出灰度直方图的分布, 它可以有选择地拉伸某段灰度区间以改善输出图像。图2所示的变换函数的运算结果是将原图在r1 和r2 之间的灰度拉伸到s1 和s2 之间。如果一幅图像灰度集中在较暗的区域而导致图像偏暗, 可以用灰度拉伸功能来拉伸(斜率> 1) 物体灰度区间以改善图像; 同样如果图像灰度集中在较亮的区域而导致图像偏亮, 也可以用灰度拉伸功能来压缩(斜率< 1) 物体灰度区间来改善图像质量。
3非线性灰度变换
一些图片的像素过于集中于中间灰度部分,而其他部分的像素数很少,可以压缩像素数小的部分,扩展像素数集中的部分。如果只想了解图像的某一部分,那么可以压缩其它部分,对关注的部分进行变换。当用某些非线性函数作为图像的映射函数时,可实现图像灰度的非线性变换, 如利用对数函数、指数函数等可实现对数变换和指数变换。
4,灰度直方图
图像的直方图包含了丰富的图像信息,描述了图像的灰度级内容,反映了图像的灰度分布情况。通过对图像的灰度值进行统计,可以得到一一维离散的图像灰度统计直方图函数。从数学上说,他统计一幅图像中各个灰度级出现的次数或概率;从图形上来说,它是个二维图,横坐标表示各个像素点的灰度级,纵坐标为各个灰度级上图像像素点出现的个数或出现概率。
一些常用灰度变换Matlab程序以及图像处理效果图
1,二值化和阈值处理
%图像二值化(选取一个域值,(5) 将图像变为黑白图像)
I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif');
bw=im2bw(I,0.5);%选取阈值为0.5
subplot(1,3,1);
imshow(I);
title('原图');
subplot(1,3,2);
imshow(bw);
title('显示二值图像');
J=find(I<150);
I(J)=0;
J=find(I>=150);
I(J)=255;
subplot(1,3,3);
imshow(I);
title(' 图像二值化 ( 域值为150 ) ');
2非线性变换
%对数变换
I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif');
I=mat2gray(I);%对数变换不支持uint8类型数据,将一个矩阵转化为灰度图像的数据格式(double)
J=log(I+1);
subplot(1,2,1);
Imshow(I);%显示图像
title('原图');
subplot(1,2,2);
Imshow(J);
title('对数变换后的图像')
3,反色变换
I1=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif'); figure,imshow(I);
title('原始图像');
I2=imcomplement(I1);
figure,imshow(I2);
title('反色后图像');
4.灰度图像均衡化
I=imread('C:\Documents and Settings\Administrator\桌面\DIP-E1增强\DIP-E1增强\p12.tif'); J=histeq(I);
subplot(1,2,1),imshow(I);
subplot(1,2,2),imshow(J);
figure,subplot(1,2,1),imhist(I,64);
subplot(1,2,2),imhist(J,64);