数字图像处理【2】对比度亮度精准调节、常用灰度变换、直方图均衡化

图像对比对和亮度的调节

上一节认识了图像颜色模型HSI,最后提到了对比度和亮度。这两个参数对于图像质量评价来说是最直观且重要的一组参考变量。譬如在拍摄到一些不太理想的状态的图片,那么为了得到一幅更高质量的图像,就需要一些图像处理的方法,对这个图像进行调节以得到更好的对比度,得到更好的一个亮度水平,从而提高这个图像的质量。

首先如何定义图像对比度:它表示这个图像的动态范围,即HSI模型当中的强度I。在全图像范围内,用最大的强度值和最小的强度值,两者直接确定一个范围,即当前图像的对比度范围,范围越大对比度越好。

那这一节就讲讲图像灰度的变换算法。

在实际工作当中,我们希望有一个精准的调节,譬如说希望把对比度提高20%,亮度降低20%,这样的一个精准调节是如何实现了,如上图分成5个步骤,已经说明的很详细了。

最后补充一下,我们时常调整对比度和亮度的时候,亮度是直接加一个系数,并没有考虑到当前对比度的,这样是其实是会影响到对当前像素的对比度和亮度精准把控。以上公式就不会影响了,做到了对比度和亮度的精准调节。

灰度变换应用1——对数变换

对数变换的一个变换过程,用以上公式来表达:r为输入图像灰度,再对进行一个log运算的一个变化。log变换有什么作用:有时候输入原图的动态范围太大,已经超出某些显示设备的允许的动态范围(如HDR),如何直接用原图进行显示,那么图像里面的一些高光细节就会显示不出来,造成信息丢失。

解决方法就是对这个原图的高光部分进行一个灰度压缩,比如说我们就用这里的对数变换。

譬如上图a是一幅0~1.5*10^6的傅里叶频谱图的反转变换(黑白反转),这个动态范围非常大,在这个8位深的显示设备上,它的这个中心点特别亮,次低频细节看不清存在丢失信息的现象。图b是使用了对数变换处理过的一个结果,明显细节信息丰富了,能够更加清晰地显示出来。

总结:对数变换,尽可能保留低光部分,把高光部分进行灰度等级压缩。

灰度变换应用2——伽马变换

介绍另外一个更常用的变换,伽马变换。f是原图的(灰度)输入,然后进行(γ)伽马次方的运算。其中右边是伽马取不同值,输入输出的关系曲线图。由图分析可知,当伽马γ < 1的时候,较暗的输入会迅速爬升,但不会超出1,较亮的输入会比较平滑的回归到1。这个意味着把暗区进行了拉伸的变换,把亮区进行一个压缩,那么原来图像暗的区域会变亮。当伽马γ > 1的时候效果就相反,把暗区进行了压缩的变换,把亮区进行一个拉伸。

以上看两个实例,就是一个很好的伽马变换说明。第一个是医学镜像图,很明显的看出使用伽马小于1的变换进行处理后,信息量得到提升。而第二个是飞行仪在空中的抓拍,由于日光的照射,输入图像整体偏亮,进行伽马大于1后的变换处理,路面信息得到明显的增强效果。所以伽马变换的取值,要根据输入图像的情况区别处理。

灰度变换应用3——灰度直方图、均衡化

前面介绍的几种灰度变换算法,它都是需要人为的定义一些辅助参数进行调节,而接下来介绍的直方图均衡化算法,它是一个不需要辅助参数,可以说是一个全自助动的图像处理方法。如何理解?也就是说处理效果,和原输入有莫大的关系。

首先来对直方图做一个定义:对于范围再【0,L-1】的灰度图像,(这里的L就是8bit显示位深的表示最大范围256,灰度等级就是0~255)对于这样一副数字图像,对它的灰度等级进行一个数量统计。譬如在像素总个数为n的数字图像中,灰度等级在r(k)=255的像素个数共有n(k)个。利用n(k) / n就可以得出灰度等级r(k)在这副数字图像中的灰度密度函数p,统计所有灰度等级的密度就可以绘制出直方图。直白的说灰度直方图就是数字图像灰度的密度分布函数。

有了直方图的定义,再观察右边的4张图像和对应的灰度直方图,图4效果是最符合人类观察的,它对应的直方图分布是最均匀的,从4张图像的直方图对比可以总结,如果直方图处于均衡的状态,那么对应的数字图像具有更好的对比度。那么可以从修改它的直方图这个角度入手,把直方图均衡化,从而达到图像增强的目的。

那么希望找到一个变换,记s=T(r),r为输入图像的灰度值,s是变换以后的灰度值。变换后的图像灰度直方图(相比原输入图像的直方图)是均匀的。而且还需要满足以上两个条件。

  • 条件1、s在区间0≤r≤1中大于0且单调递增。此条件保证了原图各灰度等级在变换后仍保持从黑到白的排列顺序。

  • 条件2、当0≤r≤1时,0≤s≤1。保证变换前后灰度值的动态范围一致性。

设变换前图像的密度函数为p(r),变换后的密度函数为p'(s),灰度变换函数为s=T(r)。

由概率论可知,原概率密度函数 对变换前原图像的灰度等级进行统计 和 变换后概率密度函数 对变换后图像的灰度等级进行统计,两者是相等的(图像像素个数相等)即:

p(r) * deta(r) = p’(s) * deta(s)

而经过变换的图像灰度密度函数p'(s)是一个均匀分布,均匀分布的一个特性就是:

p = 1/(b-a),[a,b]

结合两个公式,也就是转换成:

deta(s) = p(r) * deta(r) 在[0,1]区间

对两边同时积分

T(r) = s = ∫ p(t) dt 在[0, r]范围内

从这一步我们看到转换函数T(r)就是对原来的概率密度函数,做一个累积分布函数的计算。

而对于离散的数字图像,我们是无法做积分的,可以使用以上的累加代替积分。如何理解这个公式,S(k)等于变换后的灰度值,等于原灰度等级的概率进行累加计算,等于当前所有灰度等级的范围内,概率密度的积分。 下面看一个例子

这里假设一幅64*64的数字图像,位深为3,共有8个灰度等级,原灰度分布如左图统计所示。有了这个统计可以推出原来的直方图,根据介绍的直方图均衡化公式,原输入灰度r1变换后的灰度值s1,当前输入灰度等级是1,那么对于当前的灰度等级,s1等于r0到r1的概率密度的积分,等于r0到r1灰度等级概率的累加计算,等于7*(0.19+0.25)=3.08取整为3;其他灰度等级的计算如此类推。

介绍了直方图均衡化以后,还要说说它的具体应用——直方图的匹配,也叫直方图规定化。比如说现在有两幅输入图像1和2,直方图1我是满意的,希望图像2能有图像1这样的或者相似的直方图,那就相当于要把这个直方图做一个匹配或者说做一个规范映射。

此时我们可以先把直方图1进行均衡化后,得到一个直方图1到均匀直方图的映射关系,再把直方图2也作均衡化处理,此时就可以利用均匀的直方图作一个桥梁,链接直方图1和2,达到一个映射的关系。

猜你喜欢

转载自blog.csdn.net/a360940265a/article/details/129616982