拍摄场景闪烁的检测方法、装置、拍摄设备和介质
文献发布时间:2023-06-19 11:57:35
技术领域
本公开涉及图像处理技术领域,尤其涉及一种拍摄场景闪烁的检测方法、装置、拍摄设备和介质。
背景技术
当在由商用交流电源供电的光源下利用成像装置对物体进行拍摄时,在拍摄输出的视频信号中会产生相对于时间的亮度变化,即所谓的闪烁。造成闪烁的原因是由于交流电的能量按照正弦波的形式周期性变化,当外部光源为灯光时,在曝光时间不满足交流电能量周期的整数倍的情况下,会使图像亮度随着行数的变化产生周期性变化,动态的图像看起来有条带在表面闪烁。
现有的闪烁检测方法中,通常是计算当前图像帧的行平均向量,与前一图像帧的行平均向量进行差值计算得到差分向量,通过差分向量判断当前图像帧是否存在闪烁现象;或者是获取光源区的图片,计算每行所有像素的平均灰度值,通过平均灰度值的变化规律判断当前场景是否存在闪烁现象。
然而,在暗光或高动态的情况下,采用现有技术的方法,对弱光闪烁的现象容易出现漏检或误检,降低了闪烁检测的准确度。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种拍摄场景闪烁的检测方法、装置、拍摄设备和介质。
第一方面,本公开提供一种拍摄场景闪烁的检测方法,包括:
确定当前拍摄场景为静态场景、非暗光且高动态的情况下,获取第一图像帧和第一平均图像帧的差值并二值化,得到第一拟合图像帧,其中,所述第一平均图像帧是第一组图像帧的平均图像帧,所述第一组图像帧包含N个连续的图像帧,第一个图像帧为所述第一图像帧,所述N为大于等于2的整数;
获取所述第一拟合图像帧每行的行平均亮度;
根据行号和行平均亮度拟合第一曲线,其中,行号为横轴,行平均亮度为纵轴;
若所述第一曲线为正弦曲线,确定当前拍摄场景存在闪烁。
可选的,还包括:
确定当前拍摄场景为静态场景、暗光且高动态的情况下,获取第i图像帧和第i平均图像帧的差值并二值化,得到第i拟合图像帧,其中,所述i为大于等1且小于等于M的整数,所述第i平均图像帧是第i组图像帧的平均图像帧,所述第i组图像帧包含N个连续的图像帧,第i组图像帧的第一个图像帧为所述第i图像帧,所述N为大于等于2的整数;
获取所述第i拟合图像帧每行的行平均亮度;
根据第i拟合图像帧的行号和行平均亮度拟合第二曲线,其中,行号为横轴,行平均亮度为纵轴;
若所述第二曲线包含S个周期的正弦波,确定当前拍摄场景存在闪烁,其中,S为大于等于1的整数。
可选的,还包括:
确定当前拍摄场景为静态场景;
将第一平均图像帧进行直方图统计,根据直方图统计信息,确定当前静态场景为非暗光且高动态的情况,或者,暗光且高动态的情况。
可选的,所述根据直方图统计信息,确定当前静态场景为非暗光且高动态的情况,或者,暗光且高动态的情况,包括:
若相邻亮度值区间的像素数量差值大于第一预设阈值,确定当前静态场景为高动态;
若大于第一亮度值的亮度值区间的像素数量小于第二预设阈值,确定当前场景为暗光;
若大于第一亮度值的亮度值区间的像素数量大于等于第二预设阈值,确定当前场景为非暗光。
可选的,所述确定当前拍摄场景为静态场景,包括:
获取第i组图像帧的第i平均图像帧,根据所述第i平均图像帧,确定第i场景亮度,其中,所述i为大于等1且小于等于K的整数,所述第i组图像帧包含N个连续的图像帧,相邻两组图像帧的起始图像帧相邻;
根据第1场景亮度至第K场景亮度,确定当前场景为静态场景,其中,K个场景亮度中,任意两个场景亮度的差值小于第三预设阈值。
第二方面,本公开提供一种拍摄场景闪烁的检测装置,包括:
处理模块,用于确定当前拍摄场景为静态场景、非暗光且高动态的情况下,获取第一图像帧和第一平均图像帧的差值并二值化,得到第一拟合图像帧,其中,所述第一平均图像帧是第一组图像帧的平均图像帧,所述第一组图像帧包含N个连续的图像帧,第一个图像帧为所述第一图像帧,所述N为大于等于2的整数;
获取模块,用于获取所述第一拟合图像帧每行的行平均亮度;
所述处理模块,还用于根据行号和行平均亮度拟合第一曲线,其中,行号为横轴,行平均亮度为纵轴;
所述处理模块,还用于若所述第一曲线为正弦曲线,确定当前拍摄场景存在闪烁。
可选的,还包括:
所述处理模块,还用于确定当前拍摄场景为静态场景、暗光且高动态的情况下,获取第i图像帧和第i平均图像帧的差值并二值化,得到第i拟合图像帧,其中,所述i为大于等1且小于等于M的整数,所述第i平均图像帧是第i组图像帧的平均图像帧,所述第i组图像帧包含N个连续的图像帧,第i组图像帧的第一个图像帧为所述第i图像帧,所述N为大于等于2的整数;
所述获取模块,还用于获取所述第i拟合图像帧每行的行平均亮度;
所述处理模块,还用于根据第i拟合图像帧的行号和行平均亮度拟合第二曲线,其中,行号为横轴,行平均亮度为纵轴;
所述处理模块,还用于若所述第二曲线包含S个周期的正弦波,确定当前拍摄场景存在闪烁,其中,S为大于等于1的整数。
可选的,还包括:
所述处理模块,还用于确定当前拍摄场景为静态场景;并用于将第一平均图像帧进行直方图统计,根据直方图统计信息,确定当前静态场景为非暗光且高动态的情况,或者,暗光且高动态的情况。
可选的,所述处理模块具体用于:
若相邻亮度值区间的像素数量差值大于第一预设阈值,确定当前静态场景为高动态;
若大于第一亮度值的亮度值区间的像素数量小于第二预设阈值,确定当前场景为暗光;
若大于第一亮度值的亮度值区间的像素数量大于等于第二预设阈值,确定当前场景为非暗光。
可选的,所述处理模块具体用于:
获取第i组图像帧的第i平均图像帧,根据所述第i平均图像帧,确定第i场景亮度,其中,所述i为大于等1且小于等于K的整数,所述第i组图像帧包含N个连续的图像帧,相邻两组图像帧的起始图像帧相邻;
根据第1场景亮度至第K场景亮度,确定当前场景为静态场景,其中,K个场景亮度中,任意两个场景亮度的差值小于第三预设阈值。
第三方面,本公开提供一种拍摄设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。
第四方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
通过确定当前拍摄场景为静态场景、非暗光且高动态的情况下,获取第一图像帧和第一平均图像帧的差值并二值化,得到第一拟合图像帧,其中,所述第一平均图像帧是第一组图像帧的平均图像帧,所述第一组图像帧包含N个连续的图像帧,第一个图像帧为所述第一图像帧,所述N为大于等于2的整数;获取所述第一拟合图像帧每行的行平均亮度;根据行号和行平均亮度拟合第一曲线,其中,行号为横轴,行平均亮度为纵轴;若所述第一曲线为正弦曲线,确定当前拍摄场景存在闪烁,由于第一拟合图像帧的行亮度的变化能够体现出当前场景下外部光源的亮度变化,因此,根据行号和行平均亮度拟合出的第一曲线,更能体现外部光源的亮度变化和亮度变化的周期,从而,提高了闪烁检测的准确度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开提供的一种拍摄场景闪烁的检测方法实施例的流程示意图;
图2为本公开提供的另一种拍摄场景闪烁的检测方法实施例的流程示意图;
图3为本公开提供的再一种拍摄场景闪烁的检测方法实施例的流程示意图;
图4为本公开提供的又一种拍摄场景闪烁的检测方法实施例的流程示意图;
图5为本公开提供的又一种拍摄场景闪烁的检测方法实施例的流程示意图;
图6为本公开提供的一种拍摄场景闪烁的检测装置的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
下面以几个具体的实施例对本公开的技术方案进行描述,对于相同或者类似的概念,可以相互参考,不再每处一一赘述。
本公开实施例提供的一种拍摄场景闪烁的检测方法可应用于手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personal digital assistant,PDA)、可穿戴电子设备、虚拟现实设备等电子设备,本公开实施例对此不做任何限制。
图1为本公开提供的一种拍摄场景闪烁的检测方法实施例的流程示意图,如图1所示,本实施例的方法包括:
S101:确定当前拍摄场景为静态场景、非暗光且高动态的情况下,获取第一图像帧和第一平均图像帧的差值并二值化,得到第一拟合图像帧。
其中,第一平均图像帧是第一组图像帧的平均图像帧,第一组图像帧包含N个连续的图像帧,第一个图像帧为第一图像帧,N为大于等于2的整数。
例如,当用户打开手机上的相机应用后,摄像头开始按照一定的拍摄频率采集拍摄画面,并显示在预览界面中,根据摄像头捕捉到的图像帧确定当前拍摄场景为静态场景、非暗光且高动态的情况下,获取摄像头捕捉到的第1个图像帧,并以第1个图像帧为基准缓冲30帧,计算第1个图像帧到第30个图像帧的平均图像帧,获取第1个图像帧和平均图像帧的差值,并对差值后的图像帧进行二值化处理,得到拟合图像帧。
可选的,可以根据如下方式确定当前拍摄场景为静态场景、非暗光且高动态,如图2所示:
S201:确定当前拍摄场景为静态场景。
可选的,若当前拍摄场景不为静态场景,则不需要检测闪烁,结束流程。
S202:将第一平均图像帧进行直方图统计,根据直方图统计信息,确定当前静态场景为非暗光且高动态的情况。
例如:若相邻亮度值区间的像素数量差值大于第一预设阈值,确定当前静态场景为高动态;若大于第一亮度值的亮度值区间的像素数量大于等于第二预设阈值,确定当前场景为非暗光。
S102:获取第一拟合图像帧每行的行平均亮度。
其中,第一拟合图像帧是黑白交替有规律的图像。
S103:根据行号和行平均亮度拟合第一曲线。
其中,行号为横轴,行平均亮度为纵轴。
以第一拟合图像帧的(行号,行平均亮度)为已知数据,选择适当的曲线类型来拟合数据。
S104:判断第一曲线是否为正弦曲线。
若是,则执行S105。
S105:确定当前拍摄场景存在闪烁。
一种可能的实现方式为:根据正弦曲线的周期,计算当前场景下外部光源的频率,将外部光源的频率和当前图像的曝光时间反馈给自动曝光算法模块,自动曝光算法模块重新调整当前场景下的图像曝光时间,以消除图像闪烁。
本实施例,通过确定当前拍摄场景为静态场景、非暗光且高动态的情况下,则获取第一图像帧和第一平均图像帧的差值并二值化,得到第一拟合图像帧,其中,第一平均图像帧是第一组图像帧的平均图像帧,第一组图像帧包含N个连续的图像帧,第一个图像帧为第一图像帧,N为大于等于2的整数;获取第一拟合图像帧每行的行平均亮度;根据行号和行平均亮度拟合第一曲线;判断第一曲线是否为正弦曲线;若是,则确定当前拍摄场景存在闪烁,由于第一拟合图像帧的行亮度的变化能够体现出当前场景下外部光源的亮度变化,因此,根据行号和行平均亮度拟合出的第一曲线,更能体现外部光源的亮度变化和亮度变化的周期,从而,提高了闪烁检测的准确度。
图3为本公开提供的再一种拍摄场景闪烁的检测方法实施例的流程示意图,图3是针对当前静态场景不为非暗光且高动态的情况下确定当前拍摄场景是否存在闪烁的技术方案,如图3所示:
S301:确定当前拍摄场景为静态场景、暗光且高动态的情况下,获取第i图像帧和第i平均图像帧的差值并二值化,得到第i拟合图像帧。
其中,i为大于等1且小于等于M的整数,第i平均图像帧是第i组图像帧的平均图像帧,第i组图像帧包含N个连续的图像帧,第i组图像帧的第一个图像帧为第i图像帧,N为大于等于2的整数,M为大于等于2且小于N的整数。
可选的,可以根据如下方式确定当前拍摄场景为暗光且高动态,如图4所示:
S203:将第一平均图像帧进行直方图统计,根据直方图统计信息,确定当前静态场景为暗光且高动态的情况。
例如:若相邻亮度值区间的像素数量差值大于第一预设阈值,确定当前静态场景为高动态;若大于第一亮度值的亮度值区间的像素数量小于第二预设阈值,确定当前场景为暗光。
S302:获取第i拟合图像帧每行的行平均亮度。
其中,第i拟合图像帧是黑白交替不规律的图像。
S303:根据第i拟合图像帧的行号和行平均亮度拟合第二曲线。
其中,行号为横轴,行平均亮度为纵轴。
S304:判断第二曲线是否包含S个周期的正弦波。
其中,S为大于等于1的整数。正弦波可以是一个完整周期的正弦曲线,也可以是一个完整周期的部分正弦曲线。。
若是,则执行S305。
若否,一种可能的实现的方式为:确定当前拍摄场景不存在闪烁,结束流程;另一种可能的实现方式为:重新执行S301,获取第i组图像帧的下一组图像帧,下一组图像帧的起始图像帧与第i图像帧相邻。
S305:确定当前拍摄场景存在闪烁。
一种可能的实现方式为:根据S个周期的正弦波,计算当前场景下外部光源的频率,将外部光源的频率和当前图像的曝光时间反馈给自动曝光算法模块,自动曝光算法模块重新调整当前场景下的图像曝光时间,自适应地消除了图像闪烁。
本实施例,通过确定当前拍摄场景为静态场景、暗光且高动态的情况下,获取第i图像帧和第i平均图像帧的差值并二值化,得到第i拟合图像帧,其中,i为大于等1且小于等于M的整数,第i平均图像帧是第i组图像帧的平均图像帧,第i组图像帧包含N个连续的图像帧,第i组图像帧的第一个图像帧为第i图像帧,N为大于等于2的整数;获取第i拟合图像帧每行的行平均亮度,根据第i拟合图像帧的行号和行平均亮度拟合第二曲线;判断第二曲线是否包含S个周期的正弦波,其中,S为大于等于1的整数,若是,则确定当前拍摄场景存在闪烁,由于当前拍摄场景为暗光且高动态的情况,第i拟合图像帧的行亮度的值较小且变化不明显,因此,根据第i拟合图像帧的行号和行平均亮度拟合出的第二曲线中包含S个周期的正弦波时,确定当前拍摄场景存在闪烁,从而,提高了闪烁检测的准确度和图像的拍摄质量。
图5为本公开提供的又一种拍摄场景闪烁的检测方法实施例的流程示意图,图5是在图2或图4所示实施例的基础上,S201的一种可能的方式的描述,包括:
S2011:获取第i组图像帧的第i平均图像帧,根据第i平均图像帧,确定第i场景亮度。
其中,i为大于等1且小于等于K的整数,第i组图像帧包含N个连续的图像帧,相邻两组图像帧的起始图像帧相邻。
以K等于20,M等于30为例,以摄像头采集到的第1个图像帧为基准,缓冲30个连续的图像帧,则第1个图像帧到第30个图像帧为第1组图像帧,计算第1组图像帧的第1平均图像帧,根据第1平均图像帧,确定第1场景亮度。
以第2个图像帧为基准,缓冲30个连续的图像帧,则第2个图像帧到第31个图像帧为第2组图像帧,计算第2组图像帧的第2平均图像帧,根据第2平均图像帧,确定第2场景亮度。
…
以第20个图像帧为基准,缓冲30个连续的图像帧,则第20个图像帧到第49个图像帧为第20组图像帧,计算第20组图像帧的第20平均图像帧,根据第20平均图像帧,确定第20场景亮度。
S2012:根据第1场景亮度至第K场景亮度,确定当前场景为静态场景。
其中,K个场景亮度中,任意两个场景亮度的差值小于第三预设阈值。
本实施例,通过获取第i组图像帧的第i平均图像帧,根据第i平均图像帧,确定第i场景亮度,其中,i为大于等1且小于等于K的整数,第i组图像帧包含N个连续的图像帧,相邻两组图像帧的起始图像帧相邻;根据第1场景亮度至第K场景亮度,确定当前场景为静态场景,其中,K个场景亮度中,任意两个场景亮度的差值小于第三预设阈值,即,根据多个场景的亮度确定当前场景为静态场景,从而,提高了闪烁检测的准确度和静态场景下图像的拍摄质量。
图6本公开提供一种拍摄场景闪烁的检测装置的结构示意图,本实施例的装置包括:处理模块601和获取模块602。
其中,处理模块601,用于确定当前拍摄场景为静态场景、非暗光且高动态的情况下,获取第一图像帧和第一平均图像帧的差值并二值化,得到第一拟合图像帧,其中,所述第一平均图像帧是第一组图像帧的平均图像帧,所述第一组图像帧包含N个连续的图像帧,第一个图像帧为所述第一图像帧,所述N为大于等于2的整数;
获取模块602,用于获取所述第一拟合图像帧每行的行平均亮度;
处理模块601,还用于根据行号和行平均亮度拟合第一曲线,其中,行号为横轴,行平均亮度为纵轴;
处理模块601,还用于若所述第一曲线为正弦曲线,确定当前拍摄场景存在闪烁。
可选的,还包括:
处理模块601,还用于确定当前拍摄场景为静态场景、暗光且高动态的情况下,获取第i图像帧和第i平均图像帧的差值并二值化,得到第i拟合图像帧,其中,所述i为大于等1且小于等于M的整数,所述第i平均图像帧是第i组图像帧的平均图像帧,所述第i组图像帧包含N个连续的图像帧,第i组图像帧的第一个图像帧为所述第i图像帧,所述N为大于等于2的整数;
获取模块602,还用于获取所述第i拟合图像帧每行的行平均亮度;
处理模块601,还用于根据第i拟合图像帧的行号和行平均亮度拟合第二曲线,其中,行号为横轴,行平均亮度为纵轴;
处理模块601,还用于若所述第二曲线包含S个周期的正弦波,确定当前拍摄场景存在闪烁,其中,S为大于等于1的整数。
可选的,还包括:
处理模块601,还用于确定当前拍摄场景为静态场景;并用于将第一平均图像帧进行直方图统计,根据直方图统计信息,确定当前静态场景为非暗光且高动态的情况,或者,暗光且高动态的情况。
可选的,处理模块601具体用于:
若相邻亮度值区间的像素数量差值大于第一预设阈值,确定当前静态场景为高动态;
若大于第一亮度值的亮度值区间的像素数量小于第二预设阈值,确定当前场景为暗光;
若大于第一亮度值的亮度值区间的像素数量大于等于第二预设阈值,确定当前场景为非暗光。
可选的,处理模块601具体用于:
获取第i组图像帧的第i平均图像帧,根据所述第i平均图像帧,确定第i场景亮度,其中,所述i为大于等1且小于等于K的整数,所述第i组图像帧包含N个连续的图像帧,相邻两组图像帧的起始图像帧相邻;
根据第1场景亮度至第K场景亮度,确定当前场景为静态场景,其中,K个场景亮度中,任意两个场景亮度的差值小于第三预设阈值。
本实施例的装置对应的可用于执行上述图1到图5任一所示方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开实施例提供了一种拍摄设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时可以实现图1到图5任一所示方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现图1到图5任一所示方法实施例的技术方案。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 拍摄场景闪烁的检测方法、装置、拍摄设备和介质
- 拍摄闪烁消除方法、装置、拍摄设备和可读存储介质