基于FPGA的红外焦平面阵列条带状非均匀性校正系统和方法转让专利

申请号 : CN201510181531.X

文献号 : CN104776919B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王岳环张磊宋琼张天序

申请人 : 华中科技大学

摘要 :

本发明公开了一种基于FPGA的红外焦平面阵列条带状非均匀性校正系统和方法,属于红外成像技术领域。本发明以中值红外均衡算法(MIRE)为核心,针对算法以及FPGA的特性进行了优化,包括图像缓存模块、参数计算模块、非均匀性校正模块与数据输出模块。参数计算模块根据上位机指令得到加权系数,原始图像经过缓存后,按列方向顺序输入非均匀性校正模块得到每一列图像的直方图、累计直方图与逆直方图,然后通过对累计直方图和逆直方图进行索引将每一列原始图像分别规范化到相邻列的直方图上,最后将各个规范化后的像素值进行加权得到最终的校正结果并输出。本发明可有效校正红外焦平面阵列条带状非均匀性,且由于全部使用FPGA实现,速度快,可以实时完成校正。

权利要求 :

1.一种基于FPGA的红外焦平面阵列条带状非均匀性校正系统,其特征在于,包括图像缓存模块、参数计算模块、非均匀性校正模块以及数据输出模块,其中:所述图像缓存模块,用于缓存外部输入的红外图像,当缓存完一帧图像之后将所述图像按列向所述非均匀性校正模块输出数据;

所述参数计算模块,用于接收并解析输入的外部指令得到校正参数,并根据所述校正参数换算得到加权系数后传递给所述非均匀性校正模块;

所述非均匀性校正模块,包括:

输入控制与数据分发模块,用于控制所述图像缓存模块每次输出一列图像到直方图统计模块,同时计数已经输出的列数,当计算某一列图像规范化像素所需要的全部数据都已获得后,控制所述图像缓存模块输出二次缓存后的该列图像数据到累计直方图处理模块;

所述直方图统计模块,用于对所述输入控制与数据分发模块输出的图像列数据进行直方图统计,同时将上一列图像的直方图信息传递给所述累计直方图处理模块;

所述累计直方图处理模块,用于根据每一列图像的直方图信息计算该列图像的累计直方图并进行缓存,同时产生计算累计直方图的逆直方图所需使用的标记值并传递给标记值转发模块,并且根据所述输入控制与数据分发模块传递的图像数据索引对应列的索引值传递给索引值转发模块;

所述标记值转发模块,用于将所述标记值进行缓存并转发给逆直方图计算模块组;

所述索引值转发模块,用于将所述索引值转发给所述逆直方图计算模块组;

所述逆直方图计算模块组,包含多个逆直方图计算模块,用于通过所述标记值完成逆直方图的计算并更新模块内部DPRAM,然后根据所述索引值对所述模块内部DPRAM进行索引,并将对应数据转发给规范化计算模块;

并行控制模块,用于控制所述逆直方图计算模块组中的每个逆直方图计算模块完成所述逆直方图的计算、更新和对应数据转发;以及所述规范化计算模块,用于通过所述参数计算模块更新加权系数,并将所述逆直方图计算模块组的输出结果与对应加权系数相乘,所乘结果相加后得到图像校正结果,并将所述图像校正结果传递给所述数据输出模块;以及所述数据输出模块,用于缓存并输出校正后的图像。

2.如权利要求1所述的基于FPGA的红外焦平面阵列条带状非均匀性校正系统,其特征在于,所述图像缓存模块利用外部图像缓存DPRAM缓存所述外部输入的红外图像,并将所述外部DPRAM的存储区域划分为两个部分,采用乒乓方式进行操作。

3.如权利要求1或2所述的基于FPGA的红外焦平面阵列条带状非均匀性校正系统,其特征在于,所述加权系数事先计算并存入片上ROM中,所述参数计算模块根据所述校正参数换算得到对应地址,并根据所述对应地址从所述片上ROM中得到对应的加权系数传递给所述规范化计算模块。

4.如权利要求1所述的基于FPGA的红外焦平面阵列条带状非均匀性校正系统,其特征在于,所述逆直方图计算模块组内每一逆直方图计算模块均有刷新与输出两种状态,由所述并行控制模块控制进行切换,处于所述刷新状态时,先读出一个标记值将其中的灰度值填入存储器中其高度值对应地址中,再将两个地址之间空白部分用所述灰度值进行填充;

