2D 计算机视觉:原理、算法及应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 图像灰度映射

按某种规律改变灰度图像中各像素的灰度值是图像增强的常用方法。具体来说,设原始图像在(x, y)处的灰度为f,而改变后图像在(x, y)处的灰度为g,则对图像的增强可表述为将在(x, y)处的灰度f映射为g的操作。在很多情况下,fg的取值范围是一样的,我们假设均为[0,L-1],L为图像的灰度级数。对于不同的灰度f,可以根据不同的规则将其映射为g,这些映射规则有时可写成解析式,有时也用函数曲线(称为“变换曲线”)来表示。下面介绍3种常用的映射规则。

3.2.1 图像求反

图像求反是指将原始图像的灰度值进行翻转,简单来说就是“使黑变白,使白变黑”。图像求反的映射规则可表示为

对应的变换曲线如图3-4(b)所示,原本具有接近L-1的较大灰度的像素在变换后的灰度接近0,而原来较暗的像素在变换后成为较亮的像素。普通黑白底片和照片的关系就是这样的。

例3-4 图像求反示例

在图3-4中,图3-4(a)为一幅灰度图像,图3-4(b)为图像求反的变换曲线,图3-4(c)为图像求反的结果。对比图3-4(a)和图3-4(c),很容易看出底片和照片的关系。

图3-4 图像求反示例

3.2.2 对比度拉伸

对比度拉伸是指通过加大图像中各部分之间的反差(灰度差别)来进行图像增强。在具体操作中,当fg的取值范围一样时,往往通过增加原始图像里某两个灰度值间的动态范围来实现对比度拉伸。典型的对比度拉伸曲线(这里是一条折线)如图3-5(b)所示,可以表示为

通过这样一次变换,原始图像中灰度值在0~f1f2L-1内的动态范围减小了,而在f1f2内的动态范围增加了,从而使相应范围内的对比度增强了。在实际应用中,f1f2g1g2可取不同的值并进行组合,从而得到不同的效果。

例3-5 对比度拉伸示例

图3-5(a)为一幅曝光不足的图像,图3-5(b)为进行对比度拉伸的变换曲线,图3-5(c)为增强结果。对比图3-5(a)和图3-5(c)可见,通过对比度拉伸,长城更加突出了,远处的山峦也更加清晰了。

图3-5 对比度拉伸示例

3.2.3 动态范围压缩

动态范围压缩的目的与对比度拉伸的目的相反。有时原始图像的动态范围太大,超出某些设备允许的显示范围,这时如果直接对原始图像灰度进行显示,则可能丢失一部分细节。解决的办法是对原始图像进行动态范围压缩。一种常用的方法是借助对数形式的变换,相应变换曲线如图3-6(b)所示,可以表示为

根据对数函数的特性,比较低的灰度值会被分离,而过高的灰度值会被降低。大部分的f值会被映射到接近L-1的灰度范围内,如果只选取这部分灰度值进行显示,就实现了压缩动态范围的目的。

例3-6 动态范围压缩示例

图3-6(a)为对一幅2D门函数的图像直接进行傅里叶变换后得到的频谱图,这里2D门函数的图像如图4-1(a)所示。由于中心像素值很大(反映在图像上为中央区域很亮),将该图像以256级灰度显示时,周围像素就会很暗,甚至看不出来。图3-6(b)为用来实现动态范围压缩的对数形式的变换曲线。图3-6(c)为对图3-6(a)进行动态范围压缩后得到的图像,中心“十字”以外的区域细节亮度增加,更接近中心像素值,看起来就比较清楚了。

图3-6 动态范围压缩示例