APP下载

一种改进的自适应分段线性变换算法

2020-09-03龙,赵

激光与红外 2020年8期
关键词:灰度级直方图个数

陈 龙,赵 巍

(1.北京中电慧视科技有限公司,北京 100015;2.中国电子科技集团公司第三研究所,北京 100015)

1 引 言

红外成像技术将景物的红外辐射分布转化为人眼可见的图像。利用红外成像设备进行目标的观察、检测和跟踪,具有隐蔽性好、抗干扰、鉴别伪装、获取信息丰富等优点。因此,红外成像系统无论在战略预警、目标侦查、制导等军用领域,还是在导航、遥感、气象等民用领域都有广泛的应用前景[1]。虽然原始红外数据具有动态范围高的特点,但在进行显示和进一步处理之前,需要将动态范围限制为256级灰阶,即转化为8位灰度图像,以适应人类的视觉系统和模拟或数字显示接口的要求。

针对这一问题,国内外的众多研究者们提出了多种增强算法[2]。直方图均衡化是图像增强中较为常用的算法之一,但对于红外图像对比度增强效果并不理想。此外,平台直方图均衡化[3]、直方图规定化、Retinex算法[4]、去雾增强算法[5]、可见光与红外图像融合的算法[6]等方法也被用于红外图像的对比度增强处理,但这些方法及其改进方法虽然效果良好,但大多计算复杂度较高,难以用于运算能力有限的红外成像设备。

红外图像对比度低的原因往往是灰度集中在动态范围内较窄的区间,分段线性变换通过把较窄的目标分布区间展宽,以达到增强图像对比度的目的。这类方法计算过程简单,易于实现,但对于不同图像需要调整增强区间。罗辛一[7]提出了自适应分段线性变换算法,该算法能够根据图像灰度的分布自适应地确定增强区间。但阈值百分比的取值仍会对增强效果有影响,许多情况下需要手工调整其取值才能获得较好的结果。因此,该算法仍不能实现真正意义上的自适应。本文提出一种改进的自适应分段线性变换算法,能够根据红外图像的特点自动调整参数阈值,不需人为干预,并且计算复杂度低,能够适用于红外成像设备的实时处理。

2 算法原理

本文提出的红外图像对比度增强算法如图1中所示。算法的输入为转化后的8位灰度图像,输出为增强后的灰度图像。首先,需要计算输入图像的灰度直方图,这是进行对比度增强的主要依据和算法后续处理步骤的基础。

图1 本文方法流程图

给定输入图像f(i,j),其像素灰度为a0,a1,…,a255,即共256个灰度级,则其灰度直方图Hf(ai)可表示为:

Hf(ai)=灰度级为ai的像素数(i=0,1,2,…,255)

2.1 边界的确定

自适应分段线性变换算法首先要在灰度直方图上确定进行线性变换的边界。在确定变换边界时,首先查找灰度直方图的最大灰度级,这也是该算法具备一定自适应性的根本原因。由于通常情况下,最大灰度级处于灰度集中区域的中心附近,因此查找最大灰度级可以作为确定边界的先决条件。设{a0,n0}为灰度直方图Hf上的最大灰度级,其中a0为其灰度级值,n0为对应的像素数。

当最大灰度级确定后,需要进一步确定左右边界。设定参数θ,且θ∈(0,1),令nT=n0·θ,则在[0,a0]内从左至右搜索aL,使得[0,aL]内所有ni

由上述过程不难看出,参数θ表征的是边界灰度级与最大灰度级之间的像素个数之比。通过θ的改变,可以实现边界的确定,从而实现灰度线性变换区间的改变。对于不同的红外图像,同一θ值得到的增强效果往往是不同的。因此,为了实现完全的自适应,需要一种自适应确定θ取值的方法。

2.2 灰度直方图簇个数的比较

经过对比度增强之后,图像的灰度直方图分布曲线应仅在横坐标轴上呈现出被拉伸的变化,而整体形状不应发生改变。这种规律体现在曲线的波峰和波谷变化上即为簇的个数不应发生改变。

灰度直方图在形式上为一离散函数,不便于处理,因此本方法采用三次样条插值的方法对Hf进行曲线拟合。得到Hf的曲线拟合结果后,需要查找曲线上的局部最大值。局部最大值的个数即被认作灰度直方图簇的个数。图2给出了簇个数相同和不同的示例,其中(a)和(b)为原始红外图像及对应的灰度直方图,(c)和(d)为某一θ值的增强结果,(e)和(f)为另一θ值的增强结果。由图2中可以看出,(b)中灰度直方图的簇的个数为3,(d)中灰度直方图的簇的个数为2,(f)中灰度直方图的簇的个数为3。而对比(a)、(c)和(e)可以发现,与原图灰度直方图簇个数不同的增强结果丢失某些细节(如图像左上角),而与原图灰度直方图簇个数相同的增强结果却能够很好地保留这些细节。

图2 簇个数对比示例

2.3 参数选择过程

参数θ的取值会影响灰度线性变换的边界,从而会影响最终的增强结果。为了实现根据不同输入图像自适应选择参数θ的取值,本文设定一个候选数值集合{0.1,0.08,0.05,0.03,0.01,0.005,0.003,0.001}以及一个步长候选集合{20,18,15,10,5,3,2},且两个集合中的元素一一对应。由于参数θ的含义是最大灰度级与截止灰度级的像素数之比,过大的θ会使图像细节损失严重,过小的θ则对于对比度增强没有意义。又因为各灰度级上像素数为离散数值,所以这一比值无需过于精确,某一局部区间范围之内的取值往往会得到相同的结果。