处于所述输出状态时,根据所述索引值对所述模块内部DPRAM进行索引,将对应数据转发给所述规范化计算模块。

5.如权利要求4所述的基于FPGA的红外焦平面阵列条带状非均匀性校正系统,其特征在于,所述并行控制模块向所述逆直方图计算模块组发出刷新起始信号,控制所述逆直方图计算模块组中的各个逆直方图计算模块在需要刷新时切换到所述刷新状态,并在刷新结束时切换到所述输出状态。

6.一种基于FPGA的红外焦平面阵列条带状非均匀性校正方法,其特征在于,包括:步骤1计算加权系数 其中, σ表示标准差;k

表示加权系数的序号,取值为1,2,…,2N+1,2N+1为计算窗口大小;

步骤2缓存原始输入的红外图像;

步骤3对所述原始输入的红外图像边缘进行镜像拓展,调整输出列与输出图像地址的映射关系,设所述原始输入的红外图像缓存空间起始地址为0,图像列数为L,计算窗口大小为2x+1,则输出第n列图像时的首地址m为:每输出当前列的下一个像素时,地址偏移一列像素的地址空间;

步骤4对当前列图像Cj进行直方图统计,得到直方图Ij;

步骤5计算当前图像列Cj的累计直方图Hj;

步骤6计算当前图像列Cj累计直方图的逆直方图

步骤7当某一列图像校正计算窗口中所有列的逆直方图都已计算完毕后,将二次缓存的该列图像像素Xi,j输入,在缓存的累计直方图对应列区域中以此像素灰度值为地址查找累计直方图得到索引值Hj(Xi,j);

步骤8以所述索引值Hj(Xi,j)作为地址索引得到目标列图像像素Xi,j分别规范化到对应列的直方图后的像素值步骤9将每一列图像规范化到相邻列直方图后的像素值 乘以对应的加权系数ψσ(k),所乘结果相加后得到图像校正结果步骤10重复所述步骤4至9,直到完成所述原始输入的红外图像全部列的处理;

步骤11将校正后的图像数据缓存并输出。

7.如权利要求6所述的方法,其特征在于,在所述步骤1中,依照成像器的幅面与特性确定最大计算窗口大小2P+1与最小计算窗口大小2Q+1,对于大小为2N+1的每一个窗口,其中,Q≤N≤P,定义不均匀性系数 取Λ分别为0.5、0.4、0.3、0.2与

0.1时的ψσ(k)作为加权系数,其中k∈[1,2N+1]。

8.如权利要求6所述的方法,其特征在于,在所述步骤5中,需要在计算当前图像列Cj的累计直方图的同时生成用于计算逆直方图的信息,包括以下子步骤:(5-1)读取直方图对应灰度值的高度值,初始状态时灰度值为0;

(5-2)对于每一个灰度值得到的高度值,将该高度值与累计高度值相加得到新的累计高度值,并将新的累计高度值写入当前灰度值对应的地址更新累计直方图;

(5-3)如果该高度值为0,则执行步骤(5-5),否则将新的累计高度值与当前灰度值作为标记值;

(5-4)如果当前高度值为1,则标记值的填充标志位填0,否则填1;

(5-5)如果达到最大灰度值,则结束,否则灰度值加1,然后执行所述步骤到(5-1)。

9.如权利要求8所述的方法,其特征在于,所述步骤6包括以下子步骤:(6-1)当有新的标记值时,读出所述新的标记值,并将灰度值部分数据内容填入累计高度值对应的地址中;

(6-2)如果填充标志位为0,则执行步骤(6-3),否则将当前累计高度值与前一次收到的累计高度值之间对应的地址区域全部填入当前灰度值;

(6-3)如果已到达最大高度值则结束,否则继续执行步骤(6-1)。

10.如权利要求6-9中任一项所述的方法,其特征在于,在所述步骤9中,在窗口大小为2×N+1的情况下,一共有2×N+4个逆直方图统计数据输出,其中同一时刻只有2×N+1个输入为有效输入,其余3个无效输入对应的加权系数为零,采用加权系数寄存器循环赋值的方式实现计算窗口的滑动。

