一种显示预览图像的方法及设备转让专利

申请号 : CN201410034997.2

文献号 : CN104811601B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李兵闫三峰周长生刘波

申请人 : 青岛海信移动通信技术股份有限公司

摘要 :

本发明涉及图像处理技术领域,尤其涉及一种显示预览图像的方法及设备。本发明实施例的方法包括:在需要显示预览图像时,实时通过感光器获取图像数据帧;将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数;显示所述预览图像。由于对M+1帧图像数据帧进行加权处理后,获得的预览图像中的噪点对预览图像的影响程度降低,因此,可在不损失预览图像的细节的同时减小预览图像中的噪点对预览图像的影响,预览图像的输出效果好。

权利要求 :

1.一种显示预览图像的方法,其特征在于,所述方法包括:

在需要显示预览图像时,实时通过感光器获取图像数据帧;

将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数;

显示所述预览图像;

将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,包括:根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;

根据每个所述图像数据帧对应的权重值,分别对每个所述图像数据帧进行加权处理;

根据加权处理后得到的图像数据帧,确定所述预览图像。

2.如权利要求1所述的方法,其特征在于,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前,还包括:根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移;

将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,包括:在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。

3.如权利要求2所述的方法,其特征在于,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移之前,还包括:将所述当前获取的图像数据帧缓存至队列,其中,所述队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数。

4.如权利要求3所述的方法,其特征在于,将当前获取的图像数据帧缓存至队列之后,还包括:判断所述当前获取的图像数据帧是否为所述队列中唯一的图像数据帧,若是,则将所述当前获取的图像数据帧作为预览图像;若否,则判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移。

5.如权利要求3或4任一所述的方法,其特征在于,在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移后,还包括:清空所述队列,并将所述当前获取的图像数据帧作为预览图像。

6.如权利要求3所述的方法,其特征在于,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,包括:若所述队列中缓存的图像数据帧的数量不小于M+1,则将所述队列中最新的M+1帧图像数据帧进行加权处理。

7.如权利要求6所述的方法,其特征在于,该方法还包括:

若所述队列中缓存的图像数据帧的数量小于M+1,则将所述队列中所有的图像数据帧进行加权处理。

8.如权利要求2~4、6和7任一所述的方法,其特征在于,根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移,包括:针对所述当前获取的图像数据帧中的每个像素点,确定所述最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;

根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值的平均值;

若所述平均值大于预设第一阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移;和/或根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值大于预设像素值阈值的个数,若所述个数大于预设第二阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移。

9.一种显示预览图像的设备,其特征在于,所述设备包括:

获取模块,用于在需要显示预览图像时,实时通过感光器获取图像数据帧;

处理模块,用于将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数;

显示模块,用于显示所述预览图像;

所述处理模块具体用于:

根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;

根据每个所述图像数据帧对应的权重值,分别对每个所述图像数据帧的进行加权处理;

根据加权处理后得到的图像数据帧,确定所述预览图像。

10.如权利要求9所述的设备,其特征在于,所述处理模块还用于:将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前,根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移;

在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。

11.如权利要求10所述的设备,其特征在于,所述处理模块还用于:判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移之前,将所述当前获取的图像数据帧缓存至队列,其中,所述队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数。

12.如权利要求11所述的设备,其特征在于,所述处理模块还用于:将当前获取的图像数据帧缓存至队列之后,判断所述当前获取的图像数据帧是否为所述队列中唯一的图像数据帧,若是,则将所述当前获取的图像数据帧作为预览图像;若否,则判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移。

13.如权利要求11或12任一所述的设备,其特征在于,所述处理模块还用于:在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移后,清空所述队列,并将所述当前获取的图像数据帧作为预览图像。

14.如权利要求11所述的设备,其特征在于,所述处理模块具体用于:若所述队列中缓存的图像数据帧的数量不小于M+1,则将所述队列中最新的M+1帧图像数据帧进行加权处理。

15.如权利要求14所述的设备,其特征在于,所述处理模块还用于:若所述队列中缓存的图像数据帧的数量小于M+1,则将所述队列中所有的图像数据帧进行加权处理。

