① 空间域增强
空间域增强是指在空间域中,通过线性或非线性变换来增强构成图像的像素。增强的方法主要分为点处理和模板处理。点处理就是作用在单个像素,包括图像灰度变换、直方图处理和伪彩色处理等。模板处理是指作用于像素领域的处理方法,包括图像平滑和图像锐化等技术。
② 频率域增强
频率域增强是增强技术的重要组成部分,它通过傅立叶变换,可以把空间域混叠的成分在频率域中分离出来,从而提取或滤去相应的图像成分,达到图像增强的目的。这一过程中的核心基础为傅立叶变换。频率域图像增强技术主要有:频率域平滑技术(低通滤波)、频率域锐化技术(高通滤波)和同态滤波等。 1、对比度调整
① 颜色图变亮或变暗函数: brighten(beta) 用于调整灰度值或颜色图,0 返回当前使用的颜色图的更亮或更暗变换后的颜色图MAP,但不改变现有的显示。 NEWMAP=brighten(MAP,beta) 返回指定颜色图的更亮或更暗变换后的颜色图,但不改变显示。 brighten(FIG,beta) 增强图FIG的所有物体。 ② 对比度调整函数:imadjust( ) 用于调整灰度值或颜色图,其基本调用格式如下: J=imadjust(I,[low high],[bottom top],gamma) 将灰度图像I转换为图像J,使值从low到high与从bottom到top相匹配。值大于high或 小于low的被减去。即小于low与bottom相匹配,大于high的与top相匹配。如果矩阵为空矩阵表示缺省值为[0,1]。gamma用来指定描述I和J值关系曲线的形状,gamma<1,越亮输出值越加强;gamma>1,越亮输出值越减弱;缺省gamma=1,表示线性变换。 map1=imadjust(map,[low high],[bottom,top],gamma) 对索引图像的颜色图进行变换,如果[low high],[bottom top]均为2×3矩阵,则gamma为1×3向量,函数分别调整红、绿、蓝成分,调整后的颜色图的大小与原来的一样。 RGB1=imadjust(GRB,[low high],[bottom,top],gamma) 对彩色图像进行变换,与索引图像中颜色图调整方法一样。 特殊情况:如果top 2、直方图调整 直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。 直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。 图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。 直方图调整方法常用的有直方图均衡化和直方图规定化。直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。由于均衡化的直方图技术只能产生一种近似均匀的直方图,而不适于需要交互作用的图像增强的应用。实际上为了能增强图像中某些灰度级的范围,有时希望能够规定交互作用的特定的直方图,直方图规定化可看作是直方图均衡化方法的改进。所以说,直方图规定化可以突出感兴趣灰度范围,是对均衡化的一种有效扩展,直方图均衡化是规定化的一种特例,即规定直方图是均匀分布。 ① 直方图调整函数:histeq( ) 直方图均衡通过转换灰度图像亮度值或索引图像的颜色图值来增强图像对比度,输出图像的直方图近似与给定的直方图相匹配。调用格式如下: J=histeq(I,N) 将灰度图像I转换成具有N个离散灰度级的灰度图像J,N缺省值为64。 NEWMAP=histeq(X,MAP,hgram) 变换索引图像X的颜色图,使索引图像的灰度级成分与hgram相匹配,返回变换后的颜色图NEWMAP,length(hgram)必须与size(MAP,1)一样。 ② 直方图的显示函数:imhist( ) 其调用格式如下: J=imhist(I,n) 显示图像I的直方图, n为灰度级数目,灰图像的缺省值为256,黑白图像缺省值为2。 J=imhist(I,map) J 返回调色板为map的图像I的直方图。 [counts,X]=imhist(I,?) 返回图像I的每个灰度上的像素点数目。 3、图像的滤波 图像的滤波都是针对灰度级图像而言的。其中锐化和平滑是图像增强的重要手段,采用前者可以突出图像的细节,采用后者可以滤除图像中的噪声,从而达到图像清晰的目的。 如果用用信号处理的理论来解释对图像进行平滑的话,这种做法实现的是一种简单的低通滤波器(low pass filter)。在灰度连续变化的图象中,如果出现了与相邻像素的灰度相差很大的点,比如说一片暗区中突然出现了一个亮点,人眼能很容易觉察到。就象看老电影时,由于胶片太旧,屏幕上经常会出现一些亮斑。这种情况被认为是一种噪声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪声的目的。 锐化和平滑恰恰相反,它是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波(high pass filter)。锐化处理在增强图象边缘的同时增加了图象的噪声。常用的锐化模板是拉普拉斯(Laplacian)模板。拉普拉斯模板的含义是先将自身与周围的8个像素相减,表示自身与周围像素的差别,再将这个差别加上自身作为新像素的灰度。可见,如果一片暗区出现了一个亮点,那么锐化处理的结果是这个亮点变得更亮,增加了图象的噪声。 滤波工具函数:fspecial(type) 格式:H=fspecial(type) 其中type的取值: ‘average’ 均值低通滤波 ‘gaussian’ 高斯低通滤波 ‘prewitt’ 边缘算子增强滤波 ‘sobel’ 边缘算子增强滤波 除了以上列出的算子,更多算子可以在MATLAB中查询。 三、实验例题 1、灰度图像亮度调整 clear a=imread('abc.jpg'); I=rgb2gray(a); subplot(1,2,1); imshow(I) J=imadjust(I,[0.1 0.8],[],0.5); subplot(1,2,2); imshow(J) 2、灰度图像倒置 clear a=imread('abc.jpg'); I=rgb2gray(a); subplot(1,2,1); imshow(I) J=imadjust(I,[0 1],[1 0],1.3); subplot(1,2,2); imshow(J) 3、直方图均衡化 clear a=imread('city.jpg'); I=rgb2gray(a); subplot(1,2,1); imshow(a) J=histeq(I); subplot(1,2,2); imshow(J) 4、直方图规定化 I=imread('rice.png'); subplot(2,4,1);imshow(I); subplot(2,4,5);imhist(I,256); J=histeq(I,32); subplot(2,4,2);imshow(J); subplot(2,4,6);imhist(J,256); [counts,x]=imhist(J); K=imread('cameraman.tif'); subplot(2,4,3);imshow(K); subplot(2,4,7);imhist(K); L=histeq(K,counts); subplot(2,4,4);imshow(L); subplot(2,4,8);imhist(L);