一种图像处理的方法及相关电子设备转让专利

申请号 : CN202110892264.2

文献号 : CN113824873B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陆洋丁大钧肖斌

申请人 : 荣耀终端有限公司

摘要 :

本申请提供了一种图像处理的方法及相关电子设备,其中,所述图像处理的方法包括:显示第一界面,所述第一界面包括第一控件;检测到对所述第一控件的第一操作;响应于所述第一操作,第一摄像头采集第一图像和第二图像,第二摄像头采集第三图像,所述第一图像包括第一目标对象,所述第一图像包括第一区域和第二区域,所述第二区域用于表征过曝且所述第一目标对象处于运动状态的区域,所述第二图像为短曝光图像,所述第三图像为短曝光图像,所述第三图像包括第三区域,所述第三区域与所述第二区域对应;将所述第一图像、所述第二图像和所述第三图像进行融合,得到第四图像。解决了拍摄高动态范围场景时图像的运动过曝区域存在运动“鬼影”问题。

权利要求 :

1.一种图像处理的方法,其特征在于,应用于电子设备,所述电子设备包括实时光流模块,所述方法包括:显示第一界面,所述第一界面包括第一控件;

检测到对所述第一控件的第一操作;

计算第一预览图像的光流图;

基于所述光流图计算第一目标对象处于运动状态的区域;

获取第二预览图像;

计算所述第二预览图像的过曝区域;

基于所述第一目标对象处于运动状态的区域和所述过曝区域,计算第二区域;其中,所述第一预览图像为检测到针对所述第一控件的第一操作之前,所述实时光流模块从所述电子设备的缓冲区Buffer中获取的最后一帧预览图像,所述第二预览图像为检测到针对所述第一控件的第一操作之前,缓存在所述Buffer中的最后一帧预览图像;

响应于所述第一操作,第一摄像头采集第一图像和第二图像,第二摄像头采集第三图像,所述第一图像包括第一目标对象,所述第一图像包括第一区域和第二区域,所述第二区域用于表征过曝且所述第一目标对象处于运动状态的区域,所述第二图像为短曝光图像,所述第三图像为短曝光图像,所述第三图像包括第三区域,所述第三区域与所述第二区域对应,所述第一摄像头采集第一图像的时刻与所述第二摄像头采集第三图像的时刻相同;

将所述第一图像、所述第二图像和所述第三图像进行融合,得到第四图像;

其中,所述第二摄像头采集第三图像包括:

根据所述第二区域确定所述第二摄像头的拍摄区域;

所述第二摄像头根据所述拍摄区域采集所述第三图像。

2.如权利要求1所述的方法,其特征在于,所述第二图像为采集所述第一图像后,所述第一摄像头采集的图像。

3.如权利要求1‑2任一项所述的方法,其特征在于,所述将所述第一图像、所述第二图像和所述第三图像进行融合,得到第四图像,包括:将所述第一图像、所述第二图像和所述第三图像同时进行融合,得到所述第四图像;

或者

将所述第一图像和所述第三图像进行融合,得到第五图像;

将所述第五图像和所述第二图像进行融合,得到所述第四图像。

4.如权利要求1所述的方法,其特征在于,所述基于所述光流图计算所述第一目标对象处于运动状态的区域,包括:判断所述光流图中像素的浮点数是否大于或等于第一阈值;

在所述像素的浮点数大于或等于第一阈值的情况下,将所述像素标记为第一目标像素;

将所述第一预览图像中所述第一目标像素对应的区域确定所述第一目标对象处于运动状态的区域。

5.如权利要求1或4所述的方法,其特征在于,所述计算所述第二预览图像的过曝区域,包括:判断所述第二预览图像中像素的RGB值是否大于或等于第二阈值;

在所述像素的RGB值大于或等于第二阈值的情况下,将所述像素标记为第二目标像素;

将所述第二预览图像中所述第二目标像素对应的区域确定为过曝区域。

6.如权利要求1或4所述的方法,其特征在于,所述计算所述第二预览图像的过曝区域,具体包括:判断所述第二预览图像中像素的亮度值是否大于或等于第三阈值;

在所述像素的亮度值大于或等于第三阈值的情况下,将所述像素标记为第二目标像素;

将所述第二预览图像中所述第二目标像素对应的区域确定为过曝区域。

7.一种电子设备,其特征在于,包括:存储器、处理器和触控屏;其中:所述触控屏用于显示内容;

所述存储器,用于存储计算机程序,所述计算机程序包括程序指令;

所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:显示第一界面,所述第一界面包括第一控件;

检测到对所述第一控件的第一操作;

计算第一预览图像的光流图;

基于所述光流图计算第一目标对象处于运动状态的区域;

获取第二预览图像;

计算所述第二预览图像的过曝区域;

基于所述第一目标对象处于运动状态的区域和所述过曝区域,计算第二区域;其中,所述第一预览图像为检测到针对所述第一控件的第一操作之前,所述实时光流模块从所述电子设备的缓冲区Buffer中获取的最后一帧预览图像,所述第二预览图像为检测到针对所述第一控件的第一操作之前,缓存在所述Buffer中的最后一帧预览图像;

响应于所述第一操作,调用第一摄像头采集第一图像和第二图像,调用第二摄像头采集第三图像,所述第一图像包括第一目标对象,所述第一图像包括第一区域和第二区域,所述第二区域用于表征过曝且所述第一目标对象处于运动状态的区域,所述第二图像为短曝光图像,所述第三图像为短曝光图像,所述第三图像包括第三区域,所述第三区域与所述第二区域对应,所述第一摄像头采集第一图像的时刻与所述第二摄像头采集第三图像的时刻相同;

将所述第一图像、所述第二图像和所述第三图像进行融合,得到第四图像;

其中,所述调用所述第二摄像头采集第三图像包括:根据所述第二区域确定所述第二摄像头的拍摄区域;

调用所述第二摄像头根据所述拍摄区域采集所述第三图像。

8.如权利要求6所述的电子设备,其特征在于,所述第二图像为采集所述第一图像后,所述第一摄像头采集的图像。

9.如权利要求7‑8任一项所述的电子设备,其特征在于,所述一个或多个处理器还用于调用所述计算机指令以使得所述电子设备执行:将所述第一图像、所述第二图像和所述第三图像进行融合,得到第四图像,具体包括:将所述第一图像、所述第二图像和所述第三图像同时进行融合,得到所述第四图像;

或者

将所述第一图像和所述第三图像进行融合,得到第五图像;

将所述第五图像和所述第二图像进行融合,得到所述第四图像。