16.如权利要求10~12、14和15任一所述的设备,其特征在于,所述处理模块具体用于:针对所述当前获取的图像数据帧中的每个像素点,确定所述最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;

根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值的平均值;

若所述平均值大于预设第一阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移;和/或根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值大于预设像素值阈值的个数,若所述个数大于预设第二阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移。

说明书 :

一种显示预览图像的方法及设备

技术领域

[0001] 本发明涉及图像处理技术领域,尤其涉及一种显示预览图像的方法及设备。

背景技术

[0002] 随着智能手机的普及,随时随地的拍照成为可能。当用户开启拍照模式时,智能手机中的成像感光器能够实时捕获需要拍摄的照片并显示给用户预览,用户可根据预览的效果选择适宜的角度拍摄照片。
[0003] 现有的智能手机中的成像感光器一般采用互补型金属氧化物半导体(Complementary Metal Oxide Semiconductor,CMOS)感光器,在拍摄的环境较暗时,采用CMOS感光器采集输出的图像中常伴随有大量的噪点。在暗环境下,为了获取暗处的图像信息,用户一般会增加感光系数来提高画面的整体亮度,与此同时,图像中的噪点随着感光系数的增加而被放大。
[0004] 现有技术中,为了减小图像中的噪点对图像的影响,在CMOS感光器采集到图像后,对采集到的一帧图像进行中值滤波处理或均值滤波处理,并将处理后的图像作为预览图像显示给用户预览。然而,对一帧图像进行中值滤波处理或均值滤波处理在减小图像中的噪点对图像的影响的同时也会损失图像的细节,预览图像的输出效果较差。
[0005] 以对一帧图像进行均值滤波处理为例,其基本实现原理为将该图像划分成多个子区域,针对每个子区域,将该子区域内所有像素点的灰度值的平均值作为该子区域内各像素点的灰度值。因此,如果图像中某个像素点的灰度值与噪点的灰度值接近,则在对图像进行均值滤波处理后,该像素点的信息在整幅图像中无法体现,即图像的细节丢失。
[0006] 综上所述,现有技术中利用均值滤波方法对CMOS感光器采集到图像进行降噪处理,在减小图像中的噪点对图像的影响的同时会损失图像的细节,预览图像的输出效果较差。

发明内容

