一种抑制图像闪烁条纹的方法
技术领域
本发明涉及视频图像处理技术,特别涉及一种抑制图像闪烁条纹的方法。
背景技术
现有技术中抑制图像闪烁条纹(后文以Flicker表示)的方法主要是通过一定估计算法得出Flicker模型,通过该Flicker模型补偿图像中的条纹。现有的一种估计算法是根据亮度估计出具有理想幅值和相位的Flicker正弦曲线。然而这种估计过程需要迭代运算,计算量非常大,而且由于Flicker条纹本身的周期幅值不是定值,因而所得到的Flicker曲线并不是标准的正弦曲线,因此该算法并不能完全抑制图像中的Flicker。另一种估计算法是根据图像中均匀背景区(non-content)估计Flicker模型,然后根据像素值可表示为背景与Flicker条纹相乘的原理,将Flicker从背景图像中除掉。该估计算法对Flicker周期较小(图像高度中Flicker条纹个数较多)的图像消除效果很好,但是该估计算法要求图像中必须有均匀区域,且均匀区域要贯穿图像的所有行,因此大大限制了算法的应用范围。
发明内容
有鉴于此,本发明实施例提供一种抑制图像闪烁条纹的方法,解决了现有的估计算法的计算量大,且抑制过程受闪烁条纹周期和图像背景的限制的问题。
为了达到上述目的,本发明实施例提供的一种抑制图像闪烁条纹的方法包括:
获取待处理视频序列中至少一帧图像的行均值向量;所述至少一帧图像的行均值向量包括:所述至少一帧图像在三原色三个通道上的行均值向量;所述行均值向量中的每个元素为当前帧图像中一行像素的像素值的均值;
利用所述行均值向量连续部分的元素补齐当前帧图像垂直空白行导致的行均值向量缺失的元素;
利用带通滤波器对所述行均值向量进行滤波处理,得到闪烁条纹信息;
将当前帧图像中的每个像素值减去所述闪烁条纹信息中相应行的值;
其中,将当前帧图像中的每个像素值减去所述闪烁条纹信息中相应行的值包括:分别将每个像素在三原色三个通道上的值减去相应通道的所述闪烁条纹信息中相应行的值;
在将当前帧图像中的每个像素值减去所述闪烁条纹信息中相应行的值之前,所述方法还包括:
设定第一阈值和第二阈值,所述第二阈值大于所述第一阈值;
获取当前帧图像中每一行像素在三原色三个通道之中的闪烁条纹信息最大值;
当一行像素的所述闪烁条纹信息最大值小于所述第一阈值时,将该行像素在三原色三个通道的闪烁条纹信息清零;
当一行像素的所述闪烁条纹信息最大值介于所述第一阈值和第二阈值之间时,将该行像素在三原色三个通道的闪烁条纹信息乘以一个修正系数。
本发明实施例提供一种抑制图像闪烁条纹的方法,利用闪烁条纹的周期性,通过带通滤波器从图像行均值向量的频谱信息中滤出闪烁条纹信息,然后再从原始图像的像素值中减去该滤出的闪烁条纹信息,从而得到抑制闪烁条纹后的图像。整个算法过程计算量小,且抑制过程不受闪烁条纹周期和图像背景的限制,能够完全抑制图像闪烁条纹。
附图说明
图1是本发明一实施例提供的一种抑制图像闪烁条纹的方法的流程图。
图2是本发明一实施例提供的连续两帧视频图像的组成部分示意图。
图3是本发明一实施例提供的一种行均值向量边界处理示意图。
图4是本发明一实施例提供的一种抑制图像闪烁条纹的方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种抑制图像闪烁条纹的方法的流程图。如图1所示,该方法包括如下步骤:
步骤101:获取待处理视频序列中至少一帧图像的行均值向量;行均值向量中的每个元素为当前帧图像中一行像素的像素值的均值。
在本发明一实施例中,为了进一步减小计算量,可以对行均值向量中的元素进行采样。但为了保证不同帧图像的采样点位置保持一致,采样率(即在行均值向量中每几个元素采样一次)应能够被当前帧图像的总行数整除。如图2所示,图2中包括连续两帧图像,其中Active部分为每帧图像的可见图像区域,步骤101中统计的行均值就是Active区域的每行的行均值,因此所要得到的Flicker信息也必定来源于Active区域。而每帧图像下方的垂直空白行(VBlank)并没有可见图像,因而也就无法根据可见图像得到VBlank中的Flicker信息,但VBlank的Flicker信息可利用Flicker的连续性得到,具体步骤可见步骤102。但倘若采样率不能够被当前帧图像的总行数整除,下一帧图像中采样行的位置就会不与上一帧图像的采样行相同。因此,只有当采样率可以被每帧图像总行数整除时才能保证对不同帧Active区域的采样点位置一致。
在本发明一实施例中,为了进一步提高对原始图像中闪烁条纹的抑制效果,可以是在三原色(后文以RGB表示)三个通道上分别抑制原始图像中的在这三个通道中的闪烁条纹。此时就要获取图像在RGB三个通道上的行均值向量。此种情况将在图4所示的实施例进行详细说明。
步骤102:利用所述行均值向量连续部分的元素补齐当前帧图像垂直空白行导致的行均值向量缺失的元素。
为了在后续的滤波过程中得到连续的闪烁条纹信息,不同帧图像的行均值向量之间也应是连续的。而由于每帧图像底部存在VBlank区域,因而不同帧图像的行均值向量无法连续,因此就需要对行均值向量进行边界处理。
图3是本发明一实施例提供的一种行均值向量边界处理示意图。如图3所示,图3中给出了连续两帧图像行均值向量的元素值相连接所形成的行均值向量曲线,横坐标中的数字1,2,3……n表示Acitve区域的n行图像,纵坐标为该行对应的行均值。行均值向量曲线中的实线代表Active区域的行均值,而VBlank区域在进行边界处理前的行均值为零。为了得到连续的行均值向量,就需要利用Active区域的行均值向量元素补齐VBlank区域的行均值向量元素,图3中的虚线即为VBlank区域经边界处理后的行均值。这样就得到了连续的行均值向量,并且在后续滤波过程中所得到的闪烁条纹信息也将是连续的。
本领域技术人员可以理解,图3所示的实施例中并没有考虑帧图像本身的图像变化,即默认帧图像本身为均一的单色图像,因而得到的行均值向量曲线是能够准确反映Flicker强度值的标准三角函数曲线。然而在实际的应用中,由于帧图像并不一定是均一的单色图像,因而行均值向量曲线并不会是标准的三角函数曲线,但是边界处理的过程是相同的,都是利用行均值向量的连续部分的元素补齐垂直空白行导致的行均值向量缺失的元素。
步骤103:利用带通滤波器对行均值向量进行滤波处理,得到闪烁条纹信息。
本领域技术人员可以理解,这里的带通滤波器的输入为行均值向量,输出为闪烁条纹信息。因此,为了能够滤出闪烁条纹信息,该带通滤波器的通带宽度就必须覆盖闪烁条纹的频率,因而通带宽度由Flicker条纹的空间周期及Active区域可见图像的高度确定;通带滤波器的阶数由采样点的数量而定。本发明对通带滤波器的实现形式和参数不做限定。
步骤104:将当前帧图像中的每个像素值减去闪烁条纹信息中相应行的值。由于闪烁条纹信息所表示的就是闪烁条纹的强度信息,因此将原始图像的像素值减去该像素值相应行的闪烁条纹信息,即可消除原始图像中的闪烁条纹。
然而,原始图像有可能本身就存在曝光过度的缺陷。由于步骤104中所得到的闪烁条纹信息是一个有正有负的周期性变化的值。此时若直接将原始图像的像素值减去一个正数值,则会隐藏掉原本曝光过度的像素点。因此,可以在将当前帧图像中的每个像素值减去闪烁条纹信息中相应行的值之前,将闪烁条纹信息中的所有值减去一个修正值,以使得闪烁条纹信息中的所有值不大于零,该修正值为闪烁条纹信息的最大值。这样原本曝光过度的像素值在减去修正后的闪烁条纹信息后,像素值进一步变大,因而仍保持曝光过度状态。
此外,原始图像本身的可见图像也有可能接近闪烁条纹,而这些原始图像可能并未包含闪烁条纹。此时若直接将原始图像的像素值减去闪烁条纹信息,则可能会造成对原始图像的损坏。同时由于闪烁条纹的变化情况复杂,若简单的预设一个闪烁条纹信息阈值来决定原始图像是否包含了闪烁条纹并不合理。因此可以通过两个阈值控制实现对闪烁条纹信息的进一步修正,以过渡实现对具体抑制过程的处理,即在过渡区内对闪烁条纹信息的值乘以一个修正系数。
例如,预先设定第一阈值PPThr1和第二阈值PPThr2;其中,PPThr2大于PPThr1。阈值控制策略如下:
其中,Flicker(i)为第i行的闪烁条纹信息,MaxRGB为当前帧图像中每i行像素在三原色三个通道之中的闪烁条纹信息最大值,Gain为修正系数。
在本发明一实施例中,修正系数Gain可为:
Gain=(MaxRGB-PPThr1)*PPThr2/(PPThr2-PPThr1)/MaxRGB
本领域技术人员可以理解,第一阈值PPThr1和第二阈值PPThr2可以根据监控场景而手动配置,本发明对阈值的设置不做限定。
此外,由于在步骤101中可能对行均值向量的元素进行了采样,因此所得到的闪烁条纹信息可能并未包含可见图像区域的所有行。此时需要根据采样点的闪烁条纹信息值,通过插值运算补齐未采样点的闪烁条纹信息值。本领域技术人员可以理解,插值运算的方法可包括线性插值、三次多项式插值和三次样条插值等。本发明对插值运算的具体方法不做限定。
图4是本发明一实施例提供的一种抑制图像闪烁条纹的方法的流程图。如图4所示,该方法是在原始图像的RGB三个通道上抑制闪烁条纹,并选取了连续三帧图像中的中间帧图像的行均值向量进行滤波处理,并将滤波处理得到的闪烁条纹信息作用在了该中间帧图像或第三帧图像上。具体过程如下:
首先根据预知的Flicker条纹周期和采样率设计带通滤波器(S31);然后按照设定好的采样率分别求图像在RGB三个通道上的行均值向量(S32);存储连续三帧的行均值向量,补充VBlank区域缺失的采样点的行均值(S33);选取其中中间帧图像的行均值向量在RGB三个通道上分别进行带通滤波处理(S34);在RGB三个通道上对滤波处理得到的Flicker信息进行插值处理(S35);为实现过曝保护,调整Flicker信息使其全为负数(S36);对Flicker信息按照预定的阈值控制策略进行修正(S37);最终根据需要将该中间帧图像或第三帧图像的像素值减去Flicker信息得到Flicker抑制图像(S38)。
本发明实施例提供一种抑制图像闪烁条纹的方法,利用闪烁条纹的周期性,通过带通滤波器从图像行均值向量的频谱信息中滤除闪烁条纹信息,然后再从原始图像的像素值中减去滤出的闪烁条纹信息,从而得到抑制闪烁条纹后的图像。整个算法过程计算量小,且抑制过程不受闪烁条纹周期和图像背景的限制,能够完全消除图像闪烁条纹。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。