10.如权利要求7所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:所述基于所述光流图计算所述第一目标对象处于运动状态的区域,具体包括:判断所述光流图中像素的浮点数是否大于或等于第一阈值;

在所述像素的浮点数大于或等于第一阈值的情况下,将所述像素标记为第一目标像素;

将所述第一预览图像中所述第一目标像素对应的区域确定所述第一目标对象处于运动状态的区域。

11.如权利要求7或10所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:所述计算所述第二预览图像的过曝区域,具体包括:判断所述第二预览图像中像素的RGB值是否大于或等于第二阈值;

在所述像素的RGB值大于或等于第二阈值的情况下,将所述像素标记为第二目标像素;

将所述第二预览图像中所述第二目标像素对应的区域确定为过曝区域。

12.如权利要求7或10任一项所述的电子设备,其特征在于,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行:所述计算所述第二预览图像的过曝区域,具体包括:判断所述第二预览图像中像素的亮度值是否大于或等于第三阈值;

在所述像素的亮度值大于或等于第三阈值的情况下,将所述像素标记为第二目标像素;

将所述第二预览图像中所述第二目标像素对应的区域确定为过曝区域。

13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现如权利要求1‑6任意一项所述的方法。

说明书 :

一种图像处理的方法及相关电子设备

技术领域

[0001] 本申请涉及图像处理领域,尤其涉及一种图像处理的方法及相关电子设备。

背景技术

[0002] 相机的传感器的动态范围就是传感器在一幅图像里能够同时体现高光和阴影部分内容的能力,相机的传感器的动态范围是有限的。当拍照场景的动态范围大于传感器的动态范围时,就会产生高动态范围(High Dynamic Range,HDR)问题,即不能识别相机拍摄的图像的阴影区域和明亮区域的内容。
[0003] 目前,解决HDR场景的动态范围溢出问题主要采用长、短曝光帧融合的方法,其中长短曝光帧为同一传感器连续输出。但是,若在长曝光图像中存在运动过曝区域,由于长短曝光帧之间存在时序差异,使用上述多帧融合方法会导致图像出现运动“鬼影”。因此,如何解决在高动态范围场景中,因长、短曝光帧时序差异而导致长、短帧融合后的HDR图像出现运动“鬼影”的问题,是技术人员日益关注的问题。

发明内容

[0004] 本申请实施例提供了一种图像处理的方法,解决了在将长曝光图像和短曝光图像进行融合的过程中,因为长曝光图像存在运动过曝区域而导致融合后的图像出现运动“鬼影”的问题。
[0005] 第一方面,本申请实施例提供了一种图像处理的方法,包括:显示第一界面,第一界面包括第一控件;检测到对第一控件的第一操作;响应于第一操作,第一摄像头采集第一图像和第二图像,第二摄像头采集第三图像,第一图像包括第一目标对象,第一图像包括第一区域和第二区域,第二区域用于表征过曝且该第一目标对象处于运动状态的区域,第二图像为短曝光图像,第三图像为短曝光图像,第三图像包括第三区域,第三区域与第二区域对应;将第一图像、第二图像和第三图像进行融合,得到第四图像;其中,第二摄像头采集第三图像包括:根据第二区域确定第二摄像头的拍摄区域;第二摄像头根据该拍摄区域采集第三图像。在上述实施例中,由于第一图像存在运动过曝区域(第二区域),第三图像为短曝光图像且第三图像的包括第三区域,通过将第一图像、第二图像和第三图像进行融合,解决了因为长曝光图像存在运动过曝区域而导致融合后的图像出现运动“鬼影”的问题。
[0006] 结合第一方面,在一种实施方式中,第一摄像头采集第一图像与第二摄像头采集第三图像的时刻相同,第二图像为采集第一图像后,第一摄像头采集的图像。这样,保证第一图像和第三图像的采集时间相同,没有时序差异,从而保证第一图像、第二图像和第三图像融合后生成的第四图像,不会出现运动“鬼影”的问题。
[0007] 结合第一方面,在一种实施方式中,将第一图像、第二图像和第三图像进行融合,得到第四图像,包括:将第一图像、第二图像和第三图像同时进行融合,得到第四图像;或者将第一图像和第三图像进行融合,得到第五图像;将第五图像和第二图像进行融合,得到第四图像。这样,通过将第一图像、第二图像和第三图像进行融合,解决了因为长曝光图像存在运动过曝区域而导致融合后的图像出现运动“鬼影”的问题。
[0008] 结合第一方面,在一种实施方式中,第一摄像头采集第一图像和第二图像,第二摄像头采集第三图像之前,包括:计算第二区域。这样,通过计算第二区域,以便于根据第二区域调整第二摄像头的位置,使得第二摄像头的拍摄范围能够包括第二区域。
[0009] 结合第一方面,在一种实施方式中,计算第二区域,包括:第一预览图像的光流图;基于该光流图计算第一目标对象处于运动状态的区域;获取第二预览图像;计算第二预览图像的过曝区域;基于第一目标对象处于运动状态的区域和过曝区域,计算第二区域。这样,通过计算预览图像的过曝区域和目标对象的运动区域,能够计算出过曝运动区域(第二区域),以便于根据第二区域调整第二摄像头的位置,使得第二摄像头的拍摄范围能够包括第二区域。
[0010] 结合第一方面,在一种实施方式中,所述基于光流图计算第一目标对象处于运动状态的区域,包括:判断光流图中像素的浮点数是否大于或等于第一阈值;在像素的浮点数大于或等于第一阈值的情况下,将像素标记为第一目标像素;将第一预览图像中第一目标像素对应的区域确定第一目标对象处于运动状态的区域。这样,通过预览图像的光流图能够计算出第一目标对象处于运动状态的区域,以便根据第一目标对象处于运动状态的区域和过曝区域计算第二区域。
[0011] 结合第一方面,在一种实施方式中,计算第二预览图像的过曝区域,包括:判断第二预览图像中像素的RGB值是否大于或等于第二阈值;在该像素的RGB值大于或等于第二阈值的情况下,将该像素标记为第二目标像素;将第二预览图像中第二目标像素对应的区域确定为过曝区域。这样,通过预览图像的RGB值能够计算出过曝区域,以便根据第一目标对象处于运动状态的区域和过曝区域计算第二区域。
[0012] 结合第一方面,在一种实施方式中,计算第二预览图像的过曝区域,具体包括:判断第二预览图像中像素的亮度值是否大于或等于第三阈值;在该像素的亮度值大于或等于第三阈值的情况下,将该像素标记为第二目标像素;将第二预览图像中第二目标像素对应的区域确定为过曝区域。这样,通过预览图像的亮度值能够计算出过曝区域,以便根据第一目标对象处于运动状态的区域和过曝区域计算第二区域。
[0013] 第二方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:显示第一界面,第一界面包括第一控件;检测到对第一控件的第一操作;响应于第一操作,第一摄像头采集第一图像和第二图像,第二摄像头采集第三图像,第一图像包括第一目标对象,第一图像包括第一区域和第二区域,第二区域用于表征过曝且该第一目标对象处于运动状态的区域,第二图像为短曝光图像,第三图像为短曝光图像,第三图像包括第三区域,第三区域与第二区域对应;将第一图像、第二图像和第三图像进行融合,得到第四图像;其中,第二摄像头采集第三图像包括:根据第二区域确定第二摄像头的拍摄区域;第二摄像头根据该拍摄区域采集第三图像。
[0014] 结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:将第一图像、第二图像和第三图像同时进行融合,得到第四图像;或者将第一图像和第三图像进行融合,得到第五图像;将第五图像和第二图像进行融合,得到第四图像。
[0015] 结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:在第一摄像头采集第一图像和第二图像,第二摄像头采集第三图像之前,计算第二区域。结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:第一预览图像的光流图;基于该光流图计算第一目标对象处于运动状态的区域;获取第二预览图像;计算第二预览图像的过曝区域;基于第一目标对象处于运动状态的区域和过曝区域,计算第二区域。
[0016] 结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:判断光流图中像素的浮点数是否大于或等于第一阈值;在像素的浮点数大于或等于第一阈值的情况下,将像素标记为第一目标像素;将第一预览图像中第一目标像素对应的区域确定第一目标对象处于运动状态的区域。
[0017] 结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:判断第二预览图像中像素的RGB值是否大于或等于第二阈值;在该像素的RGB值大于或等于第二阈值的情况下,将该像素标记为第二目标像素;将第二预览图像中第二目标像素对应的区域确定为过曝区域。
[0018] 结合第二方面,在一种实施方式中,该一个或多个处理器还用于调用该计算机指令以使得该电子设备执行:判断第二预览图像中像素的亮度值是否大于或等于第三阈值;在该像素的亮度值大于或等于第三阈值的情况下,将该像素标记为第二目标像素;将第二预览图像中第二目标像素对应的区域确定为过曝区域。
[0019] 第三方面,本申请实施例提供了一种电子设备,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。
[0020] 第四方面,本申请实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。
[0021] 第五方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实施方式所述的方法。