[0007] 本发明实施例提供了一种显示预览图像的方法及设备,用以解决现有技术中存在的利用均值滤波方法对CMOS感光器采集到图像进行降噪处理,在减小图像中的噪点对图像的影响的同时损失图像的细节,预览图像的输出效果较差的问题。
[0008] 一种方法,所述方法包括:
[0009] 在需要显示预览图像时,实时通过感光器获取图像数据帧;
[0010] 将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数;
[0011] 显示所述预览图像。
[0012] 采用上述方案,由于对M+1帧图像数据帧进行加权处理后,获得的预览图像中的噪点对预览图像的影响程度降低,因此,可在不损失预览图像的细节的同时减小预览图像中的噪点对预览图像的影响,预览图像的输出效果好。
[0013] 具体地,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,包括:
[0014] 根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;
[0015] 根据每个所述图像数据帧对应的权重值,分别对每个所述图像数据帧的进行加权处理;
[0016] 根据加权处理后得到的图像数据帧,确定所述预览图像。
[0017] 如此,即可根据实际需要为进行加权处理的图像数据帧分别设置合适的权重值。
[0018] 可选地,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前,还包括:
[0019] 根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移;
[0020] 将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,包括:
[0021] 在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。
[0022] 如此,即可减小因拍摄的画面发生晃动或拍摄的画面中有移动的物体对预览图像的输出效果的影响。
[0023] 可选地,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移之前,还包括:
[0024] 将所述当前获取的图像数据帧缓存至队列,其中,所述队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数。
[0025] 如此,即可事先将当前获取的图像数据帧缓存至队列,便于后续处理。
[0026] 可选地,将当前获取的图像数据帧缓存至队列之后,还包括:
[0027] 判断所述当前获取的图像数据帧是否为所述队列中唯一的图像数据帧,若是,则将所述当前获取的图像数据帧作为预览图像;若否,则判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移。
[0028] 如此,即可在当前获取的图像数据帧为队列中唯一的图像数据帧时,将当前获取的图像数据帧直接输出。
[0029] 可选地,在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移后,还包括:
[0030] 清空所述队列,并将所述当前获取的图像数据帧作为预览图像。
[0031] 如此,即可确保队列中缓存的获取时间相邻的两帧图像数据帧之间的差异较小。
[0032] 具体地,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,包括:
[0033] 若所述队列中缓存的图像数据帧的数量不小于M+1,则将所述队列中最新的M+1帧图像数据帧进行加权处理。
[0034] 如此,即可将队列中最新的M+1帧图像数据帧进行加权处理得到预览图像。
[0035] 可选地,该方法还包括:
[0036] 若所述队列中缓存的图像数据帧的数量小于M+1,则将所述队列中所有的图像数据帧进行加权处理。
[0037] 如此,即可在队列中缓存的图像数据帧的数量小于M+1时,将队列中最新的所有的图像数据帧进行加权处理得到预览图像。
[0038] 具体地,根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移,包括:
[0039] 针对所述当前获取的图像数据帧中的每个像素点,确定所述最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;
[0040] 根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值的平均值;
[0041] 若所述平均值大于预设第一阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移;和/或
[0042] 根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值大于预设像素值阈值的个数,若所述个数大于预设第二阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移。
[0043] 如此,即可根据当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移。
[0044] 一种显示预览图像的设备,所述设备包括:
[0045] 获取模块,用于在需要显示预览图像时,实时通过感光器获取图像数据帧;
[0046] 处理模块,用于将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数。
[0047] 显示模块,用于显示所述预览图像。
[0048] 采用该设备,由于对M+1帧图像数据帧进行加权处理后,获得的预览图像中的噪点对预览图像的影响程度降低,因此,可在不损失预览图像的细节的同时减小预览图像中的噪点对预览图像的影响,预览图像的输出效果好。
[0049] 所述处理模块具体用于:
[0050] 根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;
[0051] 根据每个所述图像数据帧对应的权重值,分别对每个所述图像数据帧的进行加权处理;
[0052] 根据加权处理后得到的图像数据帧,确定所述预览图像。
[0053] 如此,即可根据实际需要为进行加权处理的图像数据帧分别设置合适的权重值。
[0054] 可选地,所述处理模块还用于:
[0055] 将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前,根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移;
[0056] 在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。
[0057] 如此,即可减小因拍摄的画面发生晃动或拍摄的画面中有移动的物体对预览图像的输出效果的影响。
[0058] 可选地,所述处理模块还用于:
[0059] 判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移之前,将所述当前获取的图像数据帧缓存至队列,其中,所述队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数。
[0060] 如此,即可事先将当前获取的图像数据帧缓存至队列,便于后续处理。
[0061] 可选地,所述处理模块还用于:
[0062] 将当前获取的图像数据帧缓存至队列之后,判断所述当前获取的图像数据帧是否为所述队列中唯一的图像数据帧,若是,则将所述当前获取的图像数据帧作为预览图像;若否,则判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移。
[0063] 如此,即可在当前获取的图像数据帧为队列中唯一的图像数据帧时,将当前获取的图像数据帧直接输出。
[0064] 可选地,所述处理模块还用于:
[0065] 在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移后,清空所述队列,并将所述当前获取的图像数据帧作为预览图像。
[0066] 如此,即可确保队列中缓存的获取时间相邻的两帧图像数据帧之间的差异较小。
[0067] 所述处理模块具体用于:
[0068] 若所述队列中缓存的图像数据帧的数量不小于M+1,则将所述队列中最新的M+1帧图像数据帧进行加权处理。
[0069] 如此,即可将队列中最新的M+1帧图像数据帧进行加权处理得到预览图像。
[0070] 可选地,所述处理模块还用于:
[0071] 若所述队列中缓存的图像数据帧的数量小于M+1,则将所述队列中所有的图像数据帧进行加权处理。
[0072] 如此,即可在队列中缓存的图像数据帧的数量小于M+1时,将队列中最新的所有的图像数据帧进行加权处理得到预览图像。
[0073] 所述处理模块具体用于:
[0074] 针对所述当前获取的图像数据帧中的每个像素点,确定所述最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;
[0075] 根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值的平均值;
[0076] 若所述平均值大于预设第一阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移;和/或
[0077] 根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值大于预设像素值阈值的个数,若所述个数大于预设第二阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移。
[0078] 如此,即可根据当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移。