在完成对灰度直方图的三次样条曲线拟合后,需要对所得到的平滑曲线进行固定步长的离散采样,才方便获得曲线的局部最大值。对于Hf,本方法采用值为2的固定步长进行局部最大值的搜索与确定。而在判断簇个数是否相同时,本方法在上述步长候选集中依次选取步长的取值,之后再次计算Hf局部最大值的个数,并与之前得到的局部最大值个数进行比较。如果二者相等或步长取值为候选集中最后一个,则θ的取值就为候选集中当前步长所对应的取值。这样的参数选择过程不但能够快速找到θ适合的取值,而且能够避免重复线性变换的计算过程,使算法适用于计算资源有限的红外成像设备。

2.4 灰度线性变换

当确定了左右边界之后,可对原始图像的全部像素进行灰度线性变换,增强后的图像g(x,y)可通过下式计算:

由上式可知,对于灰度落在边界范围[aL,aR]之内的像素点,采用一种线性公式进行灰度变换。线性分布能够使得集中于边界范围之内的灰度较为均衡地拉伸到灰度直方图的更大范围之内,从而提高红外图像的对比度。而对于其他像素点,则直接将其灰度置为0或255。

3 实验结果及分析

为了验证本文提出方法的可行性以及有效性,本文在自行采集的对比度较差的红外原始图像上进行实验。评价一幅红外图像的对比度往往具有很强的主观性。有研究者采用了多种客观指标来衡量红外图像的对比度,但往往会出现某一客观指标很好,而人眼观测效果并不理想的情况。鉴于红外成像设备的成像结果很大一部分的目的是供人直接观看的,因此本文仅采用主观感受和分析的方法来评价各对比度增强算法的结果。

本文实验所用的测试数据为使用红外成像仪所采集到的户外原始数据,并且经过预处理转换为8位灰度图像,图像像素大小为640×512。所有实验均在Windows 10系统,32G内存,Intel i7 八核4.2 GHz处理器的PC机上使用Matlab R2016a实现。

3.1 不同θ取值对结果的影响

为了观测不同θ取值对增强结果的影响,在相同图像上分别采用本文给出的θ候选集中所有取值进行增强测试。图3给出了其中一张图像的增强结果。由图中结果可以看出,当θ取值较大时,如图3(b)、(c)、(d)、(e)所示,图像中某些细节丢失严重,并且出现了“颗粒化”现象。图3(f)和(g)中的结果虽然前景景物细节保留地较好,但背景中左侧边缘处的汽车的细节保留不全。相比之下,图3(h)中的结果是最好的,不但图像对比度有了明显提升,而且前景与背景的细节保留地较好。采用本文提出的方法,对于图3中的图像,得到的增强结果为图3(h)中所示。

图3 同一图像不同θ取值的结果对比图

在实验过程中,不同原始图像得到的θ取值不尽相同,但与其他θ取值的结果相比,本方法的增强结果均为相对最好的,受篇幅所限,此处不再赘述。

3.2 不同增强算法结果对比

为了比较本文提出方法与其他红外对比度增强算法,在测试数据上分别采用5种算法进行测试。图4给出了同一张图像的不同增强算法的处理结果。其中,图4(c)为自适应分段线性变换的处理结果,该算法将θ的取值固定为0.1,对比图4(f)中本文方法的结果可以看出,本文方法的结果更好。图4(e)中Retinex算法的处理结果前景部分较好,但背景部分出现了较为严重的“颗粒化”现象。

图4 不同算法的结果对比图

此外,算法的计算时间也是需要考虑的因素之一。计算时间过长的算法很难保证红外成像设备的实时性,对实时观测的影响较大。表1中给出了几种算法在本文实验所用15张测试图像上的平均计算时间。由表中可以看出,本文提出的方法的计算时间相对较少。综合考虑算法的效果和计算时间,本文提出的方法具有一定的优势。特别的,对比自适应分段线性变换的计算时间,本文提出的方法增加了约10 %的计算时间,但取得的效果却有明显的提高。

表1 不同算法的平均计算时间

4 结 论

针对红外图像对比度不佳的问题,本文提出了一种改进的自适应分段线性变换算法。该算法能够根据红外原始图像的不同,自动选取适合的参数取值,并完成图像的对比度增强,全部过程无需人为设定或修改任何参数,能够实现真正的自适应对比度增强过程。通过在实际数据上的实验,证明了本文方法的可行性以及有效性。通过观测实验过程中本文方法参数的自动选取结果,并对比不同取值结果,证明了本文提出的方法能够针对不同图像自适应地选取适合的参数。此外,通过在增强效果和计算时间方面与其他算法的对比,证明了本文方法的优势。本文所提出的方法有望应用与红外成像设备的实时处理,并取得较好地结果。

猜你喜欢

灰度级直方图个数
符合差分隐私的流数据统计直方图发布
怎样数出小正方体的个数
人眼可感知最多相邻像素灰度差的全局图像优化方法*
等腰三角形个数探索
怎样数出小木块的个数
用直方图控制画面影调
怎样数出小正方体的个数
基于灰度直方图的单一图像噪声类型识别研究
基于自适应多子直方图均衡的图像增强算法
中考频数分布直方图题型展示