附图说明

[0022] 图1是本申请实施例提供的一种电子设备100的硬件结构示意图;
[0023] 图2A是本申请实施例提供的一种人眼观察的自然场景图;
[0024] 图2B是本申请实施例提供的一种HDR场景图;
[0025] 图3A是本申请实施例提供的一种传感器输出的单帧长曝光图像;
[0026] 图3B是本申请实施例提供的一种传感器输出的单帧短曝光图像;
[0027] 图3C是本申请实施例提供的一种长、短曝光融合后的图像;
[0028] 图4是本申请实施例提供的一种拍摄场景图;
[0029] 图5是本申请实施例提供的一种运动过曝区域的运动模糊效果图;
[0030] 图6是本申请实施例提供的一种电子设备100的外观效果图;
[0031] 图7A‑图7C是本申请实施例提供的一种拍照界面图;
[0032] 图8A是本申请实施例提供的一种图像处理流程图;
[0033] 图8B是本申请实施例提供的另一种图像处理流程图;
[0034] 图9A是本申请实施例提供的一种主摄像头输出的长曝光效果图;
[0035] 图9B是本申请实施例提供的一种副摄像头输出的短曝光效果图;
[0036] 图10A是本申请实施例提供的第一预览图像的光流图;
[0037] 图10B是本申请实施例提供的第一预览图像的Mask1;
[0038] 图10C是本申请实施例提供的第二预览图像的像素图;
[0039] 图10D是本申请实施例提供的第二预览图像的Mask2;
[0040] 图10E是本申请实施例提供的Mask3;
[0041] 图10F是本申请实施例提供的运动过曝区域示意图;
[0042] 图11A是本申请实施例提供的第一图像效果图;
[0043] 图11B是本申请实施例提供的第三图像效果图;
[0044] 图11C是本申请实施例提供的第四图像效果图;
[0045] 图12A是本申请实施例提供的一种电子设备各模块交互流程图;
[0046] 图12B是本申请实施例提供的另一种电子设备各模块交互流程图;
[0047] 图13是本申请实施例提供的一种电子设备100的软件框架图。

具体实施方式