附图说明

[0079] 图1为本发明实施例一中显示预览图像的方法的步骤示意图;
[0080] 图2为本发明实施例一中当前获取的图像数据帧中的第一个像素点和第二个像素点的示意图;
[0081] 图3为本发明实施例一中显示预览图像的方法的具体应用流程图;
[0082] 图4为本发明实施例二中显示预览图像的设备的结构示意图;
[0083] 图5为本发明实施例三中显示预览图像的设备的结构示意图。

具体实施方式

[0084] 本发明实施例的方案通过对当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,由于对M+1帧图像数据帧进行加权处理后,获得的预览图像中的噪点对预览图像的影响程度降低,因此,可在不损失预览图像的细节的同时减小预览图像中的噪点对预览图像的影响,预览图像的输出效果好。
[0085] 需要说明的是,本发明实施例方案的执行主体可以是具备拍照功能的终端(如智能手机或照相机)。
[0086] 下面结合说明书附图对本发明实施例作进一步说明,但本发明不局限于下面的实施例。
[0087] 实施例一:
[0088] 如图1所示,本发明实施例一中显示预览图像的方法包括以下步骤:
[0089] 步骤101:在需要显示预览图像时,实时通过感光器获取图像数据帧;
[0090] 步骤102:将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像;
[0091] 步骤103:显示预览图像。
[0092] 步骤101中,需要显示预览图像可以为开启终端的拍照功能(例如用户开启智能手机中的拍照功能)或开启监控设备(例如安保人员开启监控室内的监控摄像头),感光器可以为CMOS感光器或CCD(电荷耦合器件,Change-coupled Device)感光器。
[0093] 步骤102中,最近M次获取的图像数据帧为在获取当前获取的图像数据帧之前,获取并缓存的最新的M帧图像数据帧。
[0094] 可选地,在将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前(即在步骤102之前),可根据当前获取的图像数据帧和最近一次获取的图像数据帧(即前一帧图像数据帧)的像素点的像素值,判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移,在确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移后,执行步骤102。在确定当前获取的图像数据帧相对于最近一次获取的图像数据帧发生偏移后,将当前获取的图像数据帧作为预览图像,并删除之前缓存的图像数据帧。
[0095] 这样做的好处是,如果拍摄的画面发生晃动或拍摄的画面中有移动的物体,将导致当前获取的图像数据帧与最近一次获取的图像数据帧之间的差异较大,因此,通过判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移,可判断得出当前获取的图像数据帧与最近一次获取的图像数据帧之间的差异是否过大。在确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移后,执行步骤102,可减少通过执行步骤102后生成预览图像中的拖影,进一步提高预览图像的输出效果。
[0096] 具体地,可采用以下两种方式中的一种或其组合来判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移:
[0097] 方式一:
[0098] 针对当前获取的图像数据帧中的每个像素点,确定最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;根据当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定差值的绝对值的平均值;若该平均值大于预设第一阈值,则确定当前获取的图像数据帧相对于最近一次获取的图像数据帧发生偏移;否则,确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移。
[0099] 例如,假设当前获取的图像数据帧和最近一次获取的图像数据帧包含的像素点的个数均为n,当前获取的图像数据帧第i个像素点的像素值为Fnew(i),最近一次获取的图像数据帧第i个像素点的像素值为Fprev1(i),则针对当前获取的图像数据帧中的第i个像素点,最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值Fd(i)可表示为:
[0100] Fd(i)=|Fnew(i)-Fprev1(i)|    [1]
[0101] 则上述平均值Diff1可表示为:
[0102]
[0103] 其中,针对一帧图像数据帧,可将该图像数据帧中左顶角上的像素点作为第一个像素点,并从左往右再从上往下依次选取像素点,也可从上往下再从左往右依次选取像素点。
[0104] 如图2所示,为当前获取的图像数据帧中第一个像素点和第二个像素点的示意图,最近一次获取的图像数据帧按照与当前获取的图像数据帧相同的方式选取像素点,这样就可保证将当前获取的图像数据帧和最近一次获取的图像数据帧中处于相同位置的像素点的像素值进行比较,确定两者的差值的绝对值。
[0105] 其中,图像数据帧中像素点的像素值可以是RAW(未经处理)格式的图像数据帧中的R(红)分量或G(绿)分量或B(蓝)分量,可以是YUV格式的图像数据帧中的Y(亮度)分量或U(色度)分量或V(色度)分量,也可以是RGB格式的图像数据帧中的R分量或G分量或B分量,以上各种格式的分量的取值范围在[0,255]之间。
[0106] 其中,上述预设第一阈值Threshold1的取值可根据经验值设定,一般取[1,20]之间的值。如果根据上述方式确定出的平均值Diff1大于预设第一阈值Threshold1,表示当前获取的图像数据帧与最近一次获取的图像数据帧之间的差异较大,拍摄的画面可能发生晃动或拍摄的画面中有移动的物体。
[0107] 方式二:
[0108] 针对当前获取的图像数据帧中的每个像素点,确定最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;根据当前获取的图像数据中的每个像素点对应的差值的绝对值确定差值的绝对值大于预设像素值阈值的个数,若确定出的个数大于预设第二阈值,则确定当前获取的图像数据帧相对于最近一次获取的图像数据帧发生偏移;否则,确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移。
[0109] 其中,差值的绝对值的确定方式与方式一相同。针对当前获取的图像数据帧中的第i个像素点,如果该像素点的像素值与最近一次获取的图像数据帧中的第i个像素点的像素值的差值的绝对值Fd(i)大于像素值阈值MinChg,则将个数的统计值Diff2加1。
[0110] 其中,上述像素值阈值MinChg的取值可根据经验值设定,一般取[60,255]之间的值。上述预设第二阈值Threshold2的取值可根据经验值设定,一般取小于n的值。如果根据上述方式确定出的个数Diff2大于预设第二阈值Threshold2,表示当前获取的图像数据帧与最近一次获取的图像数据帧之间的差异较大,拍摄的画面可能发生晃动或拍摄的画面中有移动的物体。
[0111] 如果采用方式一和方式二的组合来判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移,可包含以下两种实现方式:
[0112] 方式三:在确定出的平均值大于预设第一阈值或确定出的个数大于预设第二阈值时,确定当前获取的图像数据帧相对于最近一次获取的图像数据帧发生偏移;否则,确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移。
[0113] 方式四:在确定出的平均值大于预设第一阈值且确定出的个数大于预设第二阈值时,确定当前获取的图像数据帧相对于最近一次获取的图像数据帧发生偏移;否则,确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移。
[0114] 可选地,在判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移之前,将当前获取的图像数据帧缓存至队列。其中,队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数,M为正整数。在具体实现过程中,可根据终端的内存大小设定D和M的取值。
[0115] 具体地,在将当前获取的图像数据帧缓存至队列之前,如果队列中已缓存有D帧图像数据帧,则删除队列中最早缓存的图像数据帧,将当前获取的图像数据帧缓存至队列中;如果队列中已缓存的图像数据帧的数量小于D,则直接将当前获取的图像数据帧缓存至队列中,即保证队列中缓存的图像数据帧是最新的图像数据帧,且缓存的图像数据帧的数量不大于D。
[0116] 基于此,在将当前获取的图像数据帧缓存至队列之后,可判断当前获取的图像数据帧是否为队列中唯一的图像数据帧,若是,则将当前获取的图像数据帧作为预览图像;若否,则判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移。
[0117] 也就是说,如果在将当前获取的图像数据帧缓存至队列之前,队列中缓存的图像数据帧的数量为0(即队列中没有缓存图像数据帧),则直接将当前获取的图像数据帧作为预览图像。如果在将当前获取的图像数据帧缓存至队列之前,队列中缓存的图像数据帧的数量不为0(即队列中已缓存有图像数据帧),则判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移。其中,最近一次获取的图像数据帧即为在将当前获取的图像数据帧缓存至队列之前,队列中缓存的最新的图像数据帧。
[0118] 可选地,为了保证队列中缓存的获取时间相邻的两帧图像数据帧之间的差异较小,在确定当前获取的图像数据帧相对于最近一次获取的图像数据帧发生偏移后,清空队列,并将当前获取的图像数据帧作为预览图像。
[0119] 在确定当前获取的图像数据帧相对于最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。具体地,如果队列中缓存的图像数据帧的数量不小于M+1,则将队列中最新的M+1帧图像数据帧进行加权处理;如果队列中缓存的图像数据帧的数量小于M+1,则将队列中所有的图像数据帧进行加权处理。其中,最近M次获取的图像数据帧即为在将当前获取的图像数据帧缓存至队列之前,队列中缓存的最新的M帧图像数据帧。
[0120] 具体地,步骤102的具体实现方式可以为:
[0121] 根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;根据每个图像数据帧对应的权重值,分别对每个图像数据帧的进行加权处理;根据加权处理后得到的图像数据帧,确定预览图像。
[0122] 例如,假设当前获取的图像数据帧第i个像素点的像素值为Fnew(i),当前获取的图像数据帧的获取时间最大,其对应的权重值为K0,最近M次获取的图像数据帧第i个像素点的像素值分别为Fprev1(i)~FprevM(i),最近M次获取的图像数据帧的获取时间依次减小,最近M次获取的图像数据帧对应的权重值分别为K1~KM,则确定的预览图像中的第i个像素点的像素值Fout(i)可表示为:
[0123]
[0124] 针对当前获取的图像数据帧和最近M次获取的图像数据帧中的每个像素点分别执行公式[3],则可确定预览图像中的每个像素点的像素值。
[0125] 假设当前获取的图像数据帧为Fnew,最近M次获取的图像数据帧分别为Fprev1~FprevM,则确定的预览图像Fout可表示为:
[0126]
[0127] 由于预览图像是对M+1帧图像数据帧进行加权处理后获得的,预览图像中的噪点对预览图像的影响,相对于原始获取的图像数据帧中的噪点对图像数据帧的影响减小。这是因为,根据统计学的规律,假设图像I是有效信号S和噪声N共同影响的结果,S是持续信号,N是随机信号,f为N对I的影响程度,得到公式[5]:
[0128] I=S+f*N    [5]
[0129] 则将M张图像叠加取平均时,得到公式[6]:
[0130]
[0131] 对公式[6]进行整理,可得到公式[7]:
[0132]
[0133] 通过对公式[5]和公式[7]的分析,可以得出,在S和N相对稳定的情况下,将M张图像叠加取平均后获得的图像中N对I的影响程度由原来的f降低为f/M。
[0134] 因此,采用本发明实施例的方案获得的预览图像可在不损失预览图像的细节的同时减小预览图像中的噪点对预览图像的影响,预览图像的输出效果好。
[0135] 优选地,针对拍摄场景是运动场景的情况,为了减少预览图像中可能会出现的拖影,本发明实施例方案中的权重值随着队列中图像数据帧的获取时间的减小而减小,即图像数据帧的获取时间越早(即获取时间的数值越小),其对应的权重值越小,也就是说,当前获取的图像数据帧对预览图像的影响最大,最近M次获取的图像数据帧中获取时间最早的图像数据帧对预览图像的影响最小。其中,所有权重值之和等于1,即权重值的设定满足以下两个条件:
[0136] 条件1:Kj
[0137] 在根据以上描述的方法获得了预览图像后,即可将获得的预览图像显示输出。具体地,可将预览图像显示到终端(如智能手机)的预览屏幕上。
[0138] 如图3所示,本发明实施例方案中显示预览图像的方法的具体应用流程包括以下步骤:
[0139] 步骤301:在需要显示预览图像时,实时通过感光器获取图像数据帧。
[0140] 步骤302:将当前获取的图像数据帧缓存至队列。
[0141] 其中,队列Queue的长度为D,即队列中缓存的图像数据帧的数量不大于D。在将当前获取的图像数据帧缓存至队列之前,如果队列中已缓存有D帧图像数据帧,则删除队列中最早缓存的图像数据帧,将当前获取的图像数据帧缓存至队列中,以保证队列中缓存的图像数据帧是最新的图像数据帧。
[0142] 在具体实现过程中,可设置统计队列中缓存的图像数据帧数量的计数器RecvNum,在将一帧图像数据帧缓存至队列中时,将计数器的值加1,在将一帧图像数据帧从队列中删除时,将计数器的值减1。初始化时,计数器的值为0。
[0143] 步骤303:判断当前获取的图像数据帧是否为队列中唯一的图像数据帧,若是,则转至步骤304;否则转至步骤305。
[0144] 具体地,可判断计数器的值是否不大于1,若是,则转至步骤304;否则转至步骤305。
[0145] 步骤304:将当前获取的图像数据帧作为预览图像,转至步骤308。
[0146] 步骤305:判断当前获取的图像数据帧相对于最近一次获取的图像数据帧是否发生偏移,若是,则转至步骤306;否则转至步骤307。
[0147] 步骤306:清空队列,转至步骤304。
[0148] 其中,在清空队列的同时,将计数器的值清零。在清空队列后,队列中缓存的图像数据帧的数量为0。
[0149] 步骤307:将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像。
[0150] 在具体实现过程中,如果队列中缓存的图像数据帧的数量不小于M+1,则将队列中最新的M+1帧图像数据帧进行加权处理;如果队列中缓存的图像数据帧的数量小于M+1,则将队列中所有的图像数据帧进行加权处理。其中,最近M次获取的图像数据帧即为在将当前获取的图像数据帧缓存至队列之前,队列中缓存的最新的M帧图像数据帧。
[0151] 考虑到队列中缓存的图像数据帧的数量可能小于M+1,在具体实现过程中,可设置M个权重值集合。例如,假设预先设定M的取值为3,则可设置3个权重值集合,其中,第一个权重值集合中包含两个权重值,第二个权重值集合中包含三个权重值,第三个权重值集合中包含四个权重值。如果队列中缓存的图像数据帧的数量为2,则从3个权重值集合中选择包含两个权重值的第一个权重值集合,其中,图像数据帧的获取时间越早(即获取时间的数值越小),其对应的权重值越小。
[0152] 步骤308:显示预览图像。
[0153] 实施例二:
[0154] 本实施例二是与实施例一属于同一发明构思的一种显示预览图像的设备,因此实施例二的实施可以参见实施例一的实施,重复之处不再赘述。
[0155] 如图4所示,所述设备包括:
[0156] 获取模块41用于在需要显示预览图像时,实时通过感光器获取图像数据帧;
[0157] 处理模块42用于将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数。
[0158] 显示模块43用于显示所述预览图像。
[0159] 所述处理模块42具体用于:根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;根据每个所述图像数据帧对应的权重值,分别对每个所述图像数据帧的进行加权处理;根据加权处理后得到的图像数据帧,确定所述预览图像。
[0160] 可选地,所述处理模块42还用于:将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前,根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移;在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。
[0161] 可选地,所述处理模块42还用于:判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移之前,将所述当前获取的图像数据帧缓存至队列,其中,所述队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数。
[0162] 可选地,所述处理模块42还用于:将当前获取的图像数据帧缓存至队列之后,判断所述当前获取的图像数据帧是否为所述队列中唯一的图像数据帧,若是,则将所述当前获取的图像数据帧作为预览图像;若否,则判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移。
[0163] 可选地,所述处理模块42还用于:在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移后,清空所述队列,并将所述当前获取的图像数据帧作为预览图像。
[0164] 所述处理模块42具体用于:若所述队列中缓存的图像数据帧的数量不小于M+1,则将所述队列中最新的M+1帧图像数据帧进行加权处理。
[0165] 可选地,所述处理模块42还用于:若所述队列中缓存的图像数据帧的数量小于M+1,则将所述队列中所有的图像数据帧进行加权处理。
[0166] 所述处理模块42具体用于:针对所述当前获取的图像数据帧中的每个像素点,确定所述最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值的平均值;若所述平均值大于预设第一阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移;和/或根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值大于预设像素值阈值的个数,若所述个数大于预设第二阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移。
[0167] 其中,本发明实施例二中的显示预览图像的设备可以是具备拍照功能的终端(如智能手机或照相机)。
[0168] 需要说明的是,本发明实施例二中对显示预览图像的设备的各组成部分的描述是对各组成部分主要功能的描述,本发明实施例二中各组成部分也具备实现实施例一中所描述的方法步骤的功能,同时,本发明实施例二中的显示预览图像的设备还具有执行实施例一各步骤的逻辑模块。
[0169] 实施例三:
[0170] 图5为本发明实施例三中显示预览图像的设备的结构示意图。如图5所示,所述设备包括:
[0171] 感光器51用于实时获取图像数据帧;
[0172] 存储器52用于存储感光器51获取到的图像数据帧;
[0173] 处理器53用于从存储器52中读取图像数据帧,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理,获得预览图像,其中,M为正整数。
[0174] 显示屏54用于显示经过处理器53处理后获得的预览图像。
[0175] 其中,在图5中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器53代表的一个或多个处理器和存储器52代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机55可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口56还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
[0176] 所述处理器53具体用于:根据获取时间和权重值的对应关系,分别确定当前获取的图像数据帧和最近M次获取的图像数据帧对应的权重值;根据每个所述图像数据帧对应的权重值,分别对每个所述图像数据帧的进行加权处理;根据加权处理后得到的图像数据帧,确定所述预览图像。
[0177] 可选地,所述处理器53还用于:将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理之前,根据所述当前获取的图像数据帧和最近一次获取的图像数据帧的像素点的像素值,判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移;在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移后,将当前获取的图像数据帧与最近M次获取的图像数据帧进行加权处理。
[0178] 可选地,所述处理器53还用于:判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移之前,将所述当前获取的图像数据帧缓存至队列,其中,所述队列中缓存最新的D帧图像数据帧,D为不小于M+1的正整数。
[0179] 可选地,所述处理器53还用于:将当前获取的图像数据帧缓存至队列之后,判断所述当前获取的图像数据帧是否为所述队列中唯一的图像数据帧,若是,则将所述当前获取的图像数据帧作为预览图像;若否,则判断所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧是否发生偏移。
[0180] 可选地,所述处理器53还用于:在确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移后,清空所述队列,并将所述当前获取的图像数据帧作为预览图像。
[0181] 所述处理器53具体用于:若所述队列中缓存的图像数据帧的数量不小于M+1,则将所述队列中最新的M+1帧图像数据帧进行加权处理。
[0182] 可选地,所述处理器53还用于:若所述队列中缓存的图像数据帧的数量小于M+1,则将所述队列中所有的图像数据帧进行加权处理。
[0183] 所述处理器53具体用于:针对所述当前获取的图像数据帧中的每个像素点,确定所述最近一次获取的图像数据帧中与该像素点处于相同位置的像素点的像素值,与该像素点的像素值的差值的绝对值;根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值的平均值;若所述平均值大于预设第一阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移;和/或根据所述当前获取的图像数据帧中的每个像素点对应的差值的绝对值确定所述差值的绝对值大于预设像素值阈值的个数,若所述个数大于预设第二阈值,则确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧发生偏移;否则,确定所述当前获取的图像数据帧相对于所述最近一次获取的图像数据帧没有发生偏移。
[0184] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0185] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0186] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0187] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0188] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0189] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。