![将16bit转换为8bit图像数据的改进直方图均衡化方法与流程](https://img.xjishu.com/img/zl/2023/1/6/hc67os09j.jpg)
1.本发明涉及一种将16bit红外数据转换为8bit图像数据的改进直方图均衡化方法。
背景技术:2.红外探测器由于其成像距离远、成像视角广、穿透性强等特点,广泛应用于民用领域和军事领域。由于红外探测器的性能强大,可以分辨的灰度等级极高,同时为了保证红外数据的细节丰富,其输出的原始数据往往为16bit,但是常规的显示器能够再现的色彩、灰度等级是有限的,并不能匹配16bit的红外数据,因此,为了适应客观的硬件条件,将16bit的红外数据以可视化的方式进行输出,需要将其转换为8bit图像数据。
3.16bit红外数据具有2
16
=66536个灰度等级,而8bit图像数据只具有28=256个灰度等级,普通的转换方法为像素值*256/66536,但是这种转换存在一个问题,即对于像素值偏低的16bit红外数据,比如1,10,100等像素值,转换后的8bit图像数据的像素值都在(0,1)之间,由于向下取整的规则,转换后的像素值都变成了0,这极其不利于反应16bit红外数据的原始分布。
4.而传统的直方图均衡化方法可以让一幅整体偏亮或者整体偏暗的图像的灰度分布更加均匀,但是并不适用于跨位数转换,即只能适用于8it图像优化为新的8bit图像的过程。此外,如果原始灰度为0,均衡化之后还是0,也不能满足16bit红外数据转换为8bit图像数据的需求。
5.针对这一问题,本专利提出一种改进的直方图均衡化方法,不仅可以满足16bit红外数据转换为8bit图像数据的需求,使得转换后图像相邻灰度级之间的差异相等,避免占像素点较多的背景区域过增强和占像素点较少的细节区域被合并到相邻灰度级中,还可以实现转换后图像数据的局部对比度增强。
技术实现要素:6.本发明提出一种改进的直方图均衡化方法,实现将16bit红外数据转换为8bit图像数据的功能。具有转换后图像相邻灰度级之间的差异相等、避免占像素点较多的背景区域过增强和占像素点较少的细节区域被合并到相邻灰度级中、转换后图像数据的局部对比度增强的特点。本发明的技术方案如下:
7.一种将16bit转换为8bit图像数据的改进直方图均衡化方法,包括下列步骤:
8.1)读取待处理的红外信息数据流文件;
9.2)根据待处理的红外信息数据流文件大小与单帧红外图像输出尺寸,确定连续数据流程总帧数n;
10.3)通过总帧数n与当前待显示帧数n
′
,定位红外信息数据流位置,以此为起点截取512*512个16bit像素红外数据i;
11.4)针对当前帧的红外数据i进行改进直方图均衡化,将其从16bit数据量化为8bit
数据,处理方如下:
12.①
遍历i的512*512个像素,统计灰度信息,确定灰度最小值;
13.②
重新遍历i,使用每一个像素的灰度值减去min,得到新数据i
′
;
14.③
遍历i
′
,统计i
′
的直方图信息z;
15.④
对直方图进行邻域合并,从i=0开始依次遍历z中的每个像素点,如果z(i)<80,则将z(i)累加到z(i+1),更新z(i),得到z
′
(i)=0;若z(i)≥80,则z
′
(i)=z(i);其中,i为像素位置,0<i<2
16
;
16.⑤
对z
′
进行映射处理,得到新z
′
,映射规则如下:
17.如果z
′
(i)<80,则令z
′
(i)=0;
18.如果80<z
′
(i)<200,则令z
′
(i)=1;
19.如果200<z
′
(i)<500,则令z
′
(i)=2;
20.如果500<z
′
(i)<1200,则令z
′
(i)=4;
21.如果z
′
(i)≥1200,则令z
′
(i)=6;
22.⑥
进行直方图均衡变换,得到均衡矩阵t,变换如下:
[0023][0024]
⑦
对i进行映射,得到i
″
,映射规则如下:
[0025]i″
(j)=t(i(j)-min),0<j<2
16
;
[0026]
5)对i
″
进行局部对比度增强,将当前像素点的灰度值与以当前点为中心领域内灰度均值进行比较,如果当前像素点灰度值大于领域内灰度均值,则对该点进行增强,否则对其减弱,得到增强后8bit图像k,处理方法如下:
[0027]
①
确定增强参数s=255/t(2
16-1),邻域参数n=2,和放大倍数s=3;
[0028]
②
遍历i
″
,计算像素i
″
(i)在(2*n+1)*(2*n+1)邻域内的灰度均值
[0029]
③
遍历i
″
,对i
″
进行对比度增强处理,处理方法如下:
[0030][0031]
其中,i为像素位置,其取值范围:0<i<512*512;
[0032]
④
遍历k,对k进行亮度增强处理,处理方法如下:
[0033]
k(i)=k(i)*s+20,其中,i为像素位置,其取值范围如下:0<i<512*512;
[0034]
⑤
遍历k,进行约束处理,得到最终的8bit图像,处理方法如下:
[0035][0036]
其中,i为像素位置,其取值范围如下:0<i<512*512。
附图说明
[0037]
图1传统直方图均衡化效果图。
[0038]
图2传统直方图均衡化效果图。
[0039]
图3本发明提出的改进直方图均衡化效果图。
[0040]
图4本发明提出的改进直方图均衡化效果图。
具体实施方式
[0041]
针对传统直方图均衡化变换不适用于16bit红外数据转换为8bit图像数据的问题,本发明提出一种针对16bit红外数据转换为8bit图像数据的改进直方图均衡化方法,该方法可以使转换后相邻灰度级之间的差异相等,避免占像素点较多的背景区域过增强和占像素点较少的细节区域被合并到相邻灰度级中,极大地改善了转换效果,包括下列步骤:
[0042]
6)读取待处理的红外信息数据流文件;
[0043]
7)根据待处理的红外信息数据流文件大小与单帧红外图像输出尺寸,确定连续数据流程总帧数n;
[0044]
8)通过总帧数n与当前待显示帧数n
′
,定位红外信息数据流位置,以此为起点截取512*512个16bit像素数据i;
[0045]
9)针对当前帧红外数据i进行改进直方图均衡化,将其从16bit数据量化为8bit数据,处理方如下:
[0046]
⑧
遍历i的512*512个像素,统计灰度信息,确定灰度最小值min。
[0047]
⑨
重新遍历i,使用每一个像素的灰度值减去min,得到新数据i
′
;
[0048]
⑩
遍历i
′
,统计i
′
的直方图信息z;
[0049]
11对直方图进行邻域合并,从i=0开始依次遍历z中的每个像素点,如果z(i)<80,则将z(i)累加到z(i+1),更新z(i),得到z
′
(i)=0;若z(i)≥80,则z
′
(i)=z(i);其中,i为像素位置,0<i<2
16
;
[0050]
12对z
′
进行映射处理,得到新z
′
,映射规则如下:
[0051][0052]
13进行直方图均衡变换,得到均衡矩阵t,变换如下:
[0053][0054]
14对i进行映射,得到i
″
,映射规则如下:
[0055][0056]
10)对i
″
进行局部对比度增强,将当前像素点的灰度值与以当前点为中心领域内灰度均值进行比较,如果当前像素点灰度值大于领域内灰度均值,则对该点进行增强,否则对其减弱,得到增强后8bit图像k,处理方法如下:
[0057]
⑥
确定增强参数s=255/t(2
16-1),邻域参数n=2,和放大倍数s=3。
[0058]
⑦
遍历i
″
,计算像素i
″
(i)在(2*n+1)*(2*n+1)邻域内的灰度均值
[0059]
⑧
遍历i
″
,对i
″
进行对比度增强处理,处理方法如下:
[0060][0061]
⑨
遍历k,对k进行亮度增强处理,处理方法如下:
[0062][0063]
⑩
遍历k,进行约束处理,得到最终的8bit图像,处理方法如下:
[0064]