一种红外图像细节增强的动态范围压缩方法
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种红外图像细节增强的动态范围压缩方法。
背景技术
在红外热成像应用场景中,低温与高温物体同时存在时,其热辐射的最低温到最高温的总体动态范围比较大,但在物体局部范围内的温度分布相对缓和,温差一般比较小。为了不丢失温度信号的微小变化又兼顾大动态范围,高性能的红外成像系统通常对红外探测器的输出信号采用14位或更高位A/D进行采样处理,最大程度保留场景中的细节信息。由于显示设备一般采用8位数据进行显示,因此必须对采集的14位或更高位红外图像数据进行动态范围压缩,压缩为8位灰度数据进行显示。在压缩过程中,如若压缩方法不当,将大量丢失高精度A/D采集的红外图像数据中隐含的细节信息。
对于温差小的普通场景,红外图像灰度将集中在较小范围,采用线性映射方法即可将动态范围压缩到0~255之间。对于同时存在高温与低温物体且两者之间存在较大温差的场景,其红外图像像素的灰度分布特征表现为:(1)温度分布的总体区域范围内温差较大,像素灰度值变化范围与8位的256个灰度级范围相比要大很多;(2)温度分布的局部区域范围内温差相对较小,像素局部灰度值变化范围较小;(3)温度分布的高低温过度区域会存在温度断层,即部分灰度值在直方图统计的像素数量为零。若对大动态范围场景红外图像数据仍然采用线性映射时,无法有效利用256个灰度级,使得显示图像表现为整体偏暗、对比度低、信噪比小、细节不明显及细节丢失等特点,严重影响图像视觉效果。
此外,直方图均衡映射方法将图像中概率密度大的像素拉开灰度层次,而将概率密度小或为零的像素压缩灰度层次,从而让各个灰度级得到有效利用,增强图像对比度。但是直方图均衡对概率密度大的像素组成的图像与噪声会同时增强,而概率密度小的目标和细节则会被抑制甚至丢失。
发明内容
本发明为了克服现有技术的不足,提供一种红外图像细节增强的动态范围压缩方法,该方法有效增强了红外图像的细节,并为后续图像质量的优化处理提供有效保障。
为了实现上述目的,本发明采用以下技术方案:一种红外图像细节增强的动态范围压缩方法,包括下述步骤:
(1)统计输入红外图像AD值的直方图;
(2)查找直方图中像素数目大于0的最大AD值Xmax与最小AD值Xmin;
(4)计算被映射最小AD值Xs0;
(4)计算被映射最大AD值Xs5;
(5)查找直方图中[Xs0,Xs5]区间的像素数目最多的AD值Xp1;
(6)从Xp1向Xs0搜索主区1下边界AD值Xs1;
(7)从Xp1向Xs5搜索主区1上边界AD值Xs2;
(8)查找直方图中[Xs2,Xs5]区间的像素数目最多AD值Xp2;
(9)从Xp2向Xs2搜索主区2下边界AD值Xs3;
(10)从Xp2向Xs5搜索主区2上边界AD值Xs4;
(11)计算主区AD数目Xmain1、Xmain2、过渡区AD数目Xtrans1、Xtrans2、Xtrans3;该步骤中,Xmain1、Xmain2、Xtrans1、Xtrans2、Xtrans3按如下方式进行计算:
(a)主区1的AD数目:Xmain1=Xs2-Xs1,
(b)主区2的AD数目:Xmain2=Xs4-Xs3,
(c)过渡区1的AD数目:Xtrans1=Xs1-Xs0,
(d)过渡区2的AD数目:Xtrans2=Xs3-Xs2,
(e)过渡区3的AD数目:Xtrans3=Xs5-Xs4;
(12)计算过渡区映射灰度数目Ytrans1、Ytrans2、Ytrans3;
(13)计算主区映射灰度数Ymain1、Ymain2;
(14)计算AD值Xs0、Xs1、Xs2、Xs3、Xs4、Xs5各自对应的映射灰度Ys0、Ys1、Ys2、Ys3、Ys4、Ys5;
(15)将输入红外图像的AD值映射至[Ys0,Ys5]范围灰度值,并在显示设备显示。
本发明将红外图像直方图中的AD值分布区间进行分区处理,提取出两个主要区间与三个过渡区间,对包含AD值像素数目多、图像细节丰富的主要区间增加映射灰度数目,对包含AD值像素数目少的过渡区间减少映射灰度数目,从而提高主要区间的显示对比度,保证主要且丰富的图像细节不会在灰度动态范围压缩过程中丢失。
本发明方法对比现有红外图像动态范围压缩技术如线性压缩、直方图均衡压缩等,可以有效增强主要温度区域的细节信息,提高显示灰度利用率以及图像整体清晰度。
进一步地,所述步骤(2)中,Xmin、Xmax按如下方式进行计算:从0开始向上查找直方图中像素数目大于0的最小AD值记为Xmin,以14位为例,从16383开始向下查找直方图中像素数目大于0的最大AD值记为Xmax。
进一步地,所述步骤(3),被映射最小AD值Xs0按如下方式进行计算:从直方图Xmin开始依次向上累加各级灰度的像素数目,当累加值超过N时的AD值记为Xs0;其中,N取值为height/2,height为图像一列像素数目。
进一步地,所述步骤(4),被映射最大AD值Xs5按如下方式进行计算:从直方图Xmax开始依次向下累加各级灰度的像素数目,当累加值超过N时的AD值记为Xs5;其中,N取值为height/2,height为图像一列像素数。
进一步地,所述步骤(5),Xp1按如下方式进行计算:在直方图[Xs0,Xs5]区间搜索像素数目最大值H(Xp1),记对应AD值为Xp1。
进一步地,所述步骤(1),统计输入红外图像AD值的k级灰度出现的像素数目记为H(Xk);
所述步骤(6),Xs1按如下方式进行计算:从直方图Xp1开始向Xs0搜索,当H(Xk)<1或者Xk=Xs0时,记对应AD值为Xs1;
所述步骤(7),Xs2按如下方式进行计算:从直方图Xp1开始向Xs5搜索,当H(Xk)<1或者Xk=Xs5时,记对应AD值为Xs2。
所述步骤(8),Xp2按如下方式进行计算:在直方图(Xs2,Xs5]区间搜索像素最大值H(Xp2),记对应AD值为Xp2。
所述步骤(9),按如下方式进行计算:从直方图Xp2开始向Xs2搜索,当H(Xk)<1或者Xk=Xs2时,记AD值为Xs3;
所述步骤(10),Xs4按如下方式进行计算:从直方图Xp2开始向Xs5搜索,当H(Xk)<1或者Xk=Xs5时,记AD值为Xs4。
进一步地,所述步骤(12),过渡区最大映射灰度记为Ytrans_max,取值为10,Ytrans1、Ytrans1、Ytrans1按如下方式进行计算:
(a)当Xtrans1>Ytrans_max,Ytrans1=Ytrans_max,否则Ytrans1=Xtrans1,
(b)当Xtrans2>Ytrans_max,Ytrans2=Ytrans_max,否则Ytrans2=Xtrans2,
(c)当Xtrans3>Ytrans_max,Ytrans3=Ytrans_max,否则Ytrans3=Xtrans3。
进一步地,所述步骤(13),记映射灰度最大值为Ymax,Ymain1、Ymain2按如下方式进行计算:
(a)Xmain=Xmain1+Xmain2;
(b)Ymain=Ymax+1-Ytrans1-Ytrans2-Ytrans3;
(c)
(d)
进一步地,所述步骤(14),Ys0、Ys1、Ys2、Ys3、Ys4、Ys5按如下方式进行计算:
(a)Ys0=0,
(b)Ys1=Ytrans1,
(c)Ys2=Ytrans1+Ymain1-1,
(d)Ys3=Ytrans1+Ymain1+Ytrans2-1
(e)Ys4=Ytrans1+Ymain1+Ytrans2+Ymain2-1
(f)Ys5=Ytrans1+Ymain1+Ytrans2+Ymain2+Ytrans3-1=Ymax;
进一步地,所述步骤(15),将输入红外图像的AD值分段线性映射至[Ys0,Ys5]范围灰度值,按如下公式进行映射:
综上所述,本发明合理划分AD值区域范围,增加主要区间灰度数,减少过渡区间灰度数,可以增强细节并提高图像对比度和清晰度。
附图说明
图1为本发明的红外图像AD直方图分区示意图;
图2为本发明的红外图像动态范围压缩函数曲线。
具体实施方式
为了使本技术领域的人员更好的理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。
如图1-2所示,一种红外图像细节增强的动态范围压缩方法,包括下述步骤:
(1)统计输入红外图像AD值的直方图;统计输入红外图像AD值各灰度级Xk出现的次数,记为H(Xk)。其中k为索引号,k=0,1,2,...,L-1,Xk表示待处理图像第k级灰度级。L为图像中灰度级总数,当数据宽度为14位时,L=214=16384。
(2)查找直方图中像素数目大于0的最大AD值Xmax与最小AD值Xmin;其中,Xmin、Xmax按如下方式进行计算:从0开始向上查找直方图中像素数目大于0的最小AD值记为Xmin,以14位为例,从16383开始向下查找直方图中像素数目大于0的最大AD值记为Xmax。
(3)计算被映射最小AD值Xs0;被映射最小AD值Xs0按如下方式进行计算:从直方图Xmin开始依次向上累加各级灰度的像素数目,该像素数目即为AD值的像素数,当累加值超过N时的AD值记为Xs0;其中,N取值为height/2,height为图像一列像素数目。
(4)计算被映射最大AD值Xs5;被映射最大AD值Xs5按如下方式进行计算:从直方图Xmax开始依次向下累加各级灰度的像素数目,各级灰度的像素数目即为AD值的像素数,当累加值超过N时的AD值记为Xs5;其中,N取值为height/2,height为图像一列像素数。
(5)查找直方图中[Xs0,Xs5]区间的像素数目最多的AD值Xp1;Xp1按如下方式进行计算:在直方图[Xs0,Xs5]区间搜索像素数目最大值H(Xp1),记对应AD值为Xp1。
(6)从Xp1向Xs0搜索主区1下边界AD值Xs1;该步骤从直方图Xp1开始向Xs0搜索,当H(Xk)<1或者Xk=Xs0时,记对应AD值为Xs1。
(7)从Xp1向Xs5搜索主区1上边界AD值Xs2;从直方图Xp1开始向Xs5搜索,当H(Xk)<1或者Xk=Xs5时,记对应AD值为Xs2。
(8)在直方图中查找[Xs2,Xs5]区间的像素数目最多AD值Xp2;在直方图(Xs2,Xs5]区间搜索像素最大值H(Xp2),记对应AD值为Xp2。
(9)从Xp2向Xs2搜索主区2下边界AD值Xs3;Xs3按如下方式进行计算:从直方图Xp2开始向Xs2搜索,当H(Xk)<1或者Xk=Xs2时,记AD值为Xs3;
(10)从Xp2向Xs5搜索主区2上边界AD值Xs4;Xs4按如下方式进行计算:从直方图Xp2开始向Xs5搜索,当H(Xk)<1或者Xk=Xs5时,记AD值为Xs4。
(11)计算主区AD数目Xmain1、Xmain2、过渡区AD数目Xtrans1、Xtrans2、Xtrans3;该步骤中,Xmain1、Xmain2、Xtrans1、Xtrans2、Xtrans3按如下方式进行计算:
(a)主区1的AD数目:Xmain1=Xs2-Xs1;
(b)主区2的AD数目:Xmain2=Xs4-Xs3;
(c)过渡区1的AD数目:Xtrans1=Xs1-Xs0;
(d)过渡区2的AD数目:Xtrans2=Xs3-Xs2;
(e)过渡区3的AD数目:Xtrans3=Xs5-Xs4。
(12)计算过渡区映射灰度数目Ytrans1、Ytrans2、Ytrans3;过渡区最大映射灰度数记为Ytrans_max,取值为10,计算过渡区的映射灰度数Ytrans1、Ytrans2、Ytrans3:
(a)当Xtrans1>Ytrans_max,Ytrans1=Ytrans_max,否则Ytrans1=Xtrans1;
(b)当Xtrans2>Ytrans_max,Ytrans2=Ytrans_max,否则Ytrans2=Xtrans2;
(c)当Xtrans3>Ytrans_max,Ytrans3=Ytrans_max,否则Ytrans3=Xtrans3。
(13)计算主区1映射灰度数Ymain1、Ymain2;记映射灰度最大值为Ymax,计算主区1的映射灰度数Ymain1、Ymain2方法如下:
(a)Xmain=Xmain1+Xmain2;
(b)Ymain=Ymax+1-Ytrans1-Ytrans2-Ytrans3;
(c)
(d)
(14)计算主区1映射灰度数Ymain1、Ymain2;计算AD值Xs0、Xs1、Xs2、Xs3、Xs4、Xs5各自对应的映射灰度Ys0、Ys1、Ys2、Ys3、Ys4、Ys5;计算Ys0、Ys1、Ys2、Ys3、Ys4、Ys5,如下所示:
(a)Ys0=0,
(b)Ys1=Ytrans1,
(c)Ys2=Ytrans1+Ymain1-1,
(d)Ys3=Ytrans1+Ymain1+Ytrans2-1,
(e)Ys4=Ytrans1+Ymain1+Ytrans2+Ymain2-1,
(f)Ys5=Ytrans1+Ymain1+Ytrans2+Ymain2+Ytrans3-1=Ymax。
(15)将输入红外图像的AD值映射至[Ys0,Ys5]范围灰度值,并在显示设备显示;即将输入红外图像的AD值分段线性映射至[Ys0,Ys5]范围灰度值,按如下公式进行映射:
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。