说明书 :

基于FPGA的红外焦平面阵列条带状非均匀性校正系统和方法

技术领域

[0001] 本发明属于红外成像技术领域,更具体地,涉及一种基于FPGA实现的利用中值红外均衡算法进行红外焦平面阵列条带状非均匀性校正系统和方法。

背景技术

[0002] 现今使用的红外成像系统多是基于红外焦平面阵列(IRFPA)器件,但由于制造工艺水平与材料的问题,红外焦平面阵列器件存在信噪比低的问题,这一方面是由于探测单元响应不一致所引起的固定图案噪声,另一方面是由于读出电路的非均匀性与偏置电压噪声所引起的条带状非均匀性,这种非均匀性严重影响了红外图像的质量,限制了红外焦平面阵列器件的应用。
[0003] 传统的非均匀性校正的方法虽然在去除红外图像非均匀性上有优异的表现,但是条带状非均匀性既有结构性,又有随机性。现有的基于定标的方法(例如:单点定标、两点定标)利用对黑体的观测进行图像校正,只适用于参数时域固定的情况。而传统基于场景的方法(例如:恒定统计法、神经网络法、时域高通滤波法、Kalman滤波法)一般需要对时域上连续的若干帧进行运算,其收敛速度较慢,无法适应参数时域上的变化。因此需要研究专门针对条带状非均匀性进行校正的算法。目前此类算法主要停留在软件实现层面,处理时间长,无法满足图像实时性处理要求。已有的采用硬件实现的实时红外焦平面条带状非均匀性校正系统采用的算法过于简单,处理效果较差。因此需要设计一种处理效果好的实时性红外焦平面阵列条带状非均匀性校正系统。
[0004] 中值红外均衡(MIRE)算法由Y.Tendero等人在2010年提出,对条带状非均匀性有较好的校正效果,并且没有迭代运算,复杂度较低。其基本过程如下:第一,计算每一列图像Cj的直方图Ij;第二,计算每一列图像的累计直方图Hj;第三,计算每一列图像累计直方图的逆直方图 ;第四,计算其中值累计直方图 使第五,将每一列的列直方图规范化到该列的中值直方图,得到校正后的图

[0005] 采用FPGA实现中值红外均衡算法时存在如下难点:原算法流程中五个步骤相互之间必须要完全完成上一步的所有计算后才可以进行下一步计算,无法形成一条连贯的流水线,不利于硬件的实现,并且需要相当大的存储空间以缓存中间结果。

发明内容