[0048] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0049] 本申请的说明书和权利要求书及所述附图中术语“第一”、“第二”、“第三”等是区别于不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元,或者可选地,还包括没有列出的步骤或单元,或者可选地还包括这些过程、方法、产品或设备固有的其它步骤或单元。
[0050] 附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0051] 在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
[0052] 下面,对电子设备100的硬件结构进行介绍。
[0053] 电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra‑mobilepersonal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digitalassistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等。本申请实施例对该电子设备100的具体类型不作特殊限制。
[0054] 请参见图1,图1是本申请实施例提供的一种电子设备100的硬件结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
[0055] 可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0056] 处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural‑network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0057] 处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
[0058] 电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0059] 显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light‑emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active‑matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light‑emitting diode,FLED),Miniled,MicroLed,Micro‑oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
[0060] 电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
[0061] ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
[0062] 摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal‑oxide‑semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
[0063] 数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0064] NPU为神经网络(neural‑network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0065] 内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0066] 压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
[0067] 陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
[0068] 气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
[0069] 磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。
[0070] 加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
[0071] 距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
[0072] 接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
[0073] 环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
[0074] 指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
[0075] 温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。
[0076] 触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
[0077] 骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。
[0078] 相机中的传感器具有动态范围(Dynamic Range,DR),相机传感器的动态范围就是传感器感知拍摄场景中最暗值与最亮值的能力,即能够体现图像亮度值的能力。通常,自然界的动态范围超过100dB,而高端的传感器其动态范围才可达到78dB,消费级传感器的动态范围只大约为60dB。在拍摄时,传感器的动态范围如果小于图像场景的动态范围,就会产生动态范围溢出问题,相机成像会损失暗区细节或亮区内容,因此,针对这种高动态范围(HighDynamicRange,HDR)场景,相机需要额外的算法来恢复成像的暗区或亮区内容。
[0079] 示例性的,图2A是本申请实施例提供的一种人眼观察的自然场景图,该场景的亮度值范围为1dB~100dB。其中,第一区域2011的亮度值范围为80~100dB,第二区域2012的亮度值范围为1dB~15dB。传感器的动态范围在20dB~78dB。由于该场景的动态范围超出了传感器的动态范围,当对该场景进行拍照时,拍摄出来的图像不能准确地呈现超出该传感器亮度值范围的场景的内容。图2B是对图2A中的自然场景进行拍照所得到的效果图,在图2A中第一区域2011的亮度值范围为80dB~100dB,属于明亮区域,第二区域2012的亮度值范围为1dB~15dB属于阴影区域。由于这两个区域的亮度值范围均超过传感器的亮度值范围,因此,在图2B中出现了HDR问题,即:在图2B中,第一区域整体看起来就是一片白色,分不清蓝天白云,第二区域整体看起来就是黑色,分不清该区域中的物体。
[0080] 拍摄HDR场景为了得到更好的成像效果,通常使用多曝光帧融合来恢复暗区与亮区的内容,即:同一个摄像头的传感器连续出帧两次,一帧图像为长曝光图像,另一帧图像为短曝光图像。然后,将长曝光图像和短曝光图像进行融合,得到融合后的图像。其中,长曝光帧旨在恢复暗区内容,短曝光帧旨在压制过曝区域。
[0081] 示例性的,图3A为传感器输出的单帧长曝光图像,从图3A可以发现,在该图像的暗光区域(例如,第一区域3011)的物体比较清晰,在该图像的强光区域的内容不能显示清楚(例如,无法区分第二显示区域3012中的蓝天白云)。图3B为传感器输出的单帧短曝光图像,从图3B可以发现,在该图像的暗光区域的内容不能显示清楚(例如,在第一显示区域3011显示出来一片黑色,无法区分该区域中的物体),在该图像的强光区域能清楚显示内容(例如,可以清楚地分清第一区域3011中的蓝天白云)。将图3A和图3B进行融合,可以得到图3C的图像,由图3C可以看出,该图像的暗光区域和强光区域的内容都清楚的显示出来(例如,第一区域3011中的物品和第二区域3012中的蓝天白云都清楚地显示出来)。
[0082] 当拍摄场景为静态场景时,使用上述多曝光合成技术将长曝光和短曝光的图像进行融合,可以提升成像的动态范围,恢复细节。但是,当长曝光图像的过曝区域存在物体运动时,由于传感器依次输出长曝光帧和短曝光帧,两帧图像存在一定的时序差异,将长曝光帧和短曝光帧融合后,在有物体运动的过曝区域会出现“鬼影”现象。例如,在图4的拍摄场景中,第一区域4011为过曝区域,图中男子的手臂在拍照前在第一区域4011左右摆动,当使用多曝光合成技术对该场景进行拍照,生成图5。从图5可以看出,在第一区域4011中,该男子的手掌出现运动“鬼影”(男子的手掌周围出现残影)。
[0083] 为了解决上述问题,本申请实施例提供了一种图像处理的方法,通过让主副摄像头同时输出图像(主摄像头输出单帧长曝光图像、同时副摄像头输出单帧短曝光图像),并将主摄像头输出的图像与副摄像头输出的图像进行融合,解决了在将长曝光图像和短曝光图像进行融合的过程中,因为长曝光图像存在运动过曝区域而导致融合后的图像出现运动“鬼影”的问题。
[0084] 下面结合应用场景,介绍本申请实施例涉及的一种图像处理方法。
[0085] 如图6所示,电子设备100至少包括主摄像头6011和副摄像头6012,其中,主摄像头6011的变焦倍率小于副摄像头6012的变焦倍率。例如,主摄像头6011的变焦倍率为1X,副摄像头6012的变焦倍率为3X。由于,主摄像头6011的变焦倍率小于副摄像头6012的变焦倍率,因此,主摄像头6011的视场角(Field of View,FOV)要大于副摄像头6012的FOV。用户在使用电子设备100拍照过程中,当用户按下快门键后,图像处理模块计算拍摄环境中运动过曝区域(过曝且存在物体运动的区域),副摄像头6012基于该运动过曝区域调整位姿,使得副摄像头6012的拍摄区域包括上述运动过曝区域。然后,主摄像头6011的传感器和副摄像头
6012的传感器同时输出图像,图像处理模块将主摄像头6011传感器输出的单帧长曝光图像帧和副摄像头6012传感器输出的单帧短曝光图像进行融合,得到融合后的图像。
[0086] 如图7A所示,电子设备100可以显示有主屏幕的界面710,该界面710中显示了一个放置有应用图标的页面,该页面包括多个应用图标(例如,天气应用图标、视频应用图标、设置应用图标、相机应用图标711)。电子设备100可以接收用户作用于相机应用图标711的输入操作(例如单击),响应于该输入操作,电子设备100可以显示如图7B所示的拍摄界面720。
[0087] 如图7B所示,该拍摄界面720可以显示包括有摄像头转换控件721、拍摄控件722、图像回显控件723、场景显示区域724。其中,图像回显控件723可用于显示已拍摄的图片,拍摄控件722用于触发摄像头拍摄并保存图像,摄像头转换控件721可用于切换拍照的摄像头。当电子设备100检测到用户针对拍摄控件722的输入操作(例如单击),电子设备100显示如图7C所示的照片预览界面730。
[0088] 如图7C所示,该预览界面730,该预览界面730显示HDR照片,该HDR照片是电子设备100的主摄像头的传感器输出的长曝光图像和副摄像头的传感器输出的短曝光图像融合后的图像。
[0089] 下面,结合图8A,对电子设备进行图像处理的具体流程进行详细说明。请参见图8A,图8A是本申请实施例提供的一种图像处理流程图,电子设备进行图像处理的具体流程如下:
[0090] 步骤S801A:电子设备启动相机应用。
[0091] 示例性的,如上述图7A实施例所示,当电子设备检测到针对相机应用图标711的输入操作后,启动相机应用,当相机应用启动完成后,电子设备显示上述图7B所示的拍摄界面720。相机应用为电子设备中具有拍照功能的应用程序。
[0092] 步骤S802A:电子设备接收用户的第一输入。
[0093] 示例性的,所述第一输入可以为上述图7B中,针对拍摄控件722的输入操作(例如单击)。
[0094] 步骤S803A:电子设备响应第一输入,基于第一摄像头缓存的预览图像确定当前拍摄场景的运动过曝区域。
[0095] 具体地,第一摄像头是主摄像头,主摄像头的变焦倍率小于副摄像头的变焦倍率(例如,第一摄像头的变焦倍率为1X,副摄像头的变焦倍率为3X),主摄像头的FOV大于副摄像头的FOV。因此,主摄像头的拍摄的场景范围要比副摄像头拍摄的场景范围更广。示例性的,图9A和图9B分别为主摄像头和副摄像头在同一场景拍摄的图像,图9B主要显示的为图9A的区域9011。运动过曝区域为曝光时间长且存在物体运动的区域。
[0096] 当相机应用启动后触发第一摄像头(主摄像头)和副摄像头开启,显示上述图7B所示的拍摄界面720。在电子设备未检测到针对拍摄控件722的输入操作之前(第一输入,例如单击),电子设备将当前拍摄场景的视频流以图像帧为单位存储在电子设备的缓存区(Buffer)中。电子设备缓存在Buffer中的多帧图像序列为预览图像序列。但是,由于电子设备的Buffer存储空间有限,当Buffer内存储的预览图像的数量超过了其上限阈值时,电子设备会将Buffer中先前存储的预览图像清理掉,以保证Buffer能够缓存最新的预览图像。
[0097] 示例性的,若电子设备存储预览图像的速度为1帧/ms,Buffer存储预览图像的最大数量为10帧,在1~10ms内,电子设备在其Buffer内依次存储图像1~图像10,在第11ms时,对应的图像为图像11,在将图像11存储在Buffer之前,电子设备100先清理Buffer中的图像1,为图像11预留存储空间。然后,再将图像11存储在Buffer中。
[0098] 当电子设备接收第一输入后,电子设备基于第一预览图像和第二预览图像确定当前拍摄场景的运动过曝区域。第一预览图像为在电子设备接收第一输入之前,电子设备的实时光流模块从Buffer中获取的最后一帧预览图像。第二预览图像为在电子设备接收第一输入之前,缓存在Buffer中的最后一帧预览图像。在确定运动过曝区域之前,电子设备要确定第一预览图像的运动区域和第二预览图像的过曝区域。
[0099] 电子设备确定第一预览图像的运动区域的方法为:电子设备获取第一预览图像的光流图,所述光流图包括表现每个像素光流运动程度的浮点数。电子设备判断像素的浮点数是否大于或等于第一阈值,若大于或等于第一阈值,则将该像素标记第一目标像素(例如,将该像素标记为1),若小于第一阈值,不将该像素标记为第一目标像素(例如,将该像素标记为0)。由此,可以得到第一预览图像的Mask1,所述Mask1是预览图像的像素图,每个像素对应一个0或1的数值,通过Mask1可以确定预览图像的运动区域,即:在Mask1中,第一目标像素(标记为1的像素)对应的区域为运动区域。其中,第一阈值可以由经验值得到,也可以由历史数据得到,还可以由实验数据得到,本申请实施例对此不作限制。
[0100] 示例性的,第一预览图像的光流图如图10A所示,图10A中的35个像素都有其表征光流运动程度的浮点数,当浮点数为0时,代表没有物体运动,当浮点数不为0时,代表有物体运动,浮点数越大,运动程度越高。若第一阈值为1,那么将浮点数大于或等于1的像素标记为1,将浮点数小于1的像素标记为0。由此,电子设备可以得到如图10B所示的Mask1。从图10B可知,标记为1的像素对应的区域为该第一预览图像的运动区域。
[0101] 电子设备确定第二预览图像的过曝区域的方法为:电子设备根据第二预览图像的像素的RGB值是否大于或等于第二阈值(像素的R值、B值、G值均大于或等于第二阈值),判断该像素是否过曝,若该像素的RGB值大于或等于第二阈值,则该像素过曝,电子设备将该像素标记为第二目标像素(例如,将该像素标记为1)。若该像素的RGB值小于第二阈值,则该像素未过曝,电子设备不将该像素标记为第二目标像素(例如,将该像素标记为0)。由此,可以得到第二预览图像的Mask2,所述Mask2是预览图像的像素图,每个像素对应一个0或1的数值,通过Mask2可以确定预览图像的过曝区域,即:在Mask2中,第二目标像素(标记为1的像素)对应的区域为过曝区域。其中,第二阈值可以由经验值得到,也可以由历史数据得到,还可以由实验数据得到,本申请实施例对此不作限制。
[0102] 示例性的,第二预览图像如图10C所示,图10C所示的图像的像素个数为35,第二阈值为150,若像素9、像素10、像素11、像素16、像素17、像素18、像素23、像素24、像素30、像素31、像素32这11个像素,其R值、G值、B值均大于150,则电子设备将这11个像素标记为1。从而得到如图10D所示的该第二预览图像的Mask2。从图10D可知,标记为1的像素为该第二预览图像的过曝区域。
[0103] 在一些实施例中,电子设备可以基于第二预览图像每个像素的RGB值计算第二预览图像每个像素的亮度值(Lighting Value,LV),若像素的LV值大于或等于第三阈值,则判断该像素过曝,并标记该像素为第二目标像素(例如,将该像素标记为1),若像素的LV值小于第三阈值,则判断该像素未过曝,不将该像素标记为第二目标像素(例如,将该像素标记为0)。由此,得到该第二预览图像帧的Mask2。第三阈值可以由经验值得到,也可以由历史值得到,还可以由实验数据得到,本申请实施例对此不做限制。
[0104] 电子设备确定当前拍摄场景的运动过曝区域的方法为:电子设备将第一预览图像的Mask1和第二预览图像帧的Mask2进行“逻辑与”运算,得到Mask3。在Mask3中,标记为1的像素对应的区域为当前拍摄场景运动过曝区域。
[0105] 示例性的,将图10B的Mask1和图10D的Mask2进行“逻辑与”运算,得到如图10E的Mask3,根据该Mask3可确定标记为1的像素对应的区域为运动过曝区域。当前拍摄场景的运动过曝区域如图10F所示。
[0106] 步骤S804A:电子设备基于过曝运动区域调整第二摄像头的朝向,使得第二摄像头的拍摄区域包括运动过曝区域。
[0107] 具体地,第二摄像头为电子设备的副摄像头,且第二摄像头的变焦倍率比第一摄像头的变焦倍率大,第二摄像头的FOV比第一摄像头的FOV小。第二摄像头的拍摄区域为,在拍摄环境中,第二摄像头输出图像的对应区域为第二摄像头的拍摄区域。可选的,电子设备确定当前拍摄场景的运动过曝区域后,基于运动过曝区域,确定第二摄像头的位姿信息。然后,电子设备调整第二摄像头的朝向,使得第二摄像头的拍摄区域能够包括该运动过曝区域。示例性的,电子设备可以通过OIS调整第二摄像头的朝向,使得第二摄像头的拍摄区域能够包括该运动过曝区域。可选的,可以使第二摄像头对焦于或者对准于该运动过曝区域。
[0108] 步骤S805A:第一摄像头采集第一图像和第二图像。
[0109] 具体地,第二图像可以是单帧短曝光图像,也可以是多帧长、短曝光图像。
[0110] 步骤S806A:第二摄像头采集第三图像。
[0111] 步骤S807A:电子设备将第一图像、第二图像和第三图像同时进行融合,得到第四图像。
[0112] 具体地,第一图像为第一摄像头输出的单帧长曝光图像、第三图像为第二摄像头输出的单帧短曝光图像,且第一图像和第三图像同时输出。其中,第一图像包括第一区域和第二区域,第二区域为第一图像中的运动过曝区域,第一区域为第一图像中,第二区域以外的区域。第三图像包括第三区域,第三区域是与第二区域对应的区域。第二图像可以为采集第一图像后,第一摄像头采集的相邻帧图像,第二图像也可以为采集第一图像之前,第一摄像头采集的相邻帧图像。电子设备将第一图像、第二图像以及第三图像同时进行多帧融合,得到第四图像。
[0113] 在一些实施例中,电子设备先将第一图像和第三图像进行融合,得到第五图像,再将第五图像和第二图像进行融合,得到第四图像。
[0114] 这样,通过将第一图像、第二图像和第三图像进行融合,解决了图像过曝运动区域带来的运动“鬼影”问题,提升人眼的主观感受。
[0115] 步骤S808A:电子设备将第四图像下发到内存。
[0116] 在一些实施例中,电子设备计算出多个运动过曝区域,且这些运动过曝区域分布较为分散,由于第二摄像头的FOV较小,使得第二摄像头的拍摄范围不能包括所有的运动过曝区域。因此,电子设备可以基于第一预览图像的光流图分别计算该多个运动过曝区域浮点数的平均值,选取平均值最大的运动过曝区域为目标运动过曝区域,并计算该目标运动过曝区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄范围能够包括该目标运动过曝区域。
[0117] 在另一些实施例中,电子设备仅计算出单个运动过曝区域,且该运动过曝区域的面积过大,使得第二摄像头的拍摄范围不能完全包括该区域。因此,电子设备可以根据该运动过曝区域每个像素的RGB值或者亮度值确定第四区域,所述第四区域为在该运动过曝区域中,曝光程度较深的区域(例如,第四区域就是一片白色,完全不能分辨图像的内容,该运动过曝区域的其它部分虽然过曝并呈现白色,但能够大致分辨图像的内容),将第四区域作为目标过曝区域,并基于该第四区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄范围能够包括第四区域。
[0118] 本申请实施例,通过确定当前拍摄场景的运动过曝区域,调整副摄像头的拍摄区域,使得副摄像头的拍摄区域能够对焦于运动过曝区域。当电子设备接收到拍照指令后,使得电子设备的主摄像头和副摄像头同时出图,其中,主摄像头输出长曝光图像、副摄像头输出短曝光图像,将主摄像头和副摄像头同时输出的图像进行融合,得到融合后的图像。通过上述方法,在解决过曝区域无法分辨图像内容的同时,解决了在融合长曝光图像和短曝光图像的过程中,因为长曝光图像存在运动过曝区域,而导致融合后的图像出现运动“鬼影”问题。
[0119] 请参见图8B,图8B是本申请实施例提供的一种图像处理流程图,电子设备进行图像处理的具体流程如下:
[0120] 步骤S801B:电子设备启动相机应用。
[0121] 步骤S802B:电子设备接收用户的第一输入。
[0122] 步骤S803B:电子设备响应第一输入,基于第一摄像头缓存的预览图像确定当前拍摄场景的运动过曝区域。
[0123] 步骤S804B:电子设备基于过曝运动区域调整第二摄像头的朝向,使得第二摄像头的拍摄区域包括运动过曝区域。
[0124] 步骤S805B:第一摄像头采集第一图像和第二图像。
[0125] 步骤S806B:第二摄像头采集第三图像。
[0126] 步骤S801B~步骤S806B请参见上述图8A实施例中,步骤S801A~步骤S806A的相关叙述,在此不再赘述。
[0127] 步骤S807B:电子设备将第一图像和第三图像进行融合,得到第五图像。
[0128] 具体地,第一图像为第一摄像头输出的单帧长曝光图像,第三图像是第二摄像头输出的单帧短曝光图像,第一摄像头和第二摄像头同时输出第一图像和第三图像。
[0129] 示例性的,电子设备将图11A所示的第一图像中的像素9、像素10、像素11、像素16、像素17、像素18、像素23、像素24以及像素25这九个像素分别与图11B所示的第三图像中的像素1‑像素9进行融合,得到如图11C所示的第五图像。本申请实施例以图11A中像素24和图11B中的像素8进行融合为例进行说明,所述像素24和像素8的具体融合过程为:电子设备将像素24的第一曝光值和像素8的第二曝光值根据公式(1)进行融合,得到融合后的曝光值EV,公式(1)如下所示:
[0130] EV=EV′*W1+EV″*W2  (1)
[0131] 其中,EV为融合后的曝光值,EV′为第一曝光值,EV″为第二曝光值。W1和W2分别为EV1和EV0的权重值,且W1+2=1。然后,电子设备将所述EV作为图11C中像素24的曝光值。同理,电子设备分别将图11A中的像素9、像素10、像素11、像素16、像素17、像素18、像素23、像素25分别与图11B中像素1、像素2、像素3、像素4、像素5、像素6、像素7、像素9进行融合,得到如图11C所示的第五图像。
[0132] 这样,通过将第一图像和第三图像进行融合,解决了长曝光图像和短曝光图像在融合过程中,因为长曝光图像存在运动过曝区域,导致融合后的图像出现运动“鬼影”的问题。
[0133] 步骤S808B:电子设备将第五图像和第二图像进行融合,得到第四图像。
[0134] 具体地,电子设备将第五图像与第二图像进行融合,恢复第五图像中亮区(过曝区域)的内容。
[0135] 步骤S809B:电子设备将第四图像下发到内存中。
[0136] 在一些实施例中,电子设备计算出多个运动过曝区域,且这些运动过曝区域分布较为分散,由于第二摄像头的FOV较小,使得第二摄像头的拍摄范围不能包括所有的运动过曝区域。因此,电子设备可以基于第一预览图像的光流图分别计算该多个运动过曝区域浮点数的平均值,选取平均值最大的运动过曝区域为目标运动过曝区域,并计算该目标运动过曝区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄范围能够包括该目标运动过曝区域。
[0137] 在另一些实施例中,电子设备仅计算出单个运动过曝区域,且该运动过曝区域的面积过大,使得第二摄像头的拍摄范围不能完全包括该区域。因此,电子设备可以根据该运动过曝区域每个像素的RGB值或者亮度值确定第四区域,所述第四区域为在该运动过曝区域中,曝光程度较深的区域(例如,第四区域就是一片白色,完全不能分辨图像的内容,该运动过曝区域的其它部分虽然过曝并呈现白色,但能够大致分辨图像的内容),将第四区域作为目标过曝区域,并基于该第四区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄范围能够包括第四区域。
[0138] 上述图8A实施例对电子设备进行图像处理的流程进行了说明,下面结合图12A,对上述图8A实施例,电子设备进行图像处理的过程中,各模块交互的流程图进行说明。请参见图12A,图12A是本申请实施例提供的一种电子设备各模块交互流程图,在电子设备进行图像处理的过程中,电子设备内各模块的交互流程如下:
[0139] 步骤S1201A:相机应用启动。
[0140] 具体地,电子设备启动相机设备的相关叙述请参见是上述步骤S801A,在此不再赘述。
[0141] 步骤S1202A:第一摄像头将拍摄场景的预览图像帧序列缓存在缓存区中。
[0142] 具体地,相机应用启动后,触发第一摄像头和第二摄像头启动,第一摄像头将当前的拍摄场景以视频流的形式存储在其缓存区(Buffer)中存储在Buffer中的图像为预览图像。其中,视频流以图像帧为单位存储在Buffer中,该图像帧为预览图像帧。由于Buffer的存储空间有限,当存储的预览图像的数量超过了Buffer的上限阈值时,会将其存储的部分预览图像清除。Buffer清除缓存在其内部的部分预览图像的相关叙述请参见上述步骤S803A的相关叙述,在此不再赘述。
[0143] 步骤S1203A:实时光流模块周期性地从缓存区中获取预览图像。
[0144] 步骤S1204A:实时光流模块计算其获取的预览图像的光流图。
[0145] 具体地,实时光流模块计算其获取的每帧预览图像的光流图。光流图的相关叙述请参见上述步骤S803A,本申请实施例在此不再赘述。
[0146] 步骤S1205A:相机应用接收用户的第一输入。
[0147] 示例性的,所述第一输入可以为上述图7B中,针对拍摄控件722的输入操作(例如单击)。
[0148] 步骤S1206A:图像处理模块从实时光流模块中获取第一预览图像的光流图。
[0149] 示例性的,第一预览图像为在相机应用接收第一输入前,实时光流模块获取从Buffer中获取的最后一帧预览图像。例如,实时光流模块每1ms从Buffer处获取预览图像,并计算得到这些预览图像的光流图,在1~13ms依次获取预览图像1~预览图像13,若在12.5ms相机应用接收第一输入,则第一预览图像为实时光流模块在12ms获取的预览图像
12。
[0150] 步骤S1207A:图像处理模块基于第一预览图像的光流图确定所述第一预览图像的运动区域,并基于该运动区域的像素信息得到所述第一预览图像的Mask1。
[0151] 具体地,图像处理模块确定第一预览图像的运动区域的方法,请参见上述步骤S803A中电子设备确定第一预览图像运动区域的相关叙述,本申请实施例在此不再赘述。
[0152] 步骤S1208A:图像处理模块从缓存区中获取第二预览图像。
[0153] 具体地,第二预览图像为在相机应用接收第一输入前,缓存在Buffer中的最后一帧预览图像。例如,第一摄像头在1~13ms依次在Buffer中缓存预览图像1~预览图像13,若在9.5ms相机应用接收第一输入,则第二预览图像为实时光流模块在9ms获取的预览图像9。
[0154] 步骤S1209A:图像处理模块计算第二预览图像的过曝区域,并基于该过曝区域的像素信息得到该第二预览图像的Mask2。
[0155] 具体地,图像处理模块确定第二预览图像的过曝区域的方法,请参见上述步骤S803中电子设备确定第二预览图像过曝区域的相关叙述,本申请实施例在此不再赘述。
[0156] 步骤S1210A:图像处理模块基于所述Mask1和所述Mask2确定当前拍摄场景的运动过曝区域。
[0157] 具体地,图像处理模块基于所述Mask1和所述Mask2确定当前拍摄场景的运动过曝区域的过程和方法,请参见上述步骤S803A中电子设备确定运动过曝区域的相关叙述,本申请实施例在此不再赘述。
[0158] 步骤S1211A:图像处理模块基于该过曝运动区域,确定第二摄像头的位姿信息。
[0159] 步骤S1212A:图像处理模块将所述位姿信息发送给第二摄像头。
[0160] 步骤S1213A:第二摄像头基于所述位姿信息调整其朝向,使得所述第二摄像头的拍摄区域包括所述运动过曝区域。
[0161] 步骤S1214A:图像处理模块从自动曝光模块获取第二预览图像的第一曝光值。
[0162] 具体地,自动曝光模块在相机启动后,开始计算缓存在Buffer中的每一帧预览图像的第一曝光值。
[0163] 步骤S1215A:图像处理模块基于第二预览图像的第一曝光值,计算所述运动过曝区域的第二曝光值。
[0164] 具体地,所述第二曝光值作为第二摄像头输出的第二图像的曝光值。
[0165] 需要说明的是,步骤S1215A在第一摄像头和第二摄像头输出第一图像和第二图像之前执行,在相机应用接收第一输入之后执行,步骤S1215A的具体执行顺序,本申请实施例不做限制。
[0166] 步骤S1216A:第一摄像头向图像处理模块输出第一图像和第二图像。
[0167] 具体地,第二图像是第一图像在时序上的相邻图像。其中,第二图像可以为单帧短曝光图像,也可以为多帧相邻的长、短曝光图像,本申请实施例不做限制。
[0168] 步骤S1217A:第二摄像头向图像处理模块输出第三图像。
[0169] 具体地,第一摄像头输出第一图像和第三摄像头输出第二图像的时间相同,即第一图像和第三图像同时输出。
[0170] 步骤S1218A:图像处理模块将第一图像、第二图像和第三图像进行融合,得到第四图像。
[0171] 具体地,图像处理模块融合第一图像、第二图像和第三图像,得到第四图像的具体过程请参见上述步骤S807A中的相关叙述,本申请实施例在此不再赘述。
[0172] 步骤S1219A:图像处理模块将第四图像下发到内存。
[0173] 在一些实施例中,图像处理模块计算出多个运动过曝区域,且这些运动过曝区域分布较为分散,由于第二摄像头的FOV较小,使得第二摄像头的拍摄范围不能包括所有的运动过曝区域。因此,图像处理模块可以基于第一预览图像的光流图分别计算该多个运动过曝区域浮点数的平均值,选取平均值最大的运动过曝区域为目标运动过曝区域,并计算该目标运动过曝区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄区域能够包括该目标运动过曝区域。
[0174] 在另一些实施例中,电子设备仅计算出单个运动过曝区域,且该运动过曝区域的面积过大,使得第二摄像头的拍摄范围不能完全包括该区域。因此,图像处理模块可以根据该运动过曝区域每个像素的RGB值或者亮度值确定第四区域,所述第一区域为在该运动过曝区域中,曝光程度较深的区域(例如,第四区域就是一片白色,完全不能分辨图像的内容,该运动过曝区域的其它部分虽然过曝并呈现白色,但能够大致分辨图像的内容),将第四区域作为目标过曝区域,并基于该第四区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄区域能够包括第四区域。
[0175] 上述图8B实施例对电子设备进行图像处理的流程进行了说明,下面结合图12B,对上述图8B实施例,电子设备进行图像处理的过程中,各模块交互的流程图进行说明。请参见图12B,图12B是本申请实施例提供的一种电子设备各模块交互流程图,在电子设备进行图像处理的过程中,电子设备内各模块的交互流程如下:
[0176] 步骤S1201B:相机应用启动。
[0177] 步骤S1202B:第一摄像头将拍摄场景的预览图像帧序列缓存在缓存区中。
[0178] 步骤S1203B:实时光流模块周期性地从缓存区中获取预览图像。
[0179] 步骤S1204B:实时光流模块计算其获取的预览图像的光流图。
[0180] 步骤S1205B:相机应用接收用户的第一输入。
[0181] 步骤S1206B:图像处理模块从实时光流模块中获取第一预览图像的光流图。
[0182] 步骤S1207B:图像处理模块基于第一预览图像的光流图确定所述第一预览图像的运动区域,并基于该运动区域的像素信息得到所述第一预览图像的Mask1。
[0183] 步骤S1208B:图像处理模块从缓存区中获取第二预览图像。
[0184] 步骤S1209B:图像处理模块计算第二预览图像的过曝区域,并基于该过曝区域的像素信息得到该第二预览图像的Mask2。
[0185] 步骤S1210B:图像处理模块基于所述Mask1和所述Mask2确定当前拍摄场景的运动过曝区域。
[0186] 步骤S1211B:图像处理模块基于该过曝运动区域,确定第二摄像头的位姿信息。
[0187] 步骤S1212B:图像处理模块将所述位姿信息发送给第二摄像头。
[0188] 步骤S1213B:第二摄像头基于所述位姿信息调整其朝向,使得所述第二摄像头的拍摄区域包括所述运动过曝区域。
[0189] 步骤S1214B:图像处理模块从自动曝光模块获取第二预览图像的第一曝光值。
[0190] 步骤S1215B:图像处理模块基于第二预览图像的第一曝光值,计算所述运动过曝区域的第二曝光值。
[0191] 步骤S1216B:第一摄像头向图像处理模块输出第一图像和第二图像。
[0192] 步骤S1217B:第二摄像头向图像处理模块输出第三图像。
[0193] 步骤S1201B~步骤S1217B请参考上述图12A实施例中的步骤S1201A~步骤S1217A,在此不再赘述。
[0194] 步骤S1218B:图像处理模块将第一图像和第三图像进行融合,得到第五图像。
[0195] 步骤S1219B:图像处理模块将第五图像和第二图像进行融合,得到第四图像。
[0196] 步骤S1220B:图像处理模块将第四图像下发到内存中。
[0197] 在一些实施例中,图像处理模块计算出多个运动过曝区域,且这些运动过曝区域分布较为分散,由于第二摄像头的FOV较小,使得第二摄像头的拍摄范围不能包括所有的运动过曝区域。因此,图像处理模块可以基于第一预览图像的光流图分别计算该多个运动过曝区域浮点数的平均值,选取平均值最大的运动过曝区域为目标运动过曝区域,并计算该目标运动过曝区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄区域能够包括该目标运动过曝区域。
[0198] 在另一些实施例中,电子设备仅计算出单个运动过曝区域,且该运动过曝区域的面积过大,使得第二摄像头的拍摄范围不能完全包括该区域。因此,图像处理模块可以根据该运动过曝区域每个像素的RGB值或者亮度值确定第四区域,所述第一区域为在该运动过曝区域中,曝光程度较深的区域(例如,第四区域就是一片白色,完全不能分辨图像的内容,该运动过曝区域的其它部分虽然过曝并呈现白色,但能够大致分辨图像的内容),将第四区域作为目标过曝区域,并基于该第四区域计算第二摄像头的位姿信息,并基于所述位姿信息调整第二摄像头的朝向,使得第二摄像头的拍摄区域能够包括第四区域。
[0199] 在本申请实施例中,电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
[0200] 如图13所示,该电子设备可包括:应用程序层、应用程序框架、硬件抽象层(hardware abstraction layer,HAL)层及内核层(kernel)。其中:
[0201] 应用程序层可以包括一系列应用程序包。如图13所示,应用程序包可以包括相机应用,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。应用程序框架层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图13所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
[0202] 窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
[0203] 内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
[0204] 视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
[0205] 电话管理器用于提供第一终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
[0206] 资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
[0207] 通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
[0208] 硬件抽象层可以包括多个功能模块。例如,图像处理模块、实时光流模块等。
[0209] 图像处理模块用于计算第一预览图像的运动区域,并基于该运动区域计算得到第一预览图像的Mask1。图像处理模块还用于计算第二预览图像的Mask2。图像处理模块还用于根据Mask1和Mask2计算当前拍摄场景的运动过曝区域,并根据所述运动过曝区域计算第二摄像头的位姿信息,并将该位姿信息发送给第二摄像头,以便第二摄像头基于该位姿信息调整其朝向,使得第二摄像头对焦于运动过曝区域。图像处理模块还用于根据第一预览图像的第一曝光值,计算运动过曝区域的第二曝光值。图像处理模块还用于将第一图像、第二图像和第三图像进行融合,得到第四图像,并将第四图像下发到内存中。
[0210] 实时光流模块用于计算其在Buffer中获取的预览图像的光流图。
[0211] 内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
[0212] 摄像头驱动用于当接收到位于应用程序层的相机应用发送的触发命令时,触发第一摄像头和第二摄像头开启。摄像头驱动还用于当接收到位于HAL层的图像处理模块的触发命令时,触发第一摄像头和第二摄像头拍摄,并输出图像。
[0213] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk)等。
[0214] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
[0215] 总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。