一种生成高动态范围图像的方法、装置
技术领域
本发明涉及图像处理技术领域,尤其涉及一种生成高动态范围图像的方法、装置。
背景技术
随着计算机技术的发展,由于智能手机、功能手机、平板电脑等电子设备受硬件条件的限制,其图像采集装置拍摄的图像和单反相机拍摄的图像在高动态范围(HDR,High Dynamic Range)方面存在巨大的差距。为了改善拍摄图像的图像质量,电子设备采用HDR技术,即将图像采集装置拍摄的多张低动态范围(LDR,Low Dynamic Range)图像合成一张HDR图像。随着电子设备中嵌入式处理器的性能不断提高,电子设备能够在用户可以接受的响应时间内采用HDR技术生成高质量的图像。
由于HDR技术需要对同一场景进行不同曝光程度的多次拍照,在拍照过程中受到电子设备的运动或者场景中物体运动的影响,同一物体在多张LDR像中的位置可能会发生变化,例如,当人物1快速移动时,不同曝光度的LDR图像上,人物1的位置是不同的,沿着人物1的运动轨迹分布,将这些LDR图像进行图像融合,生成HDR图像,如图1所示,其中,虚线所示就被称为人物1的“鬼影”。那么,如何消除“鬼影”成了HDR技术中的难点之一,对于HDR图像的质量有至关重要的影响。
关于消除“鬼影”,在现有技术中,通过对于多张LDR图像,计算每帧LDR图像中物体发生运动的概率,对应输出一个物体运动概率图,该图表征了该帧图像中每个像素发生运动的可能性,然后,基于该运动概率图,确定HDR合成算法中每个像素参与合成的权重,发生运动位置上的像素权重小,静止位置上的像素权重大,这样,合成后的HDR图像中,发生运动的位置上的像素对HDR图像的影响就会降低,以降低“鬼影”的程度。
那么,就存在由于该技术采用降低发生运动位置上的像素点在合成HDR图像的权重,减小发生运动位置的像素对合成的HDR图像的影响,进而降低“鬼影”的程度,但是,无论如何降低发生运动位置上的像素在合成HDR图像的权重,在进行HDR图像合成时,始终要计算发生运动位置上的像素的值,那么,发生运动位置上的像素对HDR图像多少都会存在一定影响,所以,当物体运动较快时或者在一些比较复杂的运动场景中时,仅依靠概率加权无法消除HDR图像中的鬼影。
所以,现有技术中尚无较好的消除HDR图像中的“鬼影”的方法。
发明内容
本发明提供一种生成高动态范围图像的方法、装置,用以解决现有技术中存在当物体运动较快时或者在一些比较复杂的运动场景中时,仅依靠概率加权并不能消除高动态范围图像中的“鬼影”的技术问题,实现了消除高动态范围图像中的“鬼影”的技术效果。
本发明的第一方面,提供一种生成高动态范围图像的方法,所述方法包括:针对一图像采集区域,获得曝光度不同的N帧低动态范围图像,其中,N为大于等于2的整数;将所述N帧低动态范围图像中一帧低动态范围图像确定为参考图像;在剩余的N-1帧低动态范围图像中,确定K帧低动态范围图像中每一帧图像的运动区域,其中,K为大于0且小于等于N-1的整数;基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像;将所述参考图像及所述K帧矫正图像进行图像融合,生成一帧高动态范围图像。
结合第一方面,在第一种可能的实现方式中,将所述N帧低动态范围图像中一帧低动态范围图像确定为参考图像的步骤包括:对所述N帧低动态范围图像中的每一帧图像进行统计,获得与所述N帧低动态范围图像一一对应的N帧灰度直方图;根据所述N帧灰度直方图,将所述N帧低动态范围图像中灰度值分布最均匀的一帧图像确定为所述参考图像。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,在在剩余的N-1帧低动态范围图像中,确定出K帧低动态范围图像中每一帧图像的运动区域的步骤之前,所述方法还包括:在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像。
结合第二种可能的实现方式,在第三种可能的实现方式中,在在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像的步骤之前,所述方法还包括:在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像的每一帧低动态范围图像进行曝光矫正,获得N-1帧低动态范围矫正图像;将所述N-1帧低动态范围矫正图像中的每一帧图像与所述参考图像作差,获得N-1帧亮度差异图像LDiffG。
结合第三种可能的实现方式,在第四种可能的实现方式中,基于所述参考图像,对所述N-1帧低动态范围图像中的每一帧图像进行检测,确定所述N-K-1帧待丢弃图像的步骤包括:通过对所述参考图像进行过曝检测,获得所述参考图像的过曝检测结果;通过对所述N-1帧LDiffG中的每一帧LDiffG图像进行检测,获得所述N-1帧低动态范围图像中的每一帧低动态范围图像的第一检测结果;根据所述过曝检测结果和所述每一帧低动态范围图像的第一检测结果的重合度,确定所述N-K-1帧待丢弃图像。
结合第四种可能的实现方式,在第五种可能的实现方式中,通过对所述参考图像进行过曝检测,获得所述参考图像的过曝检测结果的步骤包括:判断所述参考图像的每一个像素点的灰度值是否大于第一阈值,其中,所述第一阈值在亮度通道上与所述参考图像的每一个像素点一一对应;将灰度值大于所述第一阈值的像素点的过曝检测结果OEF取1;将灰度值小于或等于所述第一阈值的像素点的OEF取0;根据所述参考图像的每个像素点的OEF的取值,确定所述参考图像的过曝检测结果。
结合第四种可能的实现方式或第五种可能的实现方式,在第六种可能的实现方式中,通过对所述N-1帧LDiffG的每一帧图像进行检测,获得所述N-1帧低动态范围图像中的每一帧图像的第一检测结果的步骤包括:判断所述每一帧LDiffG的每一个像素点的灰度值是否大于第二阈值,其中,所述第二阈值在亮度通道上与所述每一帧LDiffG的每一个像素点一一对应,且每一帧LDiffG的每一个所述第二阈值取值一致;将灰度值大于所述第二阈值的像素点的第一亮度检测结果LCMF取1;将灰度值小于或等于所述第二阈值的像素点的LCMF取0;根据所述每一帧LDiffG的每一个像素点的LCMF的取值,确定所述每一帧低动态范围图像的所述第一检测结果。
结合第四种可能的实现方式或第六种可能的实现方式,在第七种可能的实现方式中,根据所述过曝检测结果和所述每一帧低动态范围图像的第一检测结果的重合度,确定所述N-K-1帧待丢弃图像的步骤包括:将所述过曝检测结果中的OEF和所述每一帧低动态范围图像的第一检测结果中的LCMF分别按位进行与运算,获得N-1个运算结果;根据每一个运算结果中1的个数,判断与所述N-1个运算结果一一对应的N-1个帧低动态范围图像的每一帧图像的所述重合度是否大于第三阈值;将所述N-1帧低动态范围图像中所述重合度大于所述第三阈值的N-K-1帧低动态范围图像确定为所述N-K-1帧待丢弃图像。
结合第一方面或第一种可能的实现方式到第三种可能的实现方式中的任意一种,在第八种可能的实现方式中,在剩余的N-1帧低动态范围图像中,确定K帧低动态范围图像中每一帧图像的运动区域的步骤包括:在亮度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第二检测结果;在色度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第三检测结果;基于所述每一帧低动态范围图像的第二检测结果与所述第三检测结果,确定所述K帧低动态范围图像中每一帧低动态范围图像的运动区域。
结合第八种可能的实现方式,在第九种可能的实现方式中,在亮度通道上,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第二检测结果的步骤包括:在亮度通道上,判断所述K帧LDiffG中的每一帧LDiffG的每一个像素点灰度值是否大于第四阈值,其中,所述第四阈值在亮度通道上与所述每一帧LDiffG图像的每一个像素点一一对应,且所述每一帧LDiffG的每一个所述第四阈值取值不完全一致;将灰度值大于所述第四阈值的像素点的第二亮度检测结果LFMF取1;将灰度值小于或等于所述第四阈值的像素点的LFMF取0;根据所述每一帧LDiffG的每一个像素点的LFMF的取值,确定所述每一帧低动态范围图像的第二检测结果。
结合第八种可能的实现方式或第九种可能的实现方式,在第十种可能的实现方式中,在色度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧图像进行检测,确定所述每一帧低动态范围图像的第三检测结果的步骤包括:在色度通道上,将所述K帧低动态范围图像的每一帧低动态范围图像与所述参考图像作差,获得K帧色度差异图像CDiffG;判断每一帧CDiffG的每一个像素点的色度值是否大于与所述像素点对应的第五阈值;将色度值大于所述第五阈值的像素点的色度检测结果CFMF取1;将色度值小于或等于所述第五阈值的像素点的CFMF取0;根据所述每一帧LDiffG的每一个像素点的CFMF的取值,确定所述每一帧低动态范围图像的第三检测结果。
结合第八种可能的实现方式或第十种可能的实现方式,在第十一种可能的实现方式中,基于所述每一帧低动态范围图像的第二检测结果与所述第三检测结果,确定所述K帧低动态范围图像中每一帧低动态范围图像的运动区域的步骤包括:通过将所述每一帧低动态范围图像的每一个像素点的LFMF和CFMF按位进行或运算,确定所述每一帧低动态范围图像的运动区域。
结合第一方面或第一种可能的实现方式到第十一种可能的实现方式中的任意一种,在第十二种可能的实现方式中,基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像的步骤,具体包括:在亮度通道上,基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像;在色度通道上,对所述K帧低动态范围图像中的每一帧图像的运动区域进行色度矫正,生成所述K帧色度矫正图像;基于所述K帧亮度矫正图像及所述K帧色度矫正图像,生成所述K帧矫正图像。
结合第十二种可能的实现方式,在第十三种可能的实现方式中,在亮度通道上,基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像的步骤,具体为:基于参考图像,通过灰度直方图匹配算法,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度全局矫正,生成所述K帧亮度矫正图像。
结合第十二种可能的实现方式或第十三种可能的实现方式,在第十四种可能的实现方式中,在色度通道上,对所述K帧低动态范围图像中的每一帧图像的运动区域进行色度矫正的步骤,具体包括:获得所述K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的灰度比值,其中,所述灰度比值为所述每一个像素点在进行亮度矫正之后的灰度值与所述每一个像素点在进行亮度矫正之前的灰度值之比;在色度通道上,将所述K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的色度值与所述每一个像素点所对应的所述灰度比值相乘,生成所述K帧色度矫正图像。
第二方面,本发明还提供一种生成高动态范围图像的装置,包括:低动态范围图像获得模块,用于针对一图像采集区域,获得曝光度不同的N帧低动态范围图像,其中,N为大于等于2的整数;参考图像确定模块,用于将所述N帧低动态范围图像中一帧低动态范围图像确定为参考图像;运动区域确定模块,用于在剩余的N-1帧低动态范围图像中,确定K帧低动态范围图像中每一帧图像的运动区域,其中,K为大于0且小于等于N-1的整数;图像矫正模块,用于基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像;高动态范围图像生成模块,用于将所述参考图像及所述K帧矫正图像进行图像融合,生成一帧高动态范围图像。
结合第二方面,在第一种可能的实施方式中,所述参考图像确定模块包括:灰度统计模块,用于对所述N帧低动态范围图像中的每一帧图像进行统计,获得与所述N帧低动态范围图像一一对应的N帧灰度直方图;参考图像选择模块,用于根据所述N帧灰度直方图,将所述N帧低动态范围图像中灰度值分布最均匀的一帧图像确定为所述参考图像。
结合第二方面或第一种可能的实施方式,在第二种可能的实施方式中,所述装置还包括:待丢弃图像确定模块,用于在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像。
结合第二种可能的实施方式,在第三种可能的实施方式中,所述装置还包括:曝光矫正模块,用于在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像的每一帧低动态范围图像进行曝光矫正,获得N-1帧低动态范围矫正图像;亮度差异图像获得模块,用于将所述N-1帧低动态范围矫正图像中的每一帧图像与所述参考图像作差,获得N-1帧亮度差异图像LDiffG。
结合第三种可能的实施方式,在第四种可能的实施方式中,所述待丢弃图像确定模块包括:过曝检测模块,用于通过对所述参考图像进行过曝检测,获得所述参考图像的过曝检测结果;第一图像亮度检测模块,用于通过对所述N-1帧LDiffG中的每一帧LDiffG图像进行检测,获得所述N-1帧低动态范围图像中的每一帧低动态范围图像的第一检测结果;重合度确定模块,用于根据所述过曝检测结果和所述每一帧低动态范围图像的第一检测结果的重合度,确定所述N-K-1帧待丢弃图像。
结合第四种可能的实施方式,在第五种可能的实施方式中,所述过曝检测模块包括:第一阈值判断模块,用于判断所述参考图像的每一个像素点的灰度值是否大于第一阈值,其中,所述第一阈值在亮度通道上与所述参考图像的每一个像素点一一对应;过曝确定模块,用于将灰度值大于所述第一阈值的像素点的过曝检测结果OEF取1;还用于将灰度值小于或等于所述第一阈值的像素点的OEF取0;过曝检测结果确定模块,用于根据所述参考图像的每个像素点的OEF的取值,确定所述参考图像的过曝检测结果。
结合第四种可能的实施方式或第五种可能的实施方式,在第六种可能的实施方式中,所述第一图像亮度检测模块包括:第二阈值判断模块,用于判断所述每一帧LDiffG的每一个像素点的灰度值是否大于第二阈值,其中,所述第二阈值在亮度通道上与所述每一帧LDiffG的每一个像素点一一对应,且每一帧LDiffG的每一个所述第二阈值取值一致;第一亮度确定模块,用于将灰度值大于所述第二阈值的像素点的第一亮度检测结果LCMF取1;还用于将灰度值小于或等于所述第二阈值的像素点的LCMF取0;第一检测结果确定模块,用于根据所述每一帧LDiffG的每一个像素点的LCMF的取值,确定所述每一帧低动态范围图像的所述第一检测结果。
结合第四种可能的实施方式或第六种可能的实施方式,在第七种可能的实施方式中,所述重合度确定模块包括:与运算模块,用于将所述过曝检测结果中的OEF和所述每一帧低动态范围图像的第一检测结果中的LCMF分别按位进行与运算,获得N-1个运算结果,获得N-1个运算结果;第三阈值判断模块,用于根据每一个运算结果中1的个数,判断与所述N-1个运算结果一一对应的N-1个帧低动态范围图像的每一帧图像的所述重合度是否大于第三阈值;待丢弃图像确定子模块,用于将所述N-1帧低动态范围图像中所述重合度大于所述第三阈值的N-K-1帧低动态范围图像确定为所述N-K-1帧待丢弃图像。
结合第二方面或第一种可能的实现方式到第三种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述运动区域确定模块包括:第二图像亮度检测模块,用于在亮度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第二检测结果;图像色度检测模块,用于在色度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第三检测结果;运动区域确定子模块,用于基于所述每一帧低动态范围图像的第二检测结果与所述第三检测结果,确定所述K帧低动态范围图像中每一帧低动态范围图像的运动区域。
结合第八种可能的实现方式,在第九种可能的实现方式中,所述第二图像亮度检测模块包括:第四阈值判断模块,用于在亮度通道上,判断所述K帧LDiffG中的每一帧LDiffG的每一个像素点灰度值是否大于第四阈值,其中,所述第四阈值在亮度通道上与所述每一帧LDiffG图像的每一个像素点一一对应,且所述每一帧LDiffG的每一个所述第四阈值取值不完全一致;第二亮度确定模块,用于将灰度值大于所述第四阈值的像素点的第二亮度检测结果LFMF取1;还用于将灰度值小于或等于所述第四阈值的像素点的LFMF取0;第二检测结果确定模块,用于根据所述每一帧LDiffG的每一个像素点的LFMF的取值,确定所述每一帧低动态范围图像的第二检测结果。
结合第八种可能的实现方式或第九种可能的实现方式,在第十种可能的实现方式中,所述图像色度检测模块包括:色度差异图像获得模块,用于在色度通道上,将所述K帧低动态范围图像的每一帧低动态范围图像与所述参考图像作差,获得K帧色度差异图像CDiffG;第五阈值判断单元,用于判断每一帧CDiffG的每一个像素点的色度值是否大于与所述像素点对应的第五阈值;色度确定模块,用于将色度值大于所述第五阈值的像素点的色度精检测结果CFMF取1;还用于将色度值小于或等于所述第五阈值的像素点的CFMF取0;第三检测结果确定模块,用于根据所述每一帧LDiffG的每一个像素点的CFMF的取值,确定所述每一帧低动态范围图像的第三检测结果。
结合第八种可能的实现方式或第十种可能的实现方式,在第十一种可能的实现方式中,所述运动区域确定子模块包括:按位或运算单元,用于通过将所述每一帧低动态范围图像的每一个像素点的LFMF和CFMF按位进行或运算,确定所述每一帧低动态范围图像的运动区域。
结合第二方面或第一种可能的实现方式到第十一种可能的实现方式中的任意一种,在第十二种可能的实现方式中,所述图像矫正模块包括:亮度矫正模块,用于在亮度通道上,基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像;色度矫正模块,用于在色度通道上,对所述K帧低动态范围图像中的每一帧图像的运动区域进行色度矫正,生成所述K帧色度矫正图像;生成矫正图像模块,用于基于所述K帧亮度矫正图像及所述K帧色度矫正图像,生成所述K帧矫正图像。
结合第十二种可能的实现方式,在第十三种可能的实现方式中,所述亮度矫正模块,具体用于:基于参考图像,通过灰度直方图匹配算法,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度全局矫正,生成所述K帧亮度矫正图像。
结合第十二种可能的实现方式或第十三种可能的实现方式,在第十四种可能的实现方式中,所述色度矫正模块,包括:比较模块,用于获得所述K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的灰度比值,其中,所述灰度比值为所述每一个像素点在进行亮度矫正之后的灰度值与所述每一个像素点在进行亮度矫正之前的灰度值之比;生成模块,用于在色度通道上,将所述K帧亮度矫正图像中每一帧图像的运动区域上的每一个像素点的色度值与所述每一个像素点所对应的所述灰度比值相乘,生成所述K帧色度矫正图像。
第三方面,本发明提供一种终端,包括:存储器,用于存储针对一图像采集区域的曝光度不同的N帧低动态范围图像,其中,N为大于等于2的整数;处理器,与所述存储器连接,用于获得所述存储器中存储的所述N帧低动态范围图像;将所述N帧低动态范围图像中一帧低动态范围图像确定为参考图像;在剩余的N-1帧低动态范围图像中,确定K帧低动态范围图像中每一帧图像的运动区域,其中,K为大于0且小于等于N-1的整数;基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像;将所述参考图像及所述K帧矫正图像进行图像融合,生成一帧高动态范围图像。
结合第三方面,在第一种可能的实现方式中,所述处理器具体用于:对所述N帧低动态范围图像中的每一帧图像进行统计,获得与所述N帧低动态范围图像一一对应的N帧灰度直方图;根据所述N帧灰度直方图,将所述N帧低动态范围图像中灰度值分布最均匀的一帧图像确定为所述参考图像。
结合第三方面或第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述处理器还用于:在亮度通道上,基于所述参考图像,对所述N-1帧低动态范围图像的每一帧低动态范围图像进行曝光矫正,获得N-1帧低动态范围矫正图像;将所述N-1帧低动态范围矫正图像中的每一帧图像与所述参考图像作差,获得N-1帧亮度差异图像LDiffG。
结合第三种可能的实现方式,在第四种可能的实现方式中,所述处理器具体用于:通过对所述参考图像进行过曝检测,获得所述参考图像的过曝检测结果;通过对所述N-1帧LDiffG中的每一帧LDiffG图像进行检测,获得所述N-1帧低动态范围图像中的每一帧低动态范围图像的第一检测结果;根据所述过曝检测结果和所述每一帧低动态范围图像的第一检测结果的重合度,确定所述N-K-1帧待丢弃图像。
结合第四种可能的实现方式,在第五种可能的实现方式中,所述处理器具体用于:判断所述参考图像的每一个像素点的灰度值是否大于第一阈值,其中,所述第一阈值在亮度通道上与所述参考图像的每一个像素点一一对应;将灰度值大于所述第一阈值的像素点的过曝检测结果OEF取1;将灰度值小于或等于所述第一阈值的像素点的OEF取0;根据所述参考图像的每个像素点的OEF的取值,确定所述参考图像的过曝检测结果。
结合第四种可能的实现方式或第五种可能的实现方式,在第六种可能的实现方式中,所述处理器具体用于:判断所述每一帧LDiffG的每一个像素点的灰度值是否大于第二阈值,其中,所述第二阈值在亮度通道上与所述每一帧LDiffG的每一个像素点一一对应,且每一帧LDiffG的每一个所述第二阈值取值一致;将灰度值大于所述第二阈值的像素点的第一亮度检测结果LCMF取1;将灰度值小于或等于所述第二阈值的像素点的LCMF取0;根据所述每一帧LDiffG的每一个像素点的LCMF的取值,确定所述每一帧低动态范围图像的所述第一检测结果。
结合第四种可能的实现方式或第六种可能的实现方式,在第七种可能的实现方式中,所述处理器具体用于:将所述过曝检测结果中的OEF和所述每一帧低动态范围图像的第一检测结果中的LCMF分别按位进行与运算,获得N-1个运算结果;根据每一个运算结果中1的个数,判断与所述N-1个运算结果一一对应的N-1个帧低动态范围图像的每一帧图像的所述重合度是否大于第三阈值;将所述N-1帧低动态范围图像中所述重合度大于所述第三阈值的N-K-1帧低动态范围图像确定为所述N-K-1帧待丢弃图像。
结合第三方面或第一种可能的实现方式到第三种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述处理器还用于:在亮度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第二检测结果;在色度通道上,基于所述参考图像,通过对所述K帧低动态范围图像的每一帧低动态范围图像进行检测,确定所述每一帧低动态范围图像的第三检测结果;基于所述每一帧低动态范围图像的第二检测结果与所述第三检测结果,确定所述K帧低动态范围图像中每一帧低动态范围图像的运动区域。
结合第八种可能的实现方式,在第九种可能的实现方式中,所述处理器具体用于:在亮度通道上,判断所述K帧LDiffG中的每一帧LDiffG的每一个像素点灰度值是否大于第四阈值,其中,所述第四阈值在亮度通道上与所述每一帧LDiffG图像的每一个像素点一一对应,且所述每一帧LDiffG的每一个所述第四阈值取值不完全一致;将灰度值大于所述第四阈值的像素点的第二亮度检测结果LFMF取1;将灰度值小于或等于所述第四阈值的像素点的LFMF取0;根据所述每一帧LDiffG的每一个像素点的LFMF的取值,确定所述每一帧低动态范围图像的第二检测结果。
结合第八种可能的实现方式或第九种可能的实现方式,在第十种可能的实现方式中,所述处理器具体用于:在色度通道上,将所述K帧低动态范围图像的每一帧低动态范围图像与所述参考图像作差,获得K帧色度差异图像CDiffG;判断每一帧CDiffG的每一个像素点的色度值是否大于与所述像素点对应的第五阈值;将色度值大于所述第五阈值的像素点的色度检测结果CFMF取1;将色度值小于或等于所述第五阈值的像素点的CFMF取0;根据所述每一帧LDiffG的每一个像素点的CFMF的取值,确定所述每一帧低动态范围图像的第三检测结果。
结合第八种可能的实现方式或第十种可能的实现方式,在第十一种可能的实现方式中,所述处理器具体用于:通过将所述每一帧低动态范围图像的每一个像素点的LFMF和CFMF按位进行或运算,确定所述每一帧低动态范围图像的运动区域。
结合第三方面或第一种可能的实现方式到第十一种可能的实现方式中的任意一种,在第十二种可能的实现方式中,所述处理器还用于:在亮度通道上,基于所述参考图像,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像;在色度通道上,对所述K帧低动态范围图像中的每一帧图像的运动区域进行色度矫正,生成所述K帧色度矫正图像;基于所述K帧亮度矫正图像及所述K帧色度矫正图像,生成所述K帧矫正图像。
结合第十二种可能的实现方式,在第十三种可能的实现方式中,所述处理器具体用于:基于参考图像,通过灰度直方图匹配算法,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度全局矫正,生成所述K帧亮度矫正图像。
结合第十二种可能的实现方式或第十三种可能的实现方式,在第十四种可能的实现方式中,所述处理器具体用于:获得所述K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的灰度比值,其中,所述灰度比值为所述每一个像素点在进行亮度矫正之后的灰度值与所述每一个像素点在进行亮度矫正之前的灰度值之比;在色度通道上,将所述K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的色度值与所述每一个像素点所对应的所述灰度比值相乘,生成所述K帧色度矫正图像。
本发明有益效果如下:
在本发明实施例中,针对一图像采集区域,分别获得曝光度不同的N帧LDR图像,然后,在这N帧LDR图像中确定一帧为参考图像,接下来,在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,并根据参考图像,对其进行矫正,使得矫正后的每一帧LDR图像中的运动区域与参考图像中的运动区域一致,那么,最后由矫正后的K帧矫正图像与参考图像进行图像融合后所生成的一帧高动态范围图像就不会出现鬼影了,这样就消除了高动态范围图像中的“鬼影”,更好的提升了高动态范围图像的质量。
附图说明
图1为现有技术中的原始图像合成的高动态范围图像;
图2为本发明实施例中生成高动态范围图像的方法的流程图;
图3为本发明实施例中确定待丢弃图像的方法的流程图;
图4为本发明实施例中确定低动态范围图像的运动区域的方法的流程图;
图5为本发明实施例中亮度检测中b(z)函数曲线图;
图6为本发明实施例中色度检测动态阈值曲线图;
图7为本发明实施例中采用3帧低动态范围图像生成高动态范围图像的方法的流程图;
图8为本发明实施例中的生成高动态范围图像的装置的功能框图;
图9为本发明实施例中的终端的结构示意图。
具体实施方式
本申请实施例通过提供一种生成高动态范围图像的方法、装置,针对一图像采集区域,分别获得曝光度不同的N帧LDR图像,然后,在这N帧LDR图像中确定一帧为参考图像,接下来,在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,并根据参考图像,对其进行矫正,使得矫正后的每一帧LDR图像中的运动区域与参考图像中的运动区域一致,那么,最后由矫正后的K帧矫正图像与参考图像进行图像融合后所生成的一帧高动态范围图像就不会出现鬼影了,这样就消除了高动态范围图像中的“鬼影”,更好的提升了高动态范围图像的质量。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图对本发明优选的实施方式进行详细说明。
实施例一
本发明一实施例提供一种生成高动态范围图像的方法,如图2所示,该方法包括:
步骤201:针对一图像采集区域,获得曝光度不同的N帧LDR图像,其中,N为大于等于2的整数。
在本实施例中,上述N帧曝光度不同的LDR图像可以由生成高动态范围图像的电子设备装置上的图像采集装置获得,比如,先由手机上的摄像头中设置的CCD、CMOS等感光元件获得图像信号,再将这些图像信号传输给图像信号处理器(ISP,Image Signal Processor),由ISP对图像信号进行预处理,生成上述N帧LDR图像,接下来,将这N帧LDR图像传输给手机上生成HDR图像的装置(例如处理器),将这些图像处理以生成HDR图像;或者由单反相机镜头中设置的CCD、CMOS等感光元件获得图像信号,再将这些图像信号传输给ISP,由ISP对图像信号进行预处理,生成上述N帧LDR图像,并以此生成HDR图像,当然,还可以由独立的图像采集设备获得上述N帧LDR图像,再将这些图像传输给生成HDR图像的装置,比如,由单反相机或者手机的摄像头中的感光元件以及ISP获得上述N帧LDR图像,并将其输出给笔记本电脑,或者其他手机、单反相机等。
在实际应用中,上述N帧LDR图像是针对同一图像采集区域的曝光度不同的N张LDR图像,也就是说,手机或者单反相机的取景框对准同一个区域,在用户按下快门之后,在很短的时间内,如0.1s~0.5s内,控制快门快速开关N次,每次快门的通光量不同,可以获得不同曝光度的N帧LDR图像。
在具体实施过程中,上述N帧LDR图像的具体曝光值,可以是手机、平板电脑或者单反相机等电子设备根据实际的拍摄模式和/或用户设定的曝光值来确定。
以上几种方式只是为了介绍本发明而给出的几种具体的实施例,并不能说明本发明中为获得上述N帧LDR图像只能采取以上几种方式来实现。事实上,凡是能够获得上述N帧LDR图像均在本发明的保护范围之内。
步骤202:将N帧LDR图像中一帧LDR图像确定为参考图像。
在具体实施过程中,步骤202具体为:对N帧LDR图像中的每一帧图像进行统计,获得与N帧LDR图像一一对应的N帧灰度直方图;根据N帧灰度直方图,将N帧LDR图像中灰度值分布最均匀的一帧图像确定为参考图像。
步骤203:在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,其中,K为大于0且小于等于N-1的整数。
上述K帧LDR图像即为待矫正图像,其中,K可以取(0,N-1]之间的整数,例如,K取1,K取2,K取N-1。
步骤204:基于参考图像,对K帧LDR图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像。
步骤205:将参考图像及K帧矫正图像进行图像融合,生成一帧高动态范围图像。
通过上述步骤可以看出,针对一图像采集区域,分别获得曝光度不同的N帧LDR图像,然后,在这N帧LDR图像中确定一帧为参考图像,接下来,在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,并根据参考图像,对其进行矫正,使得矫正后的每一帧LDR图像中的运动区域与参考图像中的运动区域一致,那么,最后由矫正后的K帧矫正图像与参考图像进行图像融合后所生成的一帧高动态范围图像就可以不会出现鬼影了,这样就可以消除高动态范围图像中的“鬼影”,更好的提升了高动态范围图像的质量。
在具体实施过程中,在N-1帧LDR图像中,可能会有部分LDR图像的运动区域是无法被完全矫正的,那么,如果在合成高动态范围图像时,仍使用这些无法被完全矫正的图像的话,合成之后的高动态范围图像还是会有“鬼影”出现。
所以,在本实施例中,在步骤202之后,且在步骤203之前,该生成高动态范围图像的方法还包括:在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像,这里所说的N-K-1帧待丢弃图像即为上述无法被完全矫正的图像。
在另一实施例中,在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像的步骤还可以与步骤203并行执行。
此时,若经过检测,发现没有需要丢弃的LDR图像,那么,N-K-1=0,即K=N-1,此时,待矫正图像为N-1帧;若经过检测,确定有N-K-1帧LDR图像需要丢弃,即存在N-K-1帧待丢弃图像,那么,N-K-1≠0,即K≠N-1,此时,待矫正图像为K帧,K为(0,N-1)之间的整数。
需要说明的是,为了合成高动态范围图像,用于合成的LDR图像至少为2帧,所以,当N为2时,K也为2,就无需进行在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像的步骤,直接在步骤202之后,进入步骤203。
进一步,在进行在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像的步骤之前,如图3所示,该生成高动态范围图像的方法还包括:
步骤301:在亮度通道上,基于参考图像,对N-1帧LDR图像的每一帧LDR图像进行曝光矫正,获得N-1帧LDR矫正图像。
在本实施例中,对于N-1帧LDR图像的每一帧LDR图像,在亮度通道上,先基于参考图像,对其进行曝光矫正,使得矫正后的N-1帧LDR图像的曝光更为均匀。
例如,以N-1帧LDR图像中的第i帧LDR图像为例,其他帧LDR图像均进行相同处理处理。即,通过公式(1),对第i帧LDR图像进行曝光矫正,获得第i帧LDR矫正图像。
其中,Hc,i(z)表示从参考图像到第i帧LDR图像的第i帧LDR矫正图像;
表示第i帧LDR图像每个像素点的灰度值;
表示参考图像每个像素点的灰度值;
z为每帧LDR图像的每个像素点的灰度值。
在实际应用中,还可以采用其他方法对N-1帧LDR图像基于参考图像进行曝光矫正,本申请不做具体限定。
步骤302:将N-1帧LDR矫正图像中的每一帧图像与参考图像作差,获得N-1帧亮度差异图像LDiffG(Light Different Graph)。
需要说明的是,由于参考图像与N-1帧LDR图像的像素点数量一致,所以,N-1帧LDR矫正图像与参考图像的像素数量也一致,可以一一对应进行作差。
例如,第i帧LDR矫正图像有M个像素点,M为大于等于1的整数,对于每个像素点的灰度值,按照公式(2),计算出与其一一对应的权重值,然后,通过公式(3),将第i帧LDR矫正图像的每一个像素点与参考图像的同一位置像素点的灰度值作差,得到M个灰度差值,这些差值组成第i帧LDiffG,那么,在该帧LDiffG上每一个像素点的灰度值LDff就是该像素点对应的灰度差值。较优的,为了降低LDiffG的噪声干扰,可以对其进行低通滤波。
其中,w(z)表示第i帧LDR矫正图像对应的权重函数;
z为第i帧LDR矫正图像的每个像素点的灰度值。
其中,zc表示参考图像的像素点的灰度值,zi表示第i帧LDR矫正图像的像素点的灰度值,LDff(Light Difference)表示在LDiffG上像素点的灰度值,即在参考图像与第i帧LDR矫正图像上位置相同的两个像素点的灰度差值。
在本实施例中,N-1帧LDR图像中的每一帧LDR图像的曝光矫正,以及获得LDiffG的过程均与上述第i帧LDR图像一致,在此不再一一赘述。
那么,在获得N-1帧LDiffG之后,在进行在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像的步骤包括:
步骤303:通过对参考图像进行过曝检测,获得参考图像的过曝检测结果。
具体的,判断参考图像的每一个像素点的灰度值是否大于第一阈值,其中,第一阈值在亮度通道上与参考图像的每一个像素点一一对应;将灰度值大于第一阈值的像素点的过曝检测结果OEF(Over Exposed Field)取1;将灰度值小于或等于第一阈值的像素点的OEF取0;根据参考图像的每个像素点的OEF的取值,确定参考图像的过曝检测结果。
在本实施例中,第一阈值的取值范围为240~245。
例如,将参考图像每一个像素点的灰度值zc与预设的第一阈值T1比较,判断zc是否大于T1,若zc>T1,该像素点的OEF=1,即该像素点过曝;若zc≤T1,该像素点的OEF=0,即该像素点没有过曝,由于参考图像有M个像素点,就会获得M个OEF,将这M个OEF的值确定为参考图像的过曝检测结果。
步骤304:通过对N-1帧LDiffG中的每一帧LDiffG图像进行检测,确定N-1帧LDR图像中的每一帧LDR图像的第一检测结果。
具体的,判断每一帧LDiffG的每一个像素点的灰度值是否大于第二阈值,其中,第二阈值在亮度通道上与每一帧LDiffG的每一个像素点一一对应;将灰度值大于第二阈值的像素点的第一亮度检测结果LCMF(Light Coarse MotionField)取1;将灰度值小于或等于第二阈值的像素点的LCMF取0;根据每一帧LDiffG的每一个像素点的LCMF的取值,确定每一帧LDR图像的第一检测结果。
在本实施例中,第二阈值的取值范围为5~25,但该值为同一实验条件下,通过大量实验获得实验数据,在实际应用中,不同的实验条件得到的第二阈值的取值也会不同,本领域技术人员可根据实际情况自行设定,本申请不做具体限定。
例如,仍以第i帧LDiffG为例,将该帧LDiffG的每一个像素点的LDff一一与预设的第二阈值T2比较,T2为定值,判断LDff是否大于T2,若LDff>T2,该像素点的LCMF=1;若LDff≤T2,该像素点的LCMF=0,将这M个LCMF的值确定为第i帧LDR图像的第一检测结果。对其他帧LDiffG图像也进行上述处理,即可获得N-1帧LDR图像中的每一帧LDR图像的第一检测结果。
在本实施例中,步骤303和步骤304可以并行执行,也可以先后执行,例如,先执行步骤303,再执行步骤304,或者,先执行步骤304,再执行步骤303,本申请不做具体限定。
步骤305:根据过曝检测结果和每一帧LDR图像的第一检测结果的重合度,确定N-K-1帧待丢弃图像。
需要特别说明的是,这里所说的过曝检测结果和每一帧LDR图像的第一检测结果的重合度是指:在每一帧LDR图像的第一检测结果中,与参考图像上OEF=1的像素点具有相同位置的像素点的LCMF的值也取1的像素点的个数占整幅图像像素点个数的百分比,也就是说,在每一帧LDR图像上,即满足该像素点的LCMF=1,又满足在参考图像上与该点位置相同的像素点的OEF=1的像素点的个数占整幅图像的百分比,即为上述重合度。
具体的,将过曝检测结果中的OEF和每一帧LDR图像的第一检测结果中的LCMF分别按位进行与运算,获得N-1个运算结果;根据每一个运算结果中1的个数,判断与N-1个运算结果一一对应的N-1个帧LDR图像的每一帧图像的上述重合度是否大于第三阈值;将N-1帧LDR图像中重合度大于第三阈值的N-K-1帧LDR图像确定为N-K-1帧待丢弃图像。
在本实施例中,较优的,第三阈值的取值可以为0.2%,但该值为同一实验条件下,通过大量实验获得实验数据,在实际应用中,不同的实验条件得到的第三阈值的取值也会不同,本领域技术人员可根据实际情况自行设定,本申请不做具体限定。
例如,将在参考图像与第i帧LDR图像中位置相同的像素点的OEF与LCMF一一进行与运算,获得第i个运算结果,然后,将该运算结果中“1”的个数OLA(Over Lap Area)与第三阈值T3进行比较,以判断参考图像的过曝检测结果和第i帧LDR图像的第一检测结果之间的重合度是否大于T3,若OLA>T3时,认为参考图像的过曝检测结果和第i帧LDR图像的第一检测结果之间的重合度大于T3,即在第i帧LDR图像上与参考图像的过曝区域对应的区域发生运动,如果将这帧图像用于生成高动态范围图像,融合后的高动态范围图像就会出现“鬼影”,所以,将该帧LDR图像确认为待丢弃图像;反之,若OLA≤T3时,认为参考图像的过曝检测结果和第i帧LDR图像的第一检测结果之间的重合度小于等于T3,即在第i帧LDR图像上与参考图像的过曝区域对应的区域没有发生运动,将第i帧LDR图像确定为待矫正图像。对其他帧的LDR图像也进行上述处理,即可获得N-K-1帧待丢弃图像。
在本实施例中,步骤303~步骤305可以与步骤203并行执行,较优的,在确定了N-K-1帧待丢弃图像,即执行步骤303~305之后,将这些图像丢弃,对于剩下的K帧图像,也就是K帧待矫正图像进行矫正,也就是执行步骤203。
此时,如图4所示,步骤203具体包括:
步骤401:在亮度通道上,基于参考图像,通过对K帧LDR图像的每一帧LDR图像进行检测,确定每一帧LDR图像的第二检测结果。
具体的,在亮度通道上,判断K帧LDiffG中的每一帧LDiffG的每一个像素点灰度值是否大于第四阈值,其中,第四阈值在亮度通道上与每一帧LDiffG图像的每一个像素点一一对应,且每一帧LDiffG的每一个第四阈值取值不完全一致;将灰度值大于第四阈值的像素点的第二亮度检测结果LFMF(LightFine Motion Field)取1;将灰度值小于或等于第四阈值的像素点的LFMF取0;根据每一帧LDiffG的每一个像素点的LFMF的取值,确定每一帧LDR图像的第二检测结果。
例如,对于剩下的K帧LDR图像所对应的K帧LDiffG,仍以第i帧LDiffG为例,在亮度通道上,判断第i帧LDiffG的每一个像素点的灰度值LDff是否大于第四阈值T4,T4为一动态值,也就是说,一个像素点对应一个T4,但是对于不同的像素值,T4的取值不完全相同,需要通过公式(4)来确定。
其中,a的取值范围为0.05~0.2,b(z)为如图5所示的曲线。
若LDff>T4时,该像素点的LFMF=1;若LDff≤T4时,该像素点的LFMF=0,将这M个LFMF确定为第i帧LDR图像的第二检测结果,对其他帧LDR图像也进行上述处理,即可确定N-1帧LDR图像中的每一帧LDR图像的第二检测结果。
步骤402:在色度通道上,基于参考图像,通过对K帧LDR图像的每一帧LDR图像进行检测,确定每一帧LDR图像的第三检测结果。
具体的,与在亮度通道上一致,先在色度通道上,将K帧LDR图像的每一帧LDR图像与参考图像作差,获得K帧色度差异图像CDiffG(Color DifferentGraph);判断每一帧CDiffG的每一个像素点的色度值是否大于与像素点对应的第五阈值;将色度值大于第五阈值的像素点的色度检测结果CFMF(ColorFine Motion Field)取1;将色度值小于或等于第五阈值的像素点的CFMF取0;根据每一帧LDiffG的每一个像素点的CFMF的取值,确定每一帧LDR图像的第三检测结果。这里所说的色度值,即为每个像素点在色度通道上的值。
例如,在色度通道上,将第i帧LDR图像与参考图像作差,也就是将第i帧LDR图像与参考图像上同一位置的像素点的两个色度值进行作差,获得M个色度差值,这些色度差值组成第i帧CDiffG,在该帧CDiffG上每一个像素点的色度值CDff(Color Difference)即为与该点对应的色度差值,具体的作差过程与步骤302类似,在此不再赘述。然后,将第i帧CDiffG的每一个像素点的CDff一一与预设的第五阈值T5比较,T5为动态值,判断CDff是否大于T5,若CDff>T5,该像素点的LFMF=1;若CDff≤T5,该像素点的LFMF=0,将这M个LFMF确定为第i帧LDR图像的第三检测结果,对其他帧的LDR图像也进行上述处理,即可获得N-1帧LDR图像中的每一帧LDR图像的第三检测结果。
其中,T5为动态值,一个像素点对应一个T5,那么,每一个像素点对应的T5可以通过以下步骤获得:
A:在第i帧LDR图像上位置为(x,y)的第s个像素点与参考图像上位置为(x,y)的第h个像素点中取zmax,即亮度最大值;
B:将经过如图6所示的色度检测动态阈值曲线映射得到色度通道上的第s个像素点的色度阈值,即T5。
在本实施例中,步骤401和步骤402还可以并行执行,或者以先执行步骤402,后执行步骤401的顺序进行。
步骤403:基于每一帧LDR图像的第二检测结果与第三检测结果,确定K帧LDR图像中每一帧LDR图像的运动区域。
具体的,通过将每一帧LDR图像的每一个像素点的LFMF和CFMF按位进行或运算,确定每一帧LDR图像的运动区域。即获得每一个像素点的运动区域检测结果FMF(Fine Motion Field),当FMF=1时,认为该像素点发生运动;当FMF=0时,认为该像素点静止。那么,FMF=1的像素点所组成的区域即为该帧LDR图像的运动区域。对其他帧的LDR图像也进行上述处理,即可确定N-1帧LDR图像中的每一帧LDR图像的运动区域。
在确定了N-1帧LDR图像的每一帧LDR图像的运动区域之后,进入步骤204:基于参考图像,对K帧LDR图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像。
具体的,在亮度通道上,基于参考图像,对K帧低动态范围图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像;在色度通道上,对K帧低动态范围图像中的每一帧图像的运动区域进行色度矫正,生成K帧色度矫正图像;基于K帧亮度矫正图像及K帧色度矫正图像,生成K帧矫正图像。
首先,介绍亮度矫正。
可选的,基于参考图像,通过灰度直方图匹配算法,对所述K帧低动态范围图像中每一帧图像的运动区域进行亮度全局矫正,生成所述K帧亮度矫正图像。
例如,根据第i帧LDR图像的FMF,将该帧LDR图像对应的第i帧LDR图像分为运动区域和静止区域。采用灰度直方图匹配算法获取的全局矫正曲线,即公式(1)对第i帧LDR矫正图像的运动区域进行亮度矫正,使得矫正后的第i帧LDR图像与参考图像的运动区域一致。对其他帧的LDR图像也进行上述处理,这样,就能够获得K帧亮度矫正图像。
为了更为精准的对运动区域进行矫正,还可以进行色度通道上的色度矫正。
可选的,获得K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的灰度比值,其中,灰度比值为每一个像素点在进行亮度矫正之后的灰度值与每一个像素点在进行亮度矫正之前的灰度值之比;在色度通道上,将K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的色度值与每一个像素点所对应的灰度比值相乘,生成K帧色度矫正图像。
例如,在对亮度通道运动区域的进行矫正时,记录每一帧LDR图像的每一个像素的灰度值在矫正后与矫正前的比值,即ratio=矫正后灰度值/矫正前灰度值,然后,在色度通道上,将K帧LDR图像中每一帧LDR图像的每一个像素点的色度值与该像素点的ratio相乘,得到的即为该像素点矫正后的色度值。例如,第i帧LDR图像的第s个像素点的色度值为C,那么,该像素点的色度矫正值C′=C×ratio。对其他帧的LDR图像也进行上述处理,这样,就能够获得K帧色度矫正图像。
在实际应用中,在获得上述灰度比值之后,还可以对上述灰度比值进行调整,得到符合用户实际需求的灰度比值,本申请不做具体限定。
进一步,在进行上述两个通道的矫正后,根据K帧亮度矫正图像和K帧色度矫正图像,就能够获得与K帧低动态范围图像一一对应的K帧矫正图像。例如,根据第i帧的亮度矫正图像和第i帧的色度矫正图像,获得的就是第i帧矫正图像。
步骤205:将参考图像及K帧矫正图像进行图像融合,生成一帧高动态范围图像。
下面以具体实例来对上述实施例中的技术方案进行详细阐述。
请参考图7,例如,手机上的摄像头针对同一图像采集区域快速拍摄了3帧曝光度不同的LDR图像,分别为低曝光LDR图像、中曝光LDR图像以及高曝光LDR图像,每一帧图像像素点个数一样,假设为5×5个。
步骤701:获得低曝光LDR图像、中曝光LDR图像以及高曝光LDR图像。
步骤702:将3帧LDR图像中的中曝光LDR图像确定为参考图像。
对上述3帧LDR图像分别进行统计,获得与其一一对应的3帧灰度直方图,并将其中灰度值分布最均匀的一帧图像,即中曝光LDR图像确定为参考图像。
下面详细描述对低曝光LDR图像的矫正流程,对高曝光LDR图像的矫正流程与对低曝光LDR图像的矫正流程一致。
步骤703:根据中曝光LDR图像,对低曝光LDR图像进行曝光矫正,获得低曝光LDR矫正图像。
采用公式(1),基于中曝光LDR图像,对低曝光LDR图像进行曝光矫正。
步骤704:将低曝光LDR矫正图像与中曝光LDR图像作差,获得1帧LDiffG(mid,low)。
步骤705:通过对中曝光LDR图像进行过曝检测,获得中曝光LDR图像的过曝检测结果。
将中曝光LDR图像每一个像素点的灰度值zmid与预设的T1比较,假如,T1=242,判断zmid是否大于T1,若zmid>242,该像素点的OEF=1;若zmid≤242,该像素点的OEF=0,这样就会获得25个OEF的值,将这些OEF值确定为参考图像的过曝检测结果。
步骤706:通过对LDiffG(mid,low)进行检测,获得低曝光LDR图像的第一检测结果。
将LDiffG(mid,low)的每一个像素点的LDff一一与预设的第二阈值T2比较,假如,T2=10,判断每一个LDff是否大于T2,若LDff>10,该像素点的LCMF=1;若LDff≤10,该像素点的LCMF=0,将这25个LCMF的值确定为低曝光LDR图像的第一检测结果。
步骤707:根据中曝光LDR图像的过曝检测结果和低曝光LDR图像的第一检测结果的重合度,确定低曝光LDR图像是否为待丢弃图像。若低曝光LDR图像为待矫正图形,进入步骤708;反之,结束流程。
将过曝检测结果中的OEF和第一检测结果中的LCMF按位进行与运算,获得一运算结果,根据该运算结果中“1”的个数OLA,判断上述重合度是否大于T3,例如,T3=0.2%,若OLA>0.2%时,就认为中曝光LDR图像的OEF和低曝光LDR图像的LCMF之间的重合度大于0.2%,就确定低曝光LDR图像为待丢弃图像;反之,若OLA≤0.2%时,就确定低曝光LDR图像为待矫正图像。
步骤708:在亮度通道上,基于中曝光LDR图像,通过对低曝光LDR图像进行检测,确定低曝光LDR图像的第二检测结果。
在亮度通道上,通过公式(4)确定低曝光LDR图像每一个像素点所对应的T4,判断LDiffG(mid,low)的每一个像素点的灰度值LDff是否大于T4,若LDff>T4时,该像素点的LFMF=1;若LDff≤T4时,该像素点的LFMF=0,将这25个LFMF的值确定为低曝光LDR图像的第二检测结果。
步骤709:在色度通道上,基于中曝光LDR图像,通过对低曝光LDR图像进行检测,确定低曝光LDR图像的第三检测结果。
在色度通道上,将低曝光LDR图像与中曝光LDR图像的色度值作差,获得低曝光LDR图像与中曝光LDR图像的CDiffG(mid,low),然后,将CDiffG(mid,low)的每一个像素点的CDff一一与该像素点对应的T5比较,T5是通过步骤A~B获得的,若CDff>T5,该像素点的LFMF=1;若CDff≤T5,该像素点的LFMF=0,将这25个LFMF确定为低曝光LDR图像的第三检测结果。
步骤710:基于低曝光LDR图像的第二检测结果与第三检测结果,确定低曝光LDR图像的运动区域。
通过将低曝光LDR图像的第二检测结果中的LFMF和第三检测结果中的CFMF按位进行或运算,得到根据FMF的值,确定低曝光LDR图像的运动区域,即FMF=1的区域。
对高曝光LDR图像执行上述步骤601~步骤610。
若低曝光LDR图像和高曝光LDR图像均为待矫正图像,则K=2,即有2帧待矫正图像;若低曝光LDR图像和高曝光LDR图像中有一帧图像为待丢弃图像,另一帧为待矫正图像,则K=1,即只有1帧待矫正图像。假设,低曝光LDR图像和高曝光LDR图像均为待矫正图像。
步骤711:基于中曝光LDR图像,分别对低曝光LDR图像和高曝光LDR图像的运动区域进行亮度矫正和色度矫正,生成低曝光矫正图像和高曝光矫正图像。
步骤712:将中曝光LDR图像、低曝光矫正图像及高曝光矫正图像进行图像融合,生成一帧高动态范围图像。
当然,若低曝光LDR图像为待丢弃图像,且高曝光LDR图像为待矫正图像,则将中曝光LDR图像和高曝光矫正图像进行图像融合,生成高动态范围图像;若低曝光LDR图像为待矫正图像,且高曝光LDR图像为待丢弃图像,则将中曝光LDR图像和低曝光矫正图像进行图像融合,生成高动态范围图像。
实施例二:
基于同一设计思路,本发明实施例还提供一种生成高动态范围图像的装置,请参考图8,该装置包括:LDR图像获得模块801,用于针对一图像采集区域,获得曝光度不同的N帧LDR图像,其中,N为大于等于2的整数;参考图像确定模块802,用于将N帧LDR图像中一帧LDR图像确定为参考图像;运动区域确定模块803,用于在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,其中,K为大于0且小于等于N-1的整数;图像矫正模块804,用于基于参考图像,对K帧LDR图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像;HDR图像生成模块805,用于将参考图像及K帧矫正图像进行图像融合,生成一帧HDR图像。
在本实施例中,上述N帧曝光度不同的LDR图像可以由生成HDR图像的电子设备上的图像采集装置获得,比如,在手机上的摄像头采集上述N帧LDR图像后,再将这些图像传输给手机上生成HDR图像的装置,将这些图像处理以生成HDR图像,或者单反相机采集上述N帧LDR图像,并以此生成HDR图像,当然,还可以由独立的图像采集设备获得上述N帧LDR图像,再将这些图像传输给生成HDR图像的装置,比如,由单反相机或者手机的摄像头采集上述N帧LDR图像,并将其输出给笔记本电脑,或者其他手机、单反相机等。
进一步,参考图像确定模块802包括:灰度统计模块,用于N帧LDR图像中的每一帧图像进行统计,获得与N帧LDR图像一一对应的N帧灰度直方图;参考图像选择模块,用于根据N帧灰度直方图,将N帧LDR图像中灰度值分布最均匀的一帧图像确定为参考图像。
在具体实施过程中,在N-1帧LDR图像中,可能会有部分LDR图像的运动区域是无法被完全矫正的,那么,如果在合成HDR图像时,仍使用这些无法被完全矫正的图像的话,合成之后的HDR图像还是会有“鬼影”出现。
较佳的,该装置还包括:待丢弃图像确定模块,用于在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像。
较佳的,该装置还包括:曝光矫正模块,用于在亮度通道上,基于参考图像,对N-1帧LDR图像的每一帧LDR图像进行曝光矫正,获得N-1帧LDR矫正图像;亮度差异图像获得模块,用于将N-1帧LDR矫正图像中的每一帧图像与参考图像作差,获得N-1帧亮度差异图像LDiffG。
进一步,待丢弃图像确定模块包括:过曝检测模块,用于对参考图像进行过曝检测,获得参考图像的过曝检测结果;第一图像亮度检测模块,用于通过N-1帧LDiffG中的每一帧LDiffG图像进行检测,获得N-1帧LDR图像中的每一帧LDR图像的第一检测结果;重合度确定模块,用于根据过曝检测结果和每一帧LDR图像的第一检测结果的重合度,确定N-K-1帧待丢弃图像。
进一步,过曝检测模块包括:第一阈值判断模块,用于判断参考图像的每一个像素点的灰度值是否大于第一阈值,其中,第一阈值在亮度通道上与参考图像的每一个像素点一一对应;过曝确定模块,用于将灰度值大于第一阈值的像素点的过曝检测结果OEF取1;还用于将灰度值小于或等于第一阈值的像素点的OEF取0;过曝检测结果确定模块,用于根据参考图像的每个像素点的OEF的取值,确定参考图像的过曝检测结果。
进一步,第一图像亮度检测模块包括:第二阈值判断模块,用于判断每一帧LDiffG的每一个像素点的灰度值是否大于第二阈值,其中,第二阈值在亮度通道上与每一帧LDiffG的每一个像素点一一对应,且每一帧LDiffG的每一个第二阈值取值一致;第一亮度确定模块,用于将灰度值大于第二阈值的像素点的第一亮度检测结果LCMF取1;还用于将灰度值小于或等于第二阈值的像素点的LCMF取0;第一检测结果确定模块,用于根据每一帧LDiffG的每一个像素点的LCMF的取值,确定每一帧LDR图像的第一检测结果。
进一步,重合度确定模块包括:与运算模块,用于将过曝检测结果中的OEF和每一帧LDR图像的第一检测结果中的LCMF分别按位进行与运算,获得N-1个运算结果;第三阈值判断模块,用于根据每一个运算结果中1的个数,判断与N-1个运算结果一一对应的N-1个帧LDR图像的每一帧图像的重合度是否大于第三阈值;待丢弃图像确定子模块,用于将N-1帧LDR图像中重合度大于第三阈值的N-K-1帧LDR图像确定为N-K-1帧待丢弃图像。
较佳的,运动区域确定模块803包括:第二图像亮度检测模块,用于在亮度通道上,基于参考图像,通过对K帧LDR图像的每一帧LDR图像进行检测,确定每一帧LDR图像的第二检测结果;图像色度检测模块,用于在色度通道上,基于参考图像,通过对K帧LDR图像的每一帧LDR图像进行检测,确定每一帧LDR图像的第三检测结果;运动区域确定子模块,用于基于每一帧LDR图像的第二检测结果与第三检测结果,确定K帧LDR图像中每一帧LDR图像的运动区域。
进一步,第二图像亮度检测模块包括:第四阈值判断模块,用于在亮度通道上,判断K帧LDiffG中的每一帧LDiffG的每一个像素点灰度值是否大于第四阈值,其中,第四阈值在亮度通道上与每一帧LDiffG图像的每一个像素点一一对应,且每一帧LDiffG的每一个第四阈值取值不完全一致;第二亮度确定模块,用于将灰度值大于第四阈值的像素点的第二亮度检测结果LFMF取1;还用于将灰度值小于或等于第四阈值的像素点的LFMF取0;第二检测结果确定模块,用于根据每一帧LDiffG的每一个像素点的LFMF的取值,确定每一帧LDR图像的第二检测结果。
进一步,图像色度检测模块包括:色度差异图像获得模块,用于在色度通道上,将K帧LDR图像的每一帧LDR图像与参考图像作差,获得K帧色度差异图像CDiffG;第五阈值判断单元,用于判断每一帧CDiffG的每一个像素点的色度值是否大于与像素点对应的第五阈值;色度确定模块,用于将色度值大于第五阈值的像素点的色度精检测结果CFMF取1;还用于将色度值小于或等于第五阈值的像素点的CFMF取0;第三检测结果确定模块,用于根据每一帧LDiffG的每一个像素点的CFMF的取值,确定每一帧LDR图像的第三检测结果。
进一步,运动区域确定子模块包括:按位或运算单元,用于通过将每一帧LDR图像的每一个像素点的LFMF和CFMF按位进行或运算,确定每一帧LDR图像的运动区域。
进一步,图像矫正模块804包括:亮度矫正模块,用于在亮度通道上,基于参考图像,对K帧LDR图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像;色度矫正模块,用于在色度通道上,对K帧LDR图像中的每一帧图像的运动区域进行色度矫正,生成K帧色度矫正图像;基于所述K帧亮度矫正图像及所述K帧色度矫正图像,生成所述K帧矫正图像。
较佳的,亮度矫正模块,具体用于:基于参考图像,通过灰度直方图匹配算法,对K帧LDR图像中每一帧图像的运动区域进行亮度全局矫正,生成K帧亮度矫正图像。
较佳的,色度矫正模块,包括:比较模块,用于获得K帧LDR图像中每一帧图像的运动区域上的每一个像素点的灰度比值,其中,灰度比值为每一个像素点在进行亮度矫正之后的灰度值与每一个像素点在进行亮度矫正之前的灰度值之比;生成模块,用于在色度通道上,将K帧LDR图像中每一帧图像的运动区域上的每一个像素点的色度值与每一个像素点所对应的灰度比值相乘,生成K帧色度矫正图像。
在以上各实施例中,在不冲突的情况下,可以相互组合实施。
前述图2实施例中的生成高动态范围图像的方法中的各种变化方式和具体实例同样适用于本实施例的生成高动态范围图像的装置,通过前述对生成高动态范围图像的方法的详细描述,本领域技术人员可以清楚的知道本实施例中生成高动态范围图像的装置的实施方法,所以为了说明书的简洁,在此不再详述。
实施例三:
本发明实施例提供一种终端90,该终端90可以为手机、平板电脑、单反相机、笔记本电脑等。
图9示出的是本发明实施例终端90的结构示意图。
请参考图9,该终端90包括:存储器901及处理器902,该存储器901用于存储针对一图像采集区域的曝光度不同的N帧LDR图像,其中,N为大于等于2的整数;该处理器902,与存储器901连接,用于获得上述存储器901种存储的N帧LDR图像;将N帧LDR图像中一帧LDR图像确定为参考图像;在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,其中,K为大于0且小于等于N-1的整数;基于参考图像,对K帧LDR图像中每一帧图像的运动区域进行矫正,生成K帧矫正图像;将参考图像及K帧矫正图像进行图像融合,生成一帧高动态范围图像。
在实际应用中,存储器901可以为终端90的内存,存储有由终端90或者其他终端采集的上述N帧LDR图像,那么,处理器902就可以从存储器901中读取上述N帧LDR图像。存储器901可以为NVRAM非易失存储器、DRAM动态随机存储器、SRAM静态随机存储器、Flash闪存等其中之一。
其中,在图9中,处理器902还可以与诸如I/O接口903、显示单元904、WiFi模块905、射频天线906之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
在本实施例中,终端90还可以包括:摄像头907和图像信号处理器908(ISP,Image Signal Processor)。该摄像头907中设置有CCD、CMOS等感光元件,由这些元件感光获得的图像信号可以传输给ISP908,由ISP908对图像信号进行预处理,生成上述N帧LDR图像,并保存在存储器901中,处理器902可以从存储器901中读取这N帧LDR图像。
在本实施例中,处理器902具体用于对N帧LDR图像中的每一帧图像进行统计,获得与N帧LDR图像一一对应的N帧灰度直方图;根据N帧灰度直方图,将N帧LDR图像中灰度值分布最均匀的一帧图像确定为参考图像。
进一步,处理器902还用于在亮度通道上,基于参考图像,对N-1帧LDR图像的每一帧LDR图像进行曝光矫正,获得N-1帧LDR矫正图像;将N-1帧LDR矫正图像中的每一帧图像与参考图像作差,获得N-1帧亮度差异图像LDiffG。
在本实施例中,处理器902还用于在亮度通道上,基于参考图像,对N-1帧LDR图像中的每一帧图像进行检测,确定N-K-1帧待丢弃图像。
较佳的,处理器902具体用于通过对参考图像进行过曝检测,获得参考图像的过曝检测结果;通过对N-1帧LDiffG中的每一帧LDiffG图像进行检测,获得N-1帧LDR图像中的每一帧LDR图像的第一检测结果;根据过曝检测结果和每一帧LDR图像的第一检测结果的重合度,确定N-K-1帧待丢弃图像。
进一步,处理器902具体用于判断参考图像的每一个像素点的灰度值是否大于第一阈值,其中,第一阈值在亮度通道上与参考图像的每一个像素点一一对应;将灰度值大于第一阈值的像素点的过曝检测结果OEF取1;将灰度值小于或等于第一阈值的像素点的OEF取0;根据参考图像的每个像素点的OEF的取值,确定参考图像的过曝检测结果。
进一步,处理器902具体用于判断每一帧LDiffG的每一个像素点的灰度值是否大于第二阈值,其中,第二阈值在亮度通道上与每一帧LDiffG的每一个像素点一一对应,且每一帧LDiffG的每一个第二阈值取值一致;将灰度值大于第二阈值的像素点的第一亮度检测结果LCMF取1;将灰度值小于或等于第二阈值的像素点的LCMF取0;根据每一帧LDiffG的每一个像素点的LCMF的取值,确定每一帧LDR图像的第一检测结果。
进一步,处理器902具体用于将过曝检测结果中由过曝确定模块确定的OEF和每一帧LDR图像的第一检测结果中由第一亮度确定模块确定的LCMF分别按位进行与运算,获得N-1个运算结果;根据每一个运算结果中1的个数,判断与N-1个运算结果一一对应的N-1个帧LDR图像的每一帧图像的重合度是否大于第三阈值;将N-1帧LDR图像中重合度大于第三阈值的N-K-1帧LDR图像确定为N-K-1帧待丢弃图像。
在本实施例中,处理器902还用于在亮度通道上,基于参考图像,通过对K帧LDR图像的每一帧LDR图像进行检测,确定每一帧LDR图像的第二检测结果;在色度通道上,基于参考图像,通过对K帧LDR图像的每一帧LDR图像进行检测,确定每一帧LDR图像的第三检测结果;基于每一帧LDR图像的第二检测结果与第三检测结果,确定K帧LDR图像中每一帧LDR图像的运动区域。
进一步,处理器902具体用于在亮度通道上,判断K帧LDiffG中的每一帧LDiffG的每一个像素点灰度值是否大于第四阈值,其中,第四阈值在亮度通道上与每一帧LDiffG图像的每一个像素点一一对应,且每一帧LDiffG的每一个第四阈值取值不完全一致;将灰度值大于第四阈值的像素点的第二亮度检测结果LFMF取1;将灰度值小于或等于第四阈值的像素点的LFMF取0;根据每一帧LDiffG的每一个像素点的LFMF的取值,确定每一帧LDR图像的第二检测结果。
进一步,处理器902具体用于在色度通道上,将K帧LDR图像的每一帧LDR图像与参考图像作差,获得K帧色度差异图像CDiffG;判断每一帧CDiffG的每一个像素点的色度值是否大于与像素点对应的第五阈值;将色度值大于第五阈值的像素点的色度检测结果CFMF取1;将色度值小于或等于第五阈值的像素点的CFMF取0;根据每一帧LDiffG的每一个像素点的CFMF的取值,确定每一帧LDR图像的第三检测结果。
进一步,处理器902具体用于通过将每一帧LDR图像的每一个像素点的LFMF和CFMF按位进行或运算,确定每一帧LDR图像的运动区域。
进一步,处理器902还用于在亮度通道上,基于参考图像,对K帧低动态范围图像中每一帧图像的运动区域进行亮度矫正,生成K帧亮度矫正图像;在色度通道上,对K帧低动态范围图像中的每一帧图像的运动区域进行色度矫正,生成K帧色度矫正图像;基于所述K帧亮度矫正图像及所述K帧色度矫正图像,生成所述K帧矫正图像。
较佳的,处理器902具体用于基于参考图像,通过灰度直方图匹配算法,对K帧低动态范围图像中每一帧图像的运动区域进行亮度全局矫正,生成K帧亮度矫正图像。
较佳的,处理器902具体用于获得K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的灰度比值,其中,灰度比值为每一个像素点在进行亮度矫正之后的灰度值与每一个像素点在进行亮度矫正之前的灰度值之比;在色度通道上,将K帧低动态范围图像中每一帧图像的运动区域上的每一个像素点的色度值与每一个像素点所对应的灰度比值相乘,生成K帧色度矫正图像。
在以上各实施例中,在不冲突的情况下,可以相互组合实施。
前述图2实施例中的生成高动态范围图像的方法中的各种变化方式和具体实例同样适用于本实施例的生成高动态范围图像的装置,通过前述对生成高动态范围图像的方法的详细描述,本领域技术人员可以清楚的知道本实施例中生成高动态范围图像的装置的实施方法,所以为了说明书的简洁,在此不再详述。
在本发明实施例中,针对一图像采集区域,分别获得曝光度不同的N帧LDR图像,然后,在这N帧LDR图像中确定一帧为参考图像,接下来,在剩余的N-1帧LDR图像中,确定K帧LDR图像中每一帧图像的运动区域,并根据参考图像,对其进行矫正,使得矫正后的每一帧LDR图像中的运动区域与参考图像中的运动区域一致,那么,最后由矫正后的K帧矫正图像与参考图像进行图像融合后所生成的一帧高动态范围图像就不会出现鬼影了,更好的提升了高动态范围图像的质量。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。