[0006] 针对现有技术的以上缺陷或改进需求,本发明提供一种基于FPGA的红外焦平面阵列条带状非均匀性校正系统和方法,以中值红外均衡算法(MIRE)为核心,针对算法以及FPGA的特性进行了优化,其目的在于用以填补现有的针对条带状非均匀性进行校正的硬件系统和方法的空缺。
[0007] 为实现上述目的,按照本发明的一个方面,提供一种基于FPGA的红外焦平面阵列条带状非均匀性校正系统,包括图像缓存模块、参数计算模块、非均匀性校正模块以及数据输出模块,其中:
[0008] 所述图像缓存模块,用于缓存外部输入的红外图像,当缓存完一帧图像之后将所述图像按列向所述非均匀性校正模块输出数据;
[0009] 所述参数计算模块,用于接收并解析输入的外部指令得到校正参数,并根据所述校正参数换算得到加权系数后传递给所述非均匀性校正模块;
[0010] 所述非均匀性校正模块,包括:
[0011] 输入控制与数据分发模块,用于控制所述图像缓存模块每次输出一列图像到直方图统计模块,同时计数已经输出的列数,当计算某一列图像规范化像素所需要的全部数据都已获得后,控制所述图像缓存模块输出二次缓存后的该列图像数据到累计直方图处理模块;
[0012] 所述直方图统计模块,用于对所述输入控制与数据分发模块输出的图像列数据进行直方图统计,同时将上一列图像的直方图信息传递给所述累计直方图处理模块;
[0013] 所述累计直方图处理模块,用于根据每一列图像的直方图信息计算该列图像的累计直方图并进行缓存,同时产生计算累计直方图的逆直方图所需使用的标记值并传递给标记值转发模块,并且根据所述输入控制与数据分发模块传递的图像数据索引对应列的索引值传递给索引值转发模块;
[0014] 所述标记值转发模块,用于将所述标记值进行缓存并转发给逆直方图计算模块组;
[0015] 所述索引值转发模块,用于将所述索引值转发给所述逆直方图计算模块组;
[0016] 所述逆直方图计算模块组,包含多个逆直方图计算模块,用于通过所述标记值完成逆直方图的计算并更新模块内部DPRAM,然后根据所述索引值对所述模块内部DPRAM进行索引,并将对应数据转发给规范化计算模块;
[0017] 并行控制模块,用于控制所述逆直方图计算模块组中的每个逆直方图计算模块完成所述逆直方图的计算、更新和对应数据转发;以及
[0018] 所述规范化计算模块,用于通过所述参数计算模块更新加权系数,并将所述逆直方图计算模块组的输出结果与对应加权系数相乘,所乘结果相加后得到图像校正结果,并将所述图像校正结果传递给所述数据输出模块;以及
[0019] 所述数据输出模块,用于缓存并输出校正后的图像。
[0020] 按照本发明的另一方面,提供一种基于FPGA的红外焦平面阵列条带状非均匀性校正方法,包括:
[0021] 步骤1计算加权系数 其中, 表示标准差;k表示加权系数的序号,取值为1,2,…,2N+1,2N+1为计算窗口大小;
[0022] 步骤2缓存原始输入的红外图像;
[0023] 步骤3对所述原始输入的红外图像边缘进行镜像拓展,调整输出列与输出图像地址的映射关系,设所述原始输入的红外图像缓存空间起始地址为0,图像列数为L,计算窗口大小为2x+1,则输出第n列图像时的首地址m为:
[0024]
[0025] 每输出当前列的下一个像素时,地址偏移一列像素的地址空间;
[0026] 步骤4对当前列图像Cj进行直方图统计,得到直方图Ij;
[0027] 步骤5计算当前图像列Cj的累计直方图Hj;
[0028] 步骤6计算当前图像列Cj累计直方图的逆直方图 ;
[0029] 步骤7当某一列图像校正计算窗口中所有列的逆直方图都已计算完毕后,将二次缓存的该列图像像素Xi,j输入,在缓存的累计直方图对应列区域中以此像素灰度值为地址查找累计直方图得到索引值Hj(Xi,j);
[0030] 步骤8以所述索引值Hj(Xi,j)作为地址索引得到目标列图像像素Xi,j分别规范化到对应列的直方图后的像素值
[0031] 步骤9将每一列图像规范化到相邻列直方图后的像素值 乘以对应的加权系数ψσ(k),所乘结果相加后得到图像校正结果
[0032] 步骤10重复所述步骤4至9,直到完成所述原始输入的红外图像全部列的处理;
[0033] 步骤11将校正后的图像数据缓存并输出。
[0034] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0035] 1、与利用DSP进行运算实现红外焦平面阵列条带状非均匀性校正的方法相比,本方法所有算法都由FPGA完成,不需要使用DSP辅助运算,系统处理速度快,可以实现大幅面红外图像的实时校正,同时还有效地降低了校正成本;
[0036] 2、将原算法4、5步进行等效变换,使两个步骤可以形成一条完整的流水线,大大简化了系统的结构,同时节省了存储中值直方图所需要的存储空间;
[0037] 3、利用标记值实现累计直方图及其逆直方图同时计算,节省了系统处理时间;
[0038] 4、利用片上存储资源配合乒乓操作以及对存储区域的合理规划实现了列的尺度上的流水处理。即在一列图像的传输周期中,流水线上的各级模块分别完成一列图像数据的处理并将处理得到的中间结果使用片内DPRAM进行缓存,同时将上一个列周期中运算得到的中间结果输出给下一级模块进行处理。充分利用了FPGA并行计算的优势,有利于系统运行速度的提升;
[0039] 5、本发明FPGA资源占用量很小,可以使用低成本的FPGA器件实现,算法处理模块还可以作为一个子模块与其他算法处理模块集成到一个FPGA中,这只需要对图像缓存模块的入口逻辑与数据输出模块的出口逻辑进行修改以适应其他模块的时序而不用对核心算法模块进行修改,十分方便,增大了方法的实用性。

