此示例显示了如何使用几种方法来增强灰度和TrueColor图像。
三个功能特别适合对比度增强:Imadjust
,,,,Histeq
, 和Adapthisteq
。使用默认设置,比较三种技术的有效性:
Imadjust
通过将输入强度图像的值映射到新值来增加图像的对比度,默认情况下,1%的数据在输入数据的低强度和高强度下饱和。
Histeq
执行直方图均衡。它通过在强度图像中转换值来增强图像的对比度,使输出图像的直方图大致匹配指定的直方图(默认情况下均匀分布)。
Adapthiste
问
执行对比度限制的自适应直方图均衡。与众不同Histeq
,它在小型数据区域(图块)而不是整个图像上运行。每个图块的对比度都得到增强,因此每个输出区域的直方图大致匹配指定的直方图(默认情况下均匀分布)。对比度增强可能会受到限制,以避免放大图像中可能存在的噪声。
阅读灰度图像,与工作空间形成鲜明对比。使用三种对比度调整技术增强图像。
pout = imread(“ pout.tif”);pout_imadjust = imadjust(pout);pout_histeq = histeq(pout);pout_adapthisteq = adapthisteq(pout);
显示原始图像和三个对比度调整图像作为蒙太奇。
montage({pout,pout_imadjust,pout_histeq,pout_adapthisteq},“尺寸”,[1 4])标题(“使用Imadjust,Histeq和Adapthisteq的原始图像和增强图像”)
在工作区中阅读第二个灰度图像,并使用三种对比度调整技术增强图像。
tire = imread(“ tire.tif”);tire_imadjust = imadjust(tire);tire_histeq = histeq(tire);tire_adapthisteq = AdaPthisteq(tire);
显示原始图像和三个对比度调整图像作为蒙太奇。
montage({tire,tire_imadjust,tire_histeq,tire_adapthisteq},“尺寸”,[1 4])标题(“原始图像和增强图像使用”+...“ Imadjust,Histeq和Adapthisteq”)
注意Imadjust
对轮胎的图像几乎没有影响,但在p嘴中造成了巨大变化。绘制直方图pout.tif
和tire.tif
揭示了第一个图像中的大多数像素集中在直方图的中心,而在tire.tif
,该值已经在最低0到255的最小值之间分布Imadjust
从有效调整图像的对比度。
图子图(1,2,1)Imhist(pout)标题(“ pout.tif的直方图”)子图(1,2,2)Imhist(轮胎)标题(“ Tire.tif的直方图”);
另一方面,直方图均衡实质上改变了这两个图像。许多先前隐藏的特征都是暴露的,尤其是轮胎上的碎屑颗粒。不幸的是,与此同时,增强功能过于饱和,这两个图像的几个区域。请注意,轮胎的中心是如何如何被洗掉的。
专注于轮胎的图像,比车轮中心保持在相同的亮度,同时增强图像其他区域的对比度。为了实现这一目标,必须将不同的转换应用于图像的不同部分。对比度限制的自适应直方图均衡技术,在Adapthisteq
,可以做到这一点。算法分析图像的一部分并计算适当的转换。还可以设置对对比度增强水平的极限Histeq
。这是此示例中最复杂的技术。
颜色图像的对比度增强通常是通过将图像转换为具有图像光度为其组件之一的颜色空间(例如L*a*b*颜色空间)来完成的。对比度调整仅在亮度层L*上进行,然后将图像转换回RGB颜色空间。操纵光度会影响像素的强度,同时保留原始颜色。
阅读与工作空间形成鲜明对比的图像。然后,将图像从RGB颜色空间转换为L*a*b*颜色空间。
shadow = imread(“ Lowlight_1.jpg”);shadow_lab = rgb2lab(shadow);
光度值的值范围从0到100。将值扩展到范围[0 1],这是带有数据类型的图像的预期范围双倍的
。
MAX_LUMINOSES = 100;l = shadow_lab(:,:,:,1)/max_luminsose;
在光度通道上执行三种类型的对比度调整,并保持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);
显示原始图像和三个对比度调整图像作为蒙太奇。
图montage({shadow,shadow_imadjust,shadow_histeq,shadow_adapthisteq},“尺寸”,[1 4])标题(“原始图像和增强图像使用”+...“ Imadjust,Histeq和Adapthisteq”)