对比度增强技术

这个例子展示了几种图像增强方法。有三个功能特别适合增强对比度:imadjust,histeq,adapthisteq。这个例子比较了它们在增强灰度和真彩色图像上的使用。

提高灰度图像

使用默认设置,比较以下三种技术的有效性:

  • imadjust通过将输入强度图像的值映射到新值来增加图像的对比度,这样,默认情况下,1%的数据在输入数据的低强度和高强度时饱和。

  • histeq执行直方图均衡化。它通过转换亮度图像中的值来增强图像的对比度,从而使输出图像的直方图近似地匹配指定的直方图(默认情况下为均匀分布)。

  • adapthisteq执行限制对比度的自适应直方图均衡化。不像histeq,它对小的数据区域(tiles)而不是整个图像进行操作。每个块的对比度增强,以便每个输出区域的直方图与指定的直方图近似匹配(默认为均匀分布)。为了避免放大图像中可能存在的噪声,可以对对比度增强进行限制。

将一个灰度图像读入工作区。使用三种对比度调整技术增强图像。

撅嘴= imread (“pout.tif”);pout_imadjust = imadjust(撅嘴);pout_histeq = histeq(撅嘴);pout_adapthisteq = adapthisteq(撅嘴);

显示原始图像和三个对比度调整图像作为蒙太奇。

蒙太奇({撅嘴,pout_imadjust、pout_histeq pout_adapthisteq},“大小”[1 - 4])标题(使用imadjust, histeq和adapthisteq的原始图像和增强图像)

读取第二个灰度图像到工作空间中,并使用三种对比度调整技术增强图像。

轮胎= imread (“tire.tif”);tire_imadjust = imadjust(轮胎);tire_histeq = histeq(轮胎);tire_adapthisteq = adapthisteq(轮胎);

显示原始图像和三个对比度调整图像作为蒙太奇。

蒙太奇({tire_histeq,轮胎,tire_imadjust tire_adapthisteq},“大小”[1 - 4])标题(使用imadjust, histeq和adapthisteq的原始图像和增强图像)

请注意,imadjust对轮胎的形象影响不大,但在撅嘴的情况下造成了巨大的变化。绘制的直方图pout.tiftire.tif显示第一幅图像中的大部分像素都集中在直方图的中心,而在tire.tif时,值已经分布在0的最小值和255的最大值之间,因此阻止了imadjust从有效地调整图像的对比度。

图副图(1,2,1)名称(“pout.tif直方图”)附属地块(1,2,2)名称(“tire.tif直方图”);

另一方面,直方图均衡化实质上改变了这两幅图像。很多之前隐藏的特征都暴露了出来,特别是轮胎上的碎片颗粒。不幸的是,与此同时,增强会使两张图像的几个区域过于饱和。注意轮胎的中心,孩子的部分脸,和夹克都被洗掉了。

集中在图像上的轮胎,它将是可取的车轮中心停留在大约相同的亮度,而加强对比度的其他地区的图像。为了实现这一点,需要对图像的不同部分应用不同的变换。采用有限对比度的自适应直方图均衡化技术adapthisteq,可以做到这一点。该算法分析图像的部分,并计算适当的转换。还可以对对比度增强的程度进行限制,从而防止由的基本直方图均衡化方法造成的过饱和度histeq。这是本例中最复杂的技术。

提高彩色图像

彩色图像的对比度增强通常是通过将图像转换为具有图像亮度的颜色空间来实现的,例如L*a*b*颜色空间。对比度调整只在光度层'L*'上执行,然后将图像转换回RGB颜色空间。操纵亮度会影响像素的强度,同时保留原始颜色。

将一个映像读入工作区。的“shadow.tif”图像是索引图像,因此将图像转换为真彩色(RGB)图像。然后,将图像从RGB颜色空间转换为L*a*b*颜色空间。

[X,地图]= imread (“shadow.tif”);影子= ind2rgb (X,地图);shadow_lab = rgb2lab(影子);

光度值的范围从0到100。将值缩放到范围[0 1],即具有数据类型的图像的预期范围

max_luminosity = 100;L = shadow_lab (:: 1) / max_luminosity;

对光度通道进行三种对比度调整,保持a*和b*通道不变。将图像转换回RGB颜色空间。

shadow_imadjust = shadow_lab;shadow_imadjust (:: 1) = imadjust (L) * max_luminosity;shadow_imadjust = lab2rgb (shadow_imadjust);shadow_histeq = shadow_lab;shadow_histeq (:: 1) = histeq (L) * max_luminosity;shadow_histeq = lab2rgb (shadow_histeq);shadow_adapthisteq = shadow_lab;shadow_adapthisteq (:: 1) = adapthisteq (L) * max_luminosity;shadow_adapthisteq = lab2rgb (shadow_adapthisteq);

显示原始图像和三个对比度调整图像作为蒙太奇。

图蒙太奇({影子,shadow_imadjust、shadow_histeq shadow_adapthisteq},“大小”[1 - 4])标题(使用imadjust, histeq和adapthisteq的原始图像和增强图像)

另请参阅

||

相关的话题