附图说明

[0040] 图1为本发明基于FPGA的红外焦平面阵列条带状非均匀性校正系统的结构图;
[0041] 图2为本发明基于FPGA的红外焦平面阵列条带状非均匀性校正方法的流程图;
[0042] 图3为本发明规范化计算模块加权系数寄存器更新示意图;
[0043] 图4为本发明原始红外图像、人工添加条带状非均匀性的红外图像与本发明处理后的图像对比示意图。

具体实施方式

[0044] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0045] 图1所示为本发明基于FPGA的红外焦平面阵列条带状非均匀性校正系统的结构图,包括图像缓存模块、参数计算模块、非均匀性校正模块与数据输出模块。其中非均匀性校正模块是整个系统的主体,包括输入控制与数据分发模块、直方图统计模块、累计直方图处理模块、标记值转发模块、索引值转发模块、逆直方图计算模块组、并行控制模块与规范化计算模块。其中:
[0046] 图像缓存模块,利用外部图像缓存DPRAM(DUAL-PORT STATIC RAM)缓存外部输入的红外图像,当缓存完一帧图像之后向非均匀性校正模块的输入控制与数据分发模块发出数据准备好信号,同时响应输入控制与数据分发模块发出的控制命令,按列的顺序输出图像。图像缓存模块将外部DPRAM存储区域划分为两个部分,采用乒乓方式进行操作:在使用A区域缓存当前帧图像的同时,将B区域中缓存的前一帧图像输出给输入控制与数据分发模块。图像缓存模块在输出缓存图像的同时利用FPGA芯片内部的DPRAM(图1中未示出)对图像进行二次缓存,并在输入控制与数据分发模块的控制下输出。
[0047] 参数计算模块,采用UART实现与上位机的接口,接收外部指令输入并解析上位机指令,得到校正参数。计算所需的加权系数事先在计算机上计算完成并存入片上ROM中,参数计算模块根据校正参数换算得到对应地址从ROM中得到对应的加权系数传递给规范化计算模块。
[0048] 输入控制与数据分发模块,与图像缓存模块相连,当收到图像缓存模块发出的数据准备好信号后产生非均匀性校正模块其余部分的逻辑复位信号,然后控制图像缓存模块按列的顺序每次输出一列图像到直方图统计模块,同时计数已经输出的列数。当计算某一列图像规范化像素所需要的全部数据都已获得后,控制图像缓存模块输出二次缓存后的该列图像数据到累计直方图处理模块。
[0049] 直方图统计模块,与输入控制与数据分发模块相连,对输入控制与数据分发模块输出的图像列数据进行直方图统计。直方图统计模块利用内部DPRAM实时统计每一列图像的直方图,同时将上一列图像的直方图信息传递给累计直方图处理模块。直方图统计模块将内部DPRAM存储区域划分为两个部分,采用乒乓方式进行操作:在使用A区域统计当前图像列直方图的同时,将B区域中缓存的前一列图像的直方图输出给累计直方图处理模块。
[0050] 累计直方图处理模块,与直方图统计模块和输入控制与数据分发模块相连,根据每一列图像的直方图信息计算该列图像的累计直方图并利用片上DPRAM进行缓存,同时产生计算累计直方图的逆直方图所需使用的标记信息传递给标记值转发模块,并且根据输入控制与数据分发模块传递的图像数据索引对应列的DPRAM缓存区域读出对应的索引值传递给索引值转发模块。
[0051] 标记值转发模块,与累计直方图处理模块相连,将每一列图像累计直方图的标记信息通过内部FIFO进行缓存并转发给逆直方图计算模块组中对应需要更新的逆直方图计算模块。因为逆直方图计算模块更新速度较累计直方图处理模块处理速度慢,因此标记值转发模块内部含有两个FIFO,保证同时可以有两个逆直方图计算模块进行更新。
[0052] 索引值转发模块,与累计直方图处理模块相连,将对应列图像得到的索引值转发给逆直方图计算模块组。
[0053] 逆直方图计算模块组,与标记值转发模块、索引值转发模块和并行控制模块相连,其包含多个逆直方图计算模块,每一个逆直方图计算模块有刷新与输出两种状态,由并行控制模块控制进行切换。处于刷新状态时,通过标记值转发模块传递的标记值来完成逆直方图的计算并更新模块内部DPRAM,具体做法为:先读出一个标记值将其中的灰度值填入存储器中其高度值对应地址中,再将两个地址之间空白部分用该灰度值进行填充;处于输出状态时,根据索引值转发模块转发的索引值对模块内部DPRAM进行索引并将对应数据转发给规范化计算模块。在本发明实施例中,逆直方图计算模块组中包含的模块个数由计算窗口大小决定,对应关系为:窗口大小为2×N+1的情况下,需使用2×N+4个逆直方图计算模块并行进行处理。
[0054] 并行控制模块,与逆直方图计算模块组相连,向逆直方图计算模块发出刷新起始信号,控制逆直方图计算模块组中的各个单独的模块在需要刷新时切换到刷新状态,并在刷新结束时切换到输出状态。
[0055] 规范化计算模块,与逆直方图计算模块组及参数计算模块相连,通过参数计算模块更新加权系数。每一个逆直方图计算模块输入接口处都有一个乘法器,将该逆直方图计算模块的输出结果与对应加权系数相乘,所乘结果相加后得到规范化后像素值即图像校正结果,并将结果传递给数据输出模块。
[0056] 数据输出模块,利用片外DPRAM缓存校正后的图像,提供面向DSP的EMIF接口,可以将结果输出给DSP进行后续处理,并采用VGA接口实现外部测试接口。
[0057] 图2所示为本发明基于FPGA的红外焦平面阵列条带状非均匀性校正方法的流程图,具体包括以下步骤:
[0058] 步骤1计算加权系数ψσ(k)。
[0059] 加权系数ψσ(k)计算公式如下: 其中, 其中,σ表示标准差;k表示加权系数的序号,取值为1,2,…,2N+1(假设计算窗口大小为2N+1)。
为了节省系统占用的硬件资源,硬件系统并不直接设定标准差σ计算加权系数,而是设定若干档,每一档事先用软件计算好加权系数ψσ(k)然后存储在片上ROM中以供调用。在本发明实施例中,分档方式如下:首先依照成像器的幅面与特性确定最大计算窗口大小(2P+1)与最小计算窗口大小(2Q+1)(注意需要为奇数),对于大小为(2N+1)(Q≤N≤P)的每一个窗口,定义不均匀性系数 取Λ分别为0.5、0.4、0.3、0.2与0.1时的
ψσ(k)(k∈[1,2N+1])作为加权系数,其中,所有加权系数均放大256倍(即左移8位)。应当注意实际上每一档的加权系数一共有(2P+1)个,对于N
[0060] 步骤2缓存原始输入的红外图像。
[0061] 因为图像输入按行的顺序输入,而本发明后续处理要求按列的顺序输出图像,因此需要对原始图像进行缓存,待一帧完整的图像缓存完毕时才进行处理。
[0062] 步骤3原始图像边缘镜像拓展。
[0063] 后续处理过程存在当前列图像与相邻列图像之间的运算,而对于处于边缘的像素则缺少相应的相邻列的数据进行处理,因此需要对原图像行方向上的边界进行特殊处理,本发明通过对原始图像边缘进行镜像拓展解决此问题。图像的镜像拓展通过调整输出列与输出图像地址的映射关系来实现,设输入图像缓存空间起始地址为0,图像列数为L,计算窗口大小为2x+1,则输出第n列图像时的首地址m为:
[0064]
[0065] 每输出当前列的下一个像素时,地址偏移一列像素的地址空间。
[0066] 步骤4计算当前图像列Cj的直方图Ij。
[0067] 以像素灰度值映射DPRAM地址来使用片内DPRAM对当前列图像Cj进行直方图统计,得到直方图Ij。关于直方图统计具体细节,此为本领域技术人员公知常识,在此不做详细介绍。
[0068] 步骤5计算当前图像列Cj的累计直方图Hj。
[0069] 为了节省处理时间,本发明并行计算当前图像列的累计直方图Hj与累计直方图的逆直方图 因此需要在计算当前累计直方图的同时生成用于计算逆直方图的信息,具体包括以下子步骤:
[0070] (5-1)读取直方图对应灰度值的高度值,初始状态时灰度值为0;
[0071] (5-2)对于每一个灰度值得到的高度值,将该高度值与累计高度值(初始状态时为0)相加得到新的累计高度值,并将新的累计高度值写入DPRAM中当前灰度级对应的地址来更新累计直方图;
[0072] (5-3)如果该高度值为0,则执行步骤(5-5),否则将新的累计高度值与当前灰度值作为标记值下传至标记值转发模块中;
[0073] (5-4)如果当前高度值为1,则标记值的填充标志位填0,否则填1;
[0074] (5-5)如果达到最大灰度值,则结束,否则灰度值加1,然后执行步骤(5-1)。
[0075] 步骤6计算当前图像列Cj累计直方图的逆直方图 具体包括以下子步骤:
[0076] (6-1)当有新的标记数据时,从标记值转发FIFO中读出标记值数据,将灰度值部分数据内容填入累计高度值对应的地址中;
[0077] (6-2)如果填充标志位为0,则执行步骤(6-3),否则将当前累计高度值与前一次收到的累计高度值之间对应的地址区域全部填入当前灰度值;
[0078] (6-3)如果已到达最大高度值则结束,否则继续执行步骤(6-1)。
[0079] 步骤7计算索引值Hj(Xi,j)。
[0080] 当逆直方图统计模块计算完校正某一列图像需要的所有相邻列的逆直方图之后,将二次缓存的该列图像像素Xi,j输入,在缓存的累计直方图对应列区域中以此像素灰度值为地址查找累计直方图得到索引值Hj(Xi,j)。
[0081] 步骤8计算待校正图像列像素Xi,j分别规范化到相邻列的直方图后的值[0082] 各个处于输出状态的逆直方图统计模块以索引值Hj(Xi,j)作为地址索引自身的逆直方图存储DPRAM,得到目标列图像像素Xi,j分别规范化到对应列的直方图后的像素值[0083] 步骤9将规范化到相邻列直方图后的值 加权平均得到最终的校正结果[0084] 在窗口大小为2×N+1的情况下,一共有2×N+4个逆直方图统计模块的数据输出接口接到规范化计算模块上,其中同一时刻只有2×N+1个接口上的输入为有效输入。在规范化计算模块的每一个输入接口处都有一个乘法器,将每一列的输出结果 乘以对应的加权系数ψσ(k)。对应加权系数存放于寄存器中,一共有2×N+4个寄存器,其中3个处于更新状态中的无效输入接口对应的系数为零,这样保证了计算结果不会被无效数据干扰。本发明以加权系数寄存器循环赋值更新实现计算窗口的滑动,图3所示为本发明规范化计算模块加权系数寄存器更新示意图,图的上半部分所展示的是计算第N+1列图像规范化像素值时的情形,计算窗口为图像的第1列至第2N+1列,对应逆直方图计算模块中的1至2N+1号,其所乘的加权系数寄存器中的值正好对应ψσ(1)到ψσ(2N+1)。图中下半部分所展示的是计算第N+2列图像规范化像素值时的情形,计算窗口为图像的第2列至第2N+2列,对应逆直方图计算模块中的2至2N+2号,此时加权系数寄存器进行循环赋值,第1号的值赋给第2号,第2号赋给第3号,以此类推,第2N+4号的值赋给第1号,这样对应逆直方图计算模块所乘的加权系数寄存器中的值正好对应ψσ(1)到ψσ(2N+1)。因为加权系数放大了256倍,所以将所有乘积相加后,需要将结果右移8位,得到最终的校正结果
[0085] 步骤10重复步骤4至9,直到完成图像全部列的处理。
[0086] 步骤11校正结果输出。将校正后的图像数据缓存起来,通过EMIF接口输出给DSP以进行后续算法处理,同时通过VGA接口将校正后的图像显示在显示器中,以供测试使用。此类逻辑为本领域技术人员公知常识,在此不做详细介绍。
[0087] 图4所示为本发明原始红外图像、人工添加条带状非均匀性的红外图像与本发明处理后的图像对比示意图。图4(a)为没有条带状非均匀性的原始红外图像;图4(b)为人工加入条带状非均匀性的的图像;图4(c)为本发明得到的处理结果,可以看到条带状非均匀性得到了很好的校正并且图像没有明显的失真,视觉效果得到了明显的改善。
[0088] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。