图像处理方法、装置、电子设备及计算机可读存储介质转让专利

申请号 : CN202011065575.3

文献号 : CN112199016B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴金远吴永文吕海涛

申请人 : 北京字节跳动网络技术有限公司

摘要 :

本公开提供了一种图像处理方法、装置、电子设备及计算机可读存储介质,涉及图像处理技术领域。该方法应用于终端,终端包括第一、第二拍摄装置,该方法包括:通过所述第一拍摄装置采集第一视频图像,并在屏幕中显示所述第一视频图像;当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像。本公开的实施能够基于拍摄装置所采集的图像中的显示对象实现拍摄装置的自动切换。

权利要求 :

1.一种图像处理方法,其特征在于,应用于终端,所述终端包括第一拍摄装置与第二拍摄装置,所述方法包括:通过所述第一拍摄装置采集第一视频图像,并在屏幕中显示所述第一视频图像;

在视频图像拍摄过程中,当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像;

合成所述第一视频图像和所述第二视频图像;

所述方法还包括:

在所述第一视频图像上叠加显示虚拟对象;

所述当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,包括:当所述虚拟对象满足预设状态时,切换为通过所述第二拍摄装置采集所述第二视频图像。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:检测所述第一视频图像中的第一目标对象;

所述在所述第一视频图像上显示虚拟对象,包括:当检测到所述第一视频图像中的第一目标对象执行预设的触发动作时,在所述第一视频图像上显示所述虚拟对象。

3.根据权利要求1所述的方法,其特征在于,所述在所述第一视频图像上显示虚拟对象,包括:获取包括所述虚拟对象的第一视频序列帧;

将所述第一视频序列帧叠加至所述第一视频图像上;

播放所述第一视频序列帧,以在所述第一视频图像上动态显示所述虚拟对象。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:获取所述虚拟对象在所述第一视频序列帧中的每一视频帧中的位置信息;

根据所述位置信息确定所述虚拟对象在所述第一视频图像中的第一运动轨迹;

其中,所述在所述第一视频图像上动态显示所述虚拟对象,包括:沿着所述第一运动轨迹在所述第一视频图像上动态显示所述虚拟对象。

5.根据权利要求1所述的方法,其特征在于,所述虚拟对象满足预设状态,包括:所述虚拟对象显示于所述第一视频图像的指定位置处。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述第二视频图像上显示所述虚拟对象。

7.根据权利要求6所述的方法,其特征在于,所述在所述第二视频图像上显示所述虚拟对象,包括:获取包括所述虚拟对象的第二视频序列帧;

将所述第二视频序列帧叠加至所述第二视频图像上;

播放所述第二视频序列帧,以在所述第二视频图像上动态显示所述虚拟对象。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:获取所述虚拟对象在所述第二视频序列帧中的每一个视频帧中的位置信息;

根据所述位置信息确定所述虚拟对象在所述第二视频图像中的第二运动轨迹;

其中,所述在所述第二视频图像上动态显示所述虚拟对象,包括:沿着所述第二运动轨迹在所述第二视频图像上动态显示所述虚拟对象。

9.根据权利要求1所述的方法,其特征在于,所述方法还包括:检测所述第二视频图像中的第二目标对象;

对所述第二目标对象进行形变处理,得到所述第二目标对象发生形变后的第二视频图像,并在所述屏幕中进行显示。

10.一种图像处理装置,其特征在于,应用于终端,所述终端包括第一拍摄装置与第二拍摄装置,所述装置包括:视频显示模块,用于通过所述第一拍摄装置采集第一视频图像,在屏幕中显示所述第一视频图像;

切换显示模块,用于在视频图像拍摄过程中,当检测到所述第一视频图像中的显示对象满足预设切换条件,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像;

所述装置还用于合成所述第一视频图像和所述第二视频图像;

所述装置还包括:

第一虚拟对象显示模块,用于在所述第一视频图像上叠加显示虚拟对象;

切换显示模块用于当所述虚拟对象满足预设状态时,切换为通过所述第二拍摄装置采集所述第二视频图像。

11.一种电子设备,其特征在于,包括:一个或多个处理器;

存储器,所述存储器存储有计算机程序,当所述计算机程序被所述一个或多个处理器执行时,使所述电子设备执行如权利要求1‑9任一项所述的图像处理方法。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,使所述处理器执行如权利要求1‑9任一项所述的图像处理方法。

说明书 :

图像处理方法、装置、电子设备及计算机可读存储介质

技术领域

[0001] 本公开涉及图像处理技术领域,具体而言,本公开涉及一种图像处理方法、装置、电子设备及计算机可读存储介质。

背景技术

[0002] 随着移动互联网的发展以及移动终端的普及,越来越多的用户开始自发制作内容,并上传社交平台与他人分享。通常,内容制作者利用移动终端上的拍摄设备拍摄自己喜欢的图像、视频并上传到社交平台上分享给其他用户。然而,现有的拍摄过程,用户或者使用前置摄像头自拍或者使用后置摄像头拍摄所见图像,拍摄效果和内容显得单一化。

发明内容

[0003] 提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0004] 第一方面,本公开实施例提供了一种图像处理方法,应用于终端,所述终端包括第一拍摄装置与第二拍摄装置,该方法包括:通过所述第一拍摄装置采集第一视频图像,并在屏幕中显示所述第一视频图像;当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像。
[0005] 第二方面,本公开实施例提供了一种图像处理装置,应用于终端,所述终端包括第一拍摄装置与第二拍摄装置,该装置包括:视频显示模块,用于通过所述第一拍摄装置采集第一视频图像,在屏幕中显示所述第一视频图像;切换显示模块,用于当检测到所述第一视频图像中的显示对象满足预设切换条件,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像。
[0006] 第三方面,本公开实施例提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储器,所述存储器存储有计算机程序,当所述计算机程序配置被所述一个或多个处理器执行时,使所述电子设备执行如上述第一方面所述的方法。
[0007] 第四方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行如上述第一方面所述的方法。
[0008] 本公开实施例提供的一种图像处理方法、装置、电子设备及计算机可读存储介质,应用于具有两个拍摄装置的终端,通过第一拍摄装置采集第一视频图像,并在终端的屏幕中显示第一视频图像,然后当检测到第一视频图像中的显示对象满足预设切换条件时,切换为通过第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。由此,本公开实施例可在拍摄时基于第一视频图像中的显示对象的状态来实现终端上的不同拍摄装置的自动切换,将第一拍摄装置切换为终端的第二拍摄装置,并使得终端的屏幕从显示第一拍摄装置采集的第一视频图像,切换为显示第二拍摄装置采集的第二视频图像,从而为用户提供更多拍摄可能性和乐趣,使得用户在拍摄过程中可基于拍摄装置的自动切换,拍摄更多有创意的作品,丰富了拍摄玩法,提升用户的拍摄体验。

附图说明

[0009] 结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
[0010] 图1示出了本公开一个实施例提供的图像处理方法的流程示意图。
[0011] 图2示出了本公开另一个实施例提供的图像处理方法的流程示意图。
[0012] 图3示出了本公开一个示例性实施例提供的一种界面示意图。
[0013] 图4示出了本公开一个示例性实施例提供的另一种界面示意图。
[0014] 图5示出了本公开一个示例性实施例提供的图2中步骤S220的详细流程示意图。
[0015] 图6示出了本公开一个示例性实施例提供的又一种界面示意图。
[0016] 图7示出了本公开一个示例性实施例提供的在第二视频图像上显示虚拟对象的方法的流程示意图。
[0017] 图8示出了本公开一个示例性实施例提供的再一种界面示意图。
[0018] 图9示出了本公开一个示例性实施例提供的四个不同时刻下的屏幕示意图。
[0019] 图10示出了本公开一个示例性实施例提供的还一种界面示意图。
[0020] 图11示出了本公开又一个实施例提供的图像处理方法的流程示意图。
[0021] 图12示出了本公开一个实施例提供的图像处理装置的模块框图。
[0022] 图13示出了本公开实施例提供的电子设备的结构框图。

具体实施方式

[0023] 下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0024] 应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
[0025] 本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
[0026] 需要注意,本公开中提及的“第一”、“第二”等概念仅用于对装置、模块或单元进行区分,并非用于限定这些装置、模块或单元一定为不同的装置、模块或单元,也并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
[0027] 需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0028] 本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
[0029] 下面以具体的实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
[0030] 下面将通过具体实施例对本公开实施例提供的图像处理方法、装置、电子设备及计算机可读存储介质进行详细说明。
[0031] 本公开实施例提高的图像处理方法可适用于终端,终端包括第一拍摄装置和第二拍摄装置,第一拍摄装置和第二拍摄装置可以是固定于终端的、也可以是可旋转的,第一拍摄装置和第二拍摄装置可以设置与终端的不同侧;其中,第一拍摄装置和第二拍摄装置可以包括能够采集图像的任意装置如摄像头等,在此不作限定。其中,终端可以是任意设置有至少两个拍摄装置的智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerⅢ,动态影像压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio LayerⅣ,动态影像压缩标准音频层面4)播放器、可穿戴设备、车载设备、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、笔记本电脑、超级移动个人计算机(Ultra‑Mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal digital assistant,PDA)或专门的照相机(例如单反相机、卡片式相机)等。本公开实施例对终端的具体类型不作限定。
[0032] 其中,终端可运行有客户端应用,该客户端应用可以包括拍摄装置对应的客户端应用软件、也可以包括具有拍摄功能的其他客户端应用软件,本公开不对此进行限制。
[0033] 请参阅图1,图1示出了本公开一个实施例提供的图像处理方法的流程示意图,可应用于上述设置有多个(例如,两个)拍摄装置的终端。下面针对图1所示的流程进行详细的阐述,该图像处理方法可以包括以下步骤:
[0034] S110:通过第一拍摄装置采集第一视频图像,并在屏幕中显示第一视频图像。
[0035] 终端至少包括两个设置拍摄装置,记为第一拍摄装置和第二拍摄装置,第一拍摄装置和第二拍摄装置可以设置在终端的不同侧。在一些实施方式中,终端包括上下左右四个边框,在用户面对终端的屏幕握持终端时,位于屏幕左侧的边框记为左边框,位于屏幕右侧的边框记为右边框,位于屏幕上侧的边框记为上边框,位于屏幕下侧的边框记为下边框,则第一拍摄装置、第二拍摄装置中的其中一个可设置在终端屏幕的同侧且位于上边框、下边框、左边框或右边框的任意一个边框上,而另一个可设置在终端后壳的同侧且位于上边框、下边框、左边框或右边框的任意一个边框上。
[0036] 例如,第一拍摄装置、第二拍摄装置中的其中一个可设置在终端屏幕的同侧,即其中一个摄像头为前置摄像头;另一个可设置在终端后壳的同侧,即另一个摄像头为后置摄像头。本公开不对第一拍摄装置和第二拍摄装置的具体设置位置进行限定。
[0037] 其中,终端的屏幕可以显示第一拍摄装置实时采集的图像,即第一视频图像。其中,第一视频图像可以是通过第一拍摄装置采集的原始图像,也可以是在原始图像基础上进行调整后的图像,其中,调整操作可包括针对对比度、亮度、对焦、光圈等参数的调整操作,还可以包括对第一视频图像添加滤镜、贴纸、特效等操作,本公开在此不作限定。
[0038] 在一些实施方式中,第一拍摄装置可以是客户端应用中的拍摄功能被启动时默认启动的摄像头,例如,终端获取到对客户端应用的拍摄功能的启动指令时,可启动拍摄功能,拍摄功能在启动时可以默认启动第一拍摄装置,并在屏幕中显示第一拍摄装置实时采集的第一视频图像。其中,第一拍摄装置可以是前置摄像头,也可以是后置摄像头,在此不作限定。
[0039] 在另一些实施方式中,第一拍摄装置也可以是用户选择启动的拍摄装置,例如,若拍摄功能被启动时默认启动的是第二拍摄装置,则用户可以通过点击屏幕上的例如翻转拍摄装置的控件,将第二拍摄装置切换为第一拍摄装置,以使用第一拍摄装置采集图像,并在屏幕上显示第一拍摄装置实时采集的第一视频图像。
[0040] S120:当检测到第一视频图像中的显示对象满足预设切换条件时,自动切换为通过第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。
[0041] 其中,第二视频图像可以包括通过第二拍摄装置采集的原始图像,也可以包括在原始图像基础上进行调整后的图像,其中,调整操作可包括针对对比度、亮度、对焦、光圈等参数的调整操作,还可以包括对第二视频图像添加滤镜、贴纸、特效等操作,本公开在此不作限定。
[0042] 在一些实施方式中,终端检测到第一视频图像中的显示对象满足预设切换条件时,可生成拍摄装置切换控制指令,并基于该拍摄装置切换控制指令,调用用于控制拍摄装置的应用程序接口(Appl ication Programming Interface,API),将当前拍摄第一视频图像的第一拍摄装置的状态,从启动状态切换为关闭或休眠状态,启动第二拍摄装置,并将第二拍摄装置的状态从关闭或休眠状态切换为启动状态,从而使能第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。
[0043] 其中,第一视频图像中的显示对象可包括第一视频图像的中的目标对象,也可以包括第一视频图像上叠加的其他对象,本实施例对此不作限定。终端可在采集并显示第一视频图像的同时,对第一视频图像中的显示对象进行检测,以判断显示对象是否满足预设切换条件,并在显示对象满足预设切换条件时,切换为通过第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。由此可在图像拍摄的过程中实现拍摄装置的自动切换,而无需用户手动操作,并且随着拍摄装置的切换还可在屏幕上切换显示不同拍摄装置采集的视频图像,并将不同的拍摄装置分别采集到的第一视频图像和第二视频图像录制合成为一段视频图像,从而使得用户在拍摄过程中可基于拍摄装置的自动切换,拍摄更多有创意的作品,丰富了拍摄玩法,提升用户的拍摄体验。
[0044] 需要说明的是,在一些实施例中,终端可以在拍摄未开始仅预览时执行本公开实施例提供的图像处理方法,以使得用户可在拍摄前的预览阶段就能够预览到最终实现的效果,即整个效果可以实时预览,从而可在拍摄前通过让用户预览采用本公开实施例的图像处理方法拍摄可得到的效果,激发用户使用该图像处理方法进行拍摄的兴趣,促进用户制作出更多的拍摄作品。另外,在一些实施例中,终端也可以在开始拍摄时才执行本公开实施例提供的图像处理方法,本公开实施例对此不作限定。
[0045] 本实施例提供的图像处理方法,通过第一拍摄装置采集第一视频图像,并在屏幕中显示第一视频图像,然后当检测到第一视频图像中的显示对象满足预设切换条件时,切换为通过第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。由此,本实施例可在拍摄时基于第一视频图像中的显示对象来实现拍摄装置的自动切换,将第一拍摄装置切换为终端的第二拍摄装置,并将屏幕的显示图像从第一拍摄装置采集的第一视频图像切换为第二拍摄装置采集的第二视频图像,使得用户在拍摄过程中可基于拍摄装置的自动切换,拍摄更多有趣、有创意的作品,丰富了拍摄玩法,提升用户的拍摄体验。
[0046] 在一些实施例中,在第一视频图像上还可显示虚拟对象,此时终端可根据虚拟对象来触发拍摄装置的切换。具体地,请参阅图2,其示出了本公开另一个实施例提供的图像处理方法的流程示意图,于本实施例中,该方法可包括:
[0047] S210:通过第一拍摄装置采集第一视频图像,并在屏幕中显示第一视频图像。
[0048] S220:在第一视频图像上显示虚拟对象。
[0049] 其中,虚拟对象可以包括虚拟人物、动物、植物、物体等任意一种,其中物体可以包括爱心、星星等任意物体,本实施例对此不作限定。可选地,虚拟对象可以包括基于动画技术创建的三维立体模型;虚拟对象还可以包括二维虚拟模型。每个虚拟对象可具有自身的形状和尺寸。
[0050] 在一些实施例中,终端可在检测到虚拟对象展示请求时,通过解析该请求,确定待显示的虚拟对象,并在第一视频图像上显示该虚拟对象。
[0051] 其中,虚拟对象展示请求可由作用于终端屏幕的触控操作手动触发,也可基于图像识别自动触发。
[0052] 在一些实施方式中,虚拟对象展示请求可由触控操作手动触发,例如,终端的屏幕上可显示有用于请求展示虚拟对象的虚拟对象请求展示控件,当检测到作用于该控件的触控操作时,可确定检测到相应的虚拟对象展示请求。其中,不同控件可对应不同的虚拟对象,触控不同的控件可以触发不同的虚拟对象展示请求,不同的虚拟对象展示请求中携带有不同的虚拟对象标识。终端在检测到虚拟对象展示请求时,通过解析可得到对应的虚拟对象标识,并进一步确定虚拟对象标识对应的虚拟对象,从而在第一视频图像中展示对应的虚拟对象。
[0053] 在一种实施方式中,屏幕中可显示有特效选择控件,其中,特效选择控件用于触发显示特效选择页面,而特效选择页面可显示一个或多个特效选择控件,不同特效选择控件可对应实现相同或不同的功能。当终端检测到作用于对应于本公开实施例的图像处理功能的特效选择控件的触发操作时,即同时触发虚拟对象展示请求,从而可直接执行依据本公开实施例的图像处理方法,并在第一视频中叠加显示虚拟对象。在一个实施例中,当终端检测到对应于本公开实施例的图像处理功能的特效选择控件的触发操作时,还可触发显示相应的虚拟对象选择页面,虚拟对象选择页面可显示有至少一个虚拟对象对应的虚拟对象请求展示控件。由此,终端根据用户触控的特效选择控件,可确定所需实现的功能,再根据被触控的虚拟对象请求展示控件,可确定所需展示的虚拟对象,从而能够实现多个虚拟对象的选择和展示。通过检测到特定特效选择控件被触发时可执行本实施例提供的图像处理方法,实现基于自动切换拍摄装置的拍摄功能。
[0054] 在一个示例中,当终端检测到对一特效选择控件的触发操作,可在屏幕上显示相应的虚拟对象选择页面,此时屏幕可如图3所示,图3示出了本公开一个示例性实施例提供的一种界面示意图。屏幕包括两个显示区域:用于显示拍摄画面310的显示区域与用于显示虚拟对象选择页面321的另一显示区域,虚拟对象选择页面321上显示有多个虚拟对象(如虚拟对象A至O)对应的虚拟对象请求展示控件3211。其中,拍摄画面310可以显示第一拍摄装置采集的第一视频图像。
[0055] 在一个实施方式中,虚拟对象展示请求也可基于图像识别自动触发。终端可检测第一视频图像中的第一目标对象,并根据检测到的第一目标对象的触发动作,在第一视频图像上显示虚拟对象。则步骤S220的具体实施方式可包括:当检测到第一视频图像中的第一目标对象执行预设的触发动作时,在第一视频图像上显示虚拟对象。
[0056] 其中,第一目标对象可以为第一视频图像中的目标人物,对应的预设的触发动作可包括预设身体姿态、手势、表情、肢体动作等至少一个,即第一目标对象执行预设的触发动作可包括以下至少一项:第一目标对象处于预设身体姿态,如双手叉腰等;第一目标对象执行预设触发手势,如比“ok”手势、双手合十、比心等;第一目标对象执行预设表情,如微笑、大笑等;第一目标对象执行预设动作,如眨眼、挥手、嘟嘴等。预设的触发动作可根据实际需要确定,可以是程序预设的,也可以是用户自定义的,在此不作限定。由此,通过检测第一视频图像中的目标对象,并在检测到第一目标对象执行预设的触发动作时,可在第一视频图像上显示虚拟对象,由此可自动触发生成显示虚拟对象,无需用户手动操作,还可丰富拍摄的趣味性,提升用户的拍摄体验。
[0057] 此外,第一目标对象还可以包括动物等可执行预设的触发动作的对象,在此不作限定。
[0058] 作为一种实施方式,第一目标对象可以是预设对象,终端可预先存储该预设对象的预设图像,在检测到第一视频图像中的目标物体时,可将检测到的目标物体与预设图像进行匹配,若匹配成功,可判定检测到第一目标对象,再进一步检测第一目标对象是否执行预设的触发动作并进行后续操作。由此,通过仅检测预设对象的触发动作来显示虚拟对象,一方面可降低计算资源的耗费,另一方面也可避免因同时检测到多个对象均执行了预设的触发动作可能导致的虚拟对象显示混乱,提升系统稳定性和用户的拍摄体验。
[0059] 此外,作为另一种实施方式,第一目标对象也可以是非预设的对象,即任意出现于第一拍摄装置的拍摄范围内的对象,均可作为第一目标对象,通过对其检测是否执行预设的触发动作来触发显示虚拟对象。
[0060] 在一些实施方式中,终端的屏幕上还可显示对应的提示信息,用于提示用户所触发控件的功能和/或如何触发该功能。其中,提示信息可以包括图像、文字中任意一种或多种形式的信息,还可包括语音形式的信息,本实施例对此不作限定。
[0061] 在一个示例中,以虚拟对象是爱心为例,终端可以在屏幕上显示文字类型的提示信息,例如,如图4所示,终端可在屏幕上居中显示提示信息330“眨眼发射爱心~送给接收人”,提示用户可以通过眨眼来触发爱心显示并将爱心传送给接收人(例如,用户对面的其他人)。
[0062] 在一些实施方式中,虚拟对象可以在第一视频图像上动态地显示。例如,虚拟对象可以在第一视频图像上沿着第一运动轨迹动态显示。通过播放第一视频序列帧,虚拟对象可以在第一视频图像上沿着第一运动轨迹动态地显示。
[0063] 作为一种实施方式,叠加至第一视频图像上的每个视频帧图像中的虚拟对象是可以是相同的,则在第一视频图像上显示的虚拟对象本身不变,只是虚拟对象的显示位置随第一运动轨迹的变化而变化。
[0064] 作为另一种实施方式,叠加至第一视频图像上的每个视频帧图像中的虚拟对象也可以是不同的,即可按虚拟对象变化的指定顺序将包括虚拟对象的每个视频帧图像叠加到相应的第一视频图像上。则在第一视频图像上显示虚拟对象时,不仅虚拟对象的显示位置随第一运动轨迹的变化而变化,而且包括虚拟对象的本身也在变化,图像本身的变化可包括尺寸变化(例如,由大变小;由小变大)、显示角度变化、颜色变化(例如,颜色渐变)、风格变化(例如,画风从卡通风格变为写实风格)等,在此不作限定。由此,可使得虚拟对象的显示效果更丰富生动,从而提高视频拍摄质量和视频的趣味性。例如,若需要实现虚拟对象在移动过程中由远及近的移动效果,可将虚拟对象对应的多张视频帧图像按虚拟对象的尺寸由小到大的指定顺序叠加到第一视频图像上。
[0065] 在一个实施方式中,在第一视频图像上动态显示虚拟对象,可以基于预先配置好的包括虚拟对象的第一视频序列帧实现。具体地,请参阅图5,其示出了本公开一个示例性实施例提供的图2中步骤S220的详细流程示意图,步骤S220可包括:
[0066] S221:获取包括虚拟对象的第一视频序列帧。
[0067] S222:将第一视频序列帧叠加至第一视频图像上。
[0068] S223:播放第一视频序列帧,以在第一视频图像上动态显示虚拟对象。
[0069] 其中,第一视频序列帧可存储于终端本地,终端可在本地获取第一视频序列帧;另外,第一视频序列帧还可存储于服务器,终端可从服务器获取第一视频序列帧,本实施例对此不作限定。
[0070] 在一种实施方式中,终端在检测到虚拟对象展示请求时,可获取包括虚拟对象的第一视频序列帧,将第一视频序列帧叠加显示至第一视频图像上,并播放第一视频序列帧,从而可在第一视频图像上动态显示虚拟对象。
[0071] 在一些实施方式中,通过播放第一视频序列帧可以使得虚拟对象从屏幕中的起始位置处移动至屏幕边缘,也可以从屏幕边缘移动至屏幕中心;还可以使得虚拟对象保持不动。此外,虚拟对象的尺寸还可以在第一视频图像中动态变化,例如,虚拟对象的尺寸可由小变大、也可由大变小,还可由大变小再变大等等,在此不作限定。
[0072] 在一些实施方式中,终端可获取虚拟对象在第一视频序列帧中的每一视频帧中的位置信息,并根据位置信息确定虚拟对象在第一视频图像中的第一运动轨迹,由此,在第一视频图像上动态显示虚拟对象的具体实施方式可包括:沿着该第一运动轨迹在第一视频图像上动态显示虚拟对象。
[0073] 其中,位置信息可以是虚拟对象在视频序列帧中的每个视频帧中的坐标,例如,可以将视频帧中的一点作为坐标原点,以像素为单位,确定虚拟对象在视频帧中的坐标,即位置信息。通过将第一视频序列帧的每一帧依次叠加至第一视频图像的相应帧上,可使得虚拟对象在第一拍摄装置采集的第一视频图像上沿着第一运动轨迹运动。
[0074] 其中,第一视频序列帧中虚拟对象的第一运动轨迹可以根据实际需要进行预先设定,从而使得虚拟对象在第一视频序列帧的不同视频帧中的位置信息不完全相同,通过播放第一视频序列帧,可呈现虚拟对象在第一视频图像上移动的动态显示效果。作为一种实施方式,位置信息可按所需呈现的运动轨迹进行预先设定,例如,若所需的运动轨迹是从图像中间位置往图像边缘运动,则可从内往外依次设置虚拟对象在每一视频帧中的位置信息。需要说明的是,图像边缘可以是图像中特定对象的轮廓,也可以是图像画布的边界,并特定对象可以是人、动物等任意生物,也可以是非生物如雕塑、衣服、景物、建筑等,本公开在此不作限定。
[0075] 在一个实施例中,还可以根据用户的输入实时确定虚拟对象的第一运动轨迹。例如,用户在触发虚拟对象展示请求时,可输入所需的运动轨迹,使得虚拟对象按用户所输入的运动轨迹在第一视频图像上动态显示。其中,作为一种实施方式,运动轨迹可以通过检测用户作用于屏幕上显示的至少一个可选的运动轨迹的触控操作确定,例如,终端检测到作用于虚拟对象展示控件的触控操作时,终端可显示请求页面,请求页面上可显示至少一个可选的运动轨迹标识,根据用户选中的运动轨迹标识,可生成对应的虚拟对象展示请求,使得虚拟对象展示请求可携带用户选中的运动轨迹标识,则终端根据虚拟对象展示请求,根据用户选中的运动轨迹标识确定对应的运动轨迹。作为另一种实施方式,运动轨迹也可以基于用户隔空手势划出的轨迹确定。作为又一种实施方式,运动轨迹还可以基于用户在屏幕上滑动的滑动轨迹确定,本实施例对运动轨迹的确定方式不作限定。
[0076] 在一些实施方式中,虚拟对象可以从第一视频图像上指定的初始位置开始显示,通过播放第一视频序列帧,可使得虚拟对象从第一视频图像上指定的初始位置开始沿着第一运动轨迹进行运动。具体地,作为一种实施方式,终端在检测到第一目标对象执行预设的触发动作时,还可以确定触发动作的发生位置,并将该触发动作的发生位置确定为指定的初始位置,然后终端将虚拟对象在第一视频序列帧的第一个视频帧中的图像位置与该初始位置对应显示(例如,叠加显示),并基于二者的对应关系,依次确定虚拟对象在第一视频序列帧中的每一视频帧中的位置信息,以确定对应的第一运动轨迹,从而使得在第一视频图像上显示虚拟对象时,虚拟对象可叠加显示于第一目标对象执行预设的触发动作的位置上,并从该位置开始沿着第一运动轨迹在第一视频图像上动态显示。
[0077] 例如,以预设的触发动作为眨眼动作为例,则终端检测到用户眨眼时,可从眨眼处开始显示虚拟对象,并沿着第一运动轨迹在第一视频图像上动态显示虚拟对象。
[0078] 在一个示例中,请参阅图6,其示出了本公开一个示例性实施例提供的又一种界面示意图,如图6所示,屏幕上的拍摄画面310对应第一拍摄装置所采集的第一视频图像,终端检测到第一视频图像中的第一目标对象执行眨眼动作时,将虚拟对象在第一视频序列帧中的第一个视频帧中的图像位置与眨眼动作的发生位置311对应显示,从而,可以在眨眼动作的发生位置311对应显示虚拟对象,相应地,虚拟对象叠加显示于第一目标对象执行眨眼动作的发生位置311上,以使得虚拟对象从发生位置311处开始,沿着第一运动轨迹在第一视频图像上动态显示。
[0079] 返回至图2,在步骤S230中,当虚拟对象满足预设状态时,切换为通过第二拍摄装置采集第二视频图像。
[0080] 在一些实施方式中,虚拟对象满足预设状态,包括以下至少一项:第一视频序列帧播放完毕;虚拟对象显示于第一视频图像的指定位置处;虚拟对象的参数符合预设参数。
[0081] 作为一种实施方式,当第一视频序列帧播放完毕时,可判定虚拟对象满足预设状态,由此可在动态显示完虚拟对象后,自动切换为通过第二拍摄装置采集第二视频图像,并呈现出一种由虚拟对象的运动触发拍摄画面切换的效果。
[0082] 作为另一种实施方式,终端也可检测虚拟对象在第一视频图像的显示位置,当检测到虚拟对象显示于第一视频图像的指定位置处时,可判定虚拟对象满足预设状态。其中,指定位置可以根据实际需要进行设定,例如,若需要呈现虚拟对象移动到图像边缘位置L的效果,可将该位置L设置为指定位置,当虚拟对象沿第一运动轨迹在第一视频图像上动态显示,且移动到位置L时,切换为通过第二拍摄装置采集第二视频图像,从而实现虚拟对象移动到图像边缘即触发拍摄装置切换的效果。
[0083] 当然,指定位置可预先预设,也可由用户自定义,例如,在用户在触发虚拟对象展示请求时,可设置指定位置,进一步地,该指定位置可在用户输入所需的运动轨迹时,将该运动轨迹的终止位置确定为指定位置。另外,指定位置还可基于对第一视频图像进行图像识别确定,例如,可预先设置终止对象,则可在检测虚拟对象移动到第一视频图像上的终止对象所在的图像区域时,可判定虚拟对象满足预设状态。其中,终止对象用于确定虚拟对象在第一视频图像上移动的终止位置,终止对象可根据实际需要进行设置,可以包括第一目标对象的指定身体部位、第一视频图像中的指定物体等,在此不作限定。以终止对象为第一目标对象的手指时,则播放第一视频序列帧使得虚拟对象从屏幕中的起始位置处移动至第一目标对象的手指处,并切换为通过第二拍摄装置采集第二视频图像,从而实现虚拟对象移动到指定位置即触发拍摄装置切换的效果。
[0084] 作为又一种实施方式,终端也可检测虚拟对象的参数,当检测到虚拟对象的参数符合预定参数时,可判定虚拟对象满足预设状态。虚拟对象的参数可以包括形状、尺寸、显示角度、样式等等。例如,虚拟对象可以在第一视频图像中呈现形状的动态变化(例如,由小变大),当虚拟对象达到预定形状时,确定虚拟对象满足预设状态。又例如,虚拟对象可以在第一视频图像中呈现形状的动态变化,当虚拟对象达到预定形状时,确定虚拟对象满足预设状态。本公开不对此进行限制。
[0085] 在另一些实施方式中,终端可以通过检测虚拟对象在第一视频图像上的移动距离、移动时间等来确定虚拟对象是否满足预设状态。
[0086] 作为一种实施方式,终端可以计算虚拟对象在第一视频图像上从起始位置开始移动的移动距离,移动距离可以像素为单位计算,例如,若虚拟对象在第一视频图像上移动的移动距离达到预定距离,可判定虚拟对象满足预设状态,预定距离可以包括预定数量个像素,例如预定数量可以为30个、60个、100个像素,在此不作限定。
[0087] 作为另一种实施方式,终端还可以根据虚拟对象的移动时间来判断虚拟对象是否满足预设状态,移动时间可根据第一视频序列帧的帧数确定,例如,终端可将虚拟对象第一次被叠加显示在第一视频图像上的帧记为第一帧,当第n次将虚拟对象叠加显示在第一视频图像上时,可判定第一视频图像的显示对象满足预设状态,其中,n可以为大于1的任意正整数,由此,可在第一视频图像上叠加显示第n帧虚拟对象后,控制拍摄装置切换。
[0088] 可以理解的是,可触发拍摄装置切换的预设状态,并不限于上述几种实施方式,本实施例对此并不作限定,但考虑篇幅原因不再穷举。
[0089] 返回附图2,步骤S240:在屏幕中显示第二视频图像。
[0090] 当虚拟对象满足预设状态时,终端自动切换第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。
[0091] 在一些实施例中,终端还可以在第二视频图像上显示虚拟对象。其中在第二视频图像上显示的虚拟对象与在第一视频图像上显示的虚拟对象对应,两个虚拟对象可以相同,也可以不同,本实施例对此不作限定。
[0092] 在一个实施例中,可以根据用户触发的特效选择控件确定是否在第二视频图像中显示虚拟对象,即由相应的特效选择控件所对应的功能决定。例如,若特效选择控件对应的是虚拟对象的传递功能(其中,传递功能可实现的效果为先在第一视频图像上叠加显示虚拟对象,然后在切换为通过第二拍摄装置采集第二视频图像时,在第二视频图像上继续叠加显示虚拟对象),则相应地,在第二视频图像上继续叠加显示虚拟对象,以呈现虚拟对象在第一视频图像和第二视频图像中的连续传递效果,增加了视频的趣味性和丰富性。
[0093] 在一个示例性的实施方式中,当终端检测到作用于对应传递功能的特效选择控件时,在第一拍摄装置采集到的第一视频图像上叠加显示虚拟对象,在切换为通过第二拍摄装置采集第二视频图像时,继续在第二视频图像上叠加显示虚拟对象,从而可在视觉上实现虚拟对象的连续展示,即虚拟对象在第一拍摄装置拍摄的第一视频图像中移动到第二拍摄装置拍摄的第二视频图像中,从而呈现出虚拟对象由第一视频图像中的目标对象传递至第二视频图像中的另一目标对象的效果。由此本实施例提供了一种基于拍摄装置的自动切换的创新的拍摄互动玩法,提高作品拍摄效率、质量和趣味性。
[0094] 当然,前述仅为一种功能示例,本实施例可根据实际需要设计多种功能,并相应配置特效选择控件,使得用户可根据所需实现的功能或效果,触发相应的特效选择控件以实现相应的功能,即本实施例并不限于实现上述一种功能。
[0095] 在一些实施例方式中,在第二视频图像上显示虚拟对象时,虚拟对象可以在第二视频图像中动态显示,例如,可以基于预先设计好的虚拟对象的第二视频序列帧实现虚拟对象在第二视频图像中的动态显示。具体地,请参阅图7,其示出了本公开一个示例性实施例提供的在第二视频图像上显示虚拟对象的方法的流程示意图,该方法可包括:
[0096] S310:获取包括虚拟对象的第二视频序列帧。
[0097] S320:将第二视频序列帧叠加至第二视频图像上。
[0098] S330:播放第二视频序列帧,以在第二视频图像上动态显示虚拟对象。
[0099] 需要说明的是,步骤S310至S330的实施方式与步骤S221至S223的实施方式类似,此处未详细描述的部分可参考步骤S221至S223,在此不再赘述。
[0100] 在一些实施方式中,通过播放第二视频序列帧可以使得虚拟对象从屏幕中的任意位置移动至终点位置,如虚拟对象从屏幕边缘移动至屏幕区域内部,也可以使得虚拟对象保持不动。此外,虚拟对象的尺寸还可以在第二视频图像中动态变化,例如,虚拟对象的尺寸可由大变小,以在通过播放第二视频序列帧时,可以呈现虚拟对象由近及远向屏幕中的第二目标对象靠近的效果。当然,虚拟对象的尺寸也可由大变小,还可由大变小再变大等等,在此不作限定。
[0101] 其中,第二目标对象可以是人、动物等任意生物,也可以是非生物如雕塑、衣服、景物、建筑等,本实施例对此不作限定。
[0102] 在一种实施方式中,终端在检测到虚拟对象展示请求时,可同时获取包括虚拟对象的第二视频序列帧,并将第二视频序列帧叠加至第二视频图像上,通过播放第二视频序列帧,可在第二视频图像上动态显示虚拟对象。
[0103] 示例性的,终端可预先设置虚拟对象、第一视频序列帧、第二视频序列帧之间的映射关系,当检测到虚拟对象展示请求时,可确定待展示的虚拟对象以及相应的第一视频序列帧和第二视频序列帧,并通过播放第一视频序列帧和第二视频序列帧,分别在由第一拍摄装置拍摄的第一视频图像和由第二拍摄装置拍摄的第二视频图像中动态显示同一个虚拟对象,从而呈现出虚拟对象从第一视频图像中的目标对象传递至第二视频图像中的另一目标对象的效果。
[0104] 在一些实施方式中,终端可获取虚拟对象在第二视频序列帧中的每一视频帧中的位置信息,并根据位置信息确定虚拟对象在第二视频图像中的第二运动轨迹,由此,在第二视频图像上动态显示虚拟对象的具体实施方式可包括:沿着该第二运动轨迹在第二视频图像上动态显示虚拟对象。
[0105] 在一些实施方式中,虚拟对象可以沿着该第二运动轨迹在第二视频图像中从初始位置向指定的位置运动,即虚拟对象在第二视频序列帧的最后一个视频帧中的位置落在该指定位置上。为方便表述,记虚拟对象在第二视频图像中的最后显示的位置为终点位置,即该指定的位置。
[0106] 其中,可根据实际需要将任意位置设置为终点位置;也可基于对第二视频图像进行图像识别,将识别到的预设终点对象所对应的位置确定为终点位置,预设终点对象用于确定虚拟对象在第二视频图像上移动的终点位置,预设终点对象可根据实际需要进行设置,可以包括指定物体、第二目标对象的指定身体部位如脸部、唇部、眼睛、额头、心脏等,在此不作限定;还可以在显示第二视频图像时,获取用户作用于第二视频图像的触发操作,并将该触发操作对应的触发位置确定为终点位置,即,由用户的触发操作确定终点位置。作为一种方式,可将指示终点位置的预设终点对象的标识或图像与虚拟对象的对象标识对应存储,则确定了虚拟对象后可确定指示终点位置的预设终点对象的标识或图像,再通过对第二视频图像进行图像识别处理,将与该对象标识或图像对应的位置确定为终点位置。
[0107] 另外,在一些实施例中,若检测到第二视频图像中存在多个候选第二目标对象,可进一步识别多个候选第二目标对象是否执行预设的接收动作,并将执行了该预设的接收动作的候选第二目标对象确定为最终实际接收虚拟对象的第二目标对象。其中,预设的接收动作可根据实际需要设置,例如可以包括但不限于嘟嘴、比心、眨眼等。
[0108] 在另一些实施例中,检测第二视频图像中的第二目标对象的一些具体实施方式,可参考前述实施例提供的检测第一视频图像中的第一目标对象的实施方式,二者原理类似,在此不再赘述。
[0109] 在又一些实施例中,若终端同时识别到第二视频图像中存在多个目标对象,还可根据各目标对象在第二视频图像中的占用面积来确定,例如,可将占用面积最大的目标对象确定为第二目标对象,从而将距离第二拍摄装置最近的用户确定为第二目标对象。
[0110] 另外,在一些实施例中,当检测到第二视频图像中的显示对象满足预设切换条件时,终端可以输出接收提示信息,其中,接收提示信息用于提示第二目标对象准备对虚拟对象进行响应,接收提示信息可以是语音形式的信息,如“请准备接收”,则在满足预设切换条件时,终端可播放“请准备接收”的语音,从而可提示有意配合的用户即第二目标对象可以听声开始表演,保证拍摄效果,无需反复重拍即可拍摄到互动配合默契的视频,提升用户体验。
[0111] 需要说明的是,本实施例中未详细描述的部分请参考前述实施例,在此不再赘述。
[0112] 由此,通过本实施例提供的图像处理方法,可以在前述实施例的基础上,在第一视频图像上显示虚拟对象,并在虚拟对象满足预设状态时判定满足预设切换条件,从而切换为通过第二拍摄装置采集第二视频图像,并在屏幕上显示第二视频图像。在一些实施方式中,终端可检测第一视频图像中的第一目标对象,并在检测到第一目标对象执行预设的触发动作时,在第一视频图像上沿着第一运动轨迹动态显示虚拟对象,可实现诸如用户眨眼就从眼睛处发射虚拟对象、用户嘟嘴就从嘴部发射虚拟对象的显示效果,直到虚拟对象满足预设状态,切换为通过第二拍摄装置采集第二视频图像,并在屏幕上显示第二视频图像。另外,在一些实施方式中,还可在第二视频图像上动态显示虚拟对象,使得虚拟对象基于通过第二拍摄装置采集的第二视频图像上继续移动。由此,使得用户可通过执行预设的触发动作触发虚拟对象的显示,并最终呈现出虚拟对象在不同拍摄装置所采集的视频图像中运动的视觉效果,为用户提供了更多的拍摄可能性,提升了用户拍摄视频的兴趣和体验。
[0113] 另外,在一些实施例中,当虚拟对象显示于第二视频图像的终点位置处时,终端可触发预设的特效,该特效可以与虚拟对象对应或者相关联。服务器或终端可预先设置好至少一个特效,并建立虚拟对象与各特效、特效触发条件之间的映射关系,则在检测到满足虚拟对象对应的特效触发条件时,可从服务器或终端本地获取虚拟对象对应的特效,并播放该特效。
[0114] 当然,特效的播放也可由其他条件触发,终端可在不同的时机触发播放虚拟对象对应的特效,在视频图像的采集过程,终端可触发一次或多次特效的播放,且虚拟对象可与一个或多个特效对应或者关联,每次触发播放的特效可以是相同的,也可以是不同的,本实施例对此并不作限定。例如,当虚拟对象满足预设状态时,终端可播放虚拟对象对应的特效,则在一种实施方式中,可以在拍摄装置切换时即播放虚拟对象的特效。
[0115] 在一些实施方式中,特效可包括视觉特效和音频特效中的至少一种,其中,视觉特效为可以叠加显示在第二视频图像上,呈现动态的显示效果;而音频特效为一段音频,本公开不对特效的具体类型和内容进行限制。
[0116] 在一些实施方式中,虚拟对象对应的特效可以包括由多个虚拟对象在屏幕上动态显示的多帧图像组成的序列帧。以虚拟对象为爱心为例,则虚拟对象对应的特效可以为显示效果为多个爱心在屏幕上移动的序列帧,例如多个爱心向上飘的序列帧。作为一种方式,多个爱心可基于全屏设置,使得播放特效时全屏画面出现梦幻爱心氛围,如图8所示;作为另一种方式,多个爱心也可仅基于屏幕的部分区域设置,在此不作限定。从而可提高视频制作的效果呈现度和丰富程度,有利于激发用户的拍摄积极性,提升视频拍摄的趣味性、增强拍摄的社交互动性。
[0117] 在一个具体应用场景中,请参阅图9,其示出了本公开一个示例性实施例提供的四个不同时刻下的屏幕示意图,以虚拟对象是爱心为例,图9(a)至图9(d)分别为时刻T1、T2、T3、T4的四个屏幕的界面示意图,其中,在时刻T1、时刻T2,屏幕上显示有第一拍摄装置采集的第一视频图像910,在时刻T3、时刻T4,屏幕上显示有拍摄装置切换后,由第二拍摄装置采集的第二视频图像920,第一拍摄装置在时刻T1识别到用户A眨眼,则将眨眼的眼睛处确定为虚拟对象的起始位置920(与虚拟对象在第一视频序列帧的第一个视频帧中的图像位置对应显示),并播放第一视频序列帧,让爱心930从眼睛处开始移动,并在时刻T2,屏幕中的显示如图9(b)所示,终端判断第一视频序列帧是否播放完毕,若播放完毕,择切换为第二拍摄装置,屏幕显示第二拍摄装置采集的第二视频图像940,第二视频图像采集到用户A对面的其他人,例如用户B,并播放第二视频序列帧,使得从时刻T3至时刻T4中,第二视频序列帧中的爱心950从屏幕边缘开始向用户B的人脸移动,即移动至终点位置960,并同时呈现出尺寸由大到小的变化。由此实现爱心从一侧摄像头前的用户A眨眼的眼睛处开始发射,传递到位于另一侧摄像头前的用户B的人脸上的爱心传递效果。
[0118] 在一些示例中,第二视频序列帧播放完毕后,还可播放第三视频序列帧,即可显示和虚拟对象爱心相关联的特效,包括视觉特效和音频特效,在时刻T4后屏幕上播放特效的示意图可如图8所示,由此实现爱心移动到用户B脸上后有多个爱心向上飘的效果。
[0119] 另外,在一些实施例中,当终端切换为第二拍摄装置采集第二视频图像后,还可针对第二拍摄装置拍摄到的第二目标对象进行形变处理。在一些实施方式中,终端可以在切换为第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像时,针对第二视频图像中的第二目标对象在第二视频图像上的图像进行形变处理,即在拍摄装置切换后就触发形变处理,使得第二目标对象在第二视频图像上发生形变;在另一些实施方式中,终端也可以在虚拟对象显示于第二视频图像的终点位置处时,针对第二目标对象在第二视频图像上的图像进行形变处理,即可在虚拟对象移动到终点位置处时触发形变处理。
[0120] 针对第二目标对象在第二视频图像上的图像进行形变处理的实施方式可以包括:获取第二目标对象的形变处理配置,其中,形变处理配置可包括形变类型;获取第二目标对象对应的待形变的关键点;根据该形变类型确定待形变的关键点对应的形变后的位置,将待形变的关键点移动到形变后的位置,从而得到第二目标对象发生形变后的第二视频图像,并显示该形变后的第二视频图像,可呈现第二目标对象在第二视频图像上发生形变的视觉效果。另外,形变处理配置还可包括形变类型对应的形变程度,则根据该形变类型确定待形变的关键点对应的形变后的位置时,可具体通过根据该形变类型以及其对应的形变程度,计算待形变的关键点对应的形变后位置。其中,形变类型可以为放大、缩小、平移、旋转、拖拽中的一种或多种的组合。相应的,形变程度可包括例如放大/缩小的倍数、平移的距离、旋转的角度、拖拽的距离等。
[0121] 在一些实施方式中,形变处理配置还可包括形变部位,则获取第二目标对象对应的待形变的关键点时,可通过获取与第二目标对象的该形变部位相关的关键点作为待形变的关键点。
[0122] 其中,形变处理配置可根据实际需要设置,可以包括一个或多个形变部位,针对每个形变部位也可相应配置一个或多个形变类型。则若形变处理配置包括多个形变部位以及至少两个形变部位对应不同的形变类型,则可对第二目标对象的不同形变部位执行不同形变类型对应的形变处理,从而根据实际需要可通过对形变处理配置的设置,实现丰富的形变效果。需要说明的是,形变部位在未设置前可以是默认部位,默认部位可预先预设,也可由用户自定义,例如,默认部位可以为第二目标对象的脸部、眼睛、鼻子、唇部等,在此不作限定。
[0123] 在一些实施方式中,形变处理配置可根据所需呈现的形变效果进行设置,并与可呈现的视觉效果对应存储于形变数据库,其中,形变数据库可存储一个或多个形变处理配置和对应的形变效果的映射关系,形变数据库可存储于终端本地或服务器。其中,形变效果可以为害羞表情、生气表情等各种表情,也可以为图像变形效果(例如,脸部拉伸效果等),还可以为其它任何涉及关键点位置变化的效果,在此不做限定。例如,针对形变效果如害羞表情,可通过学习大量害羞表情的图片,确定用户表现出害羞表情时,用户的脸部关键点的位置关系,从而确定对应各形变部位的形变类型和形变程度,从而得到害羞表情对应的形变处理配置,并构建害羞表情对应的标识与害羞表情对应的形变处理配置的映射关系,存储于形变数据库中。则作为一种实施方式,用户可在拍摄前或拍摄过程中选择所需实现的形变效果,则检测到相应的选择操作后,可获取用户选中的形变效果对应的标识,从形变数据库中查找到对应的形变处理配置,由此获取到第二目标对象的形变处理配置。
[0124] 在一个示例中,以形变部位是脸部为例,则可以在终端切换为第二拍摄装置采集第二视频图像后,可针对第二拍摄装置拍摄到的第二目标对象的脸部进行形变处理。如图10所示,基于图9示出的示例,图10示出了在图9中时刻T4后的时刻T5的屏幕的界面示意图。
则在图10示出的示例中,终端在检测到虚拟对象显示于第二视频图像的终点位置处时,可以对第二目标对象的人脸进行形变处理,呈现相应的形变效果。
[0125] 另外,在一些实施例中,终端也可检测第一视频图像中的第一目标对象,根据第一目标对象来触发拍摄装置的切换。具体地,请参阅图11,其示出了本公开又一个实施例提供的图像处理方法的流程示意图,于本实施例中,该方法可包括:
[0126] S410:通过第一拍摄装置采集第一视频图像,并在屏幕中显示第一视频图像。
[0127] S420:检测第一视频图像中的第一目标对象。
[0128] S430:当检测到第一目标对象执行预设的触发动作时,切换为通过第二拍摄装置采集第二视频图像。
[0129] S440:在屏幕中显示第二视频图像。
[0130] 其中,步骤S420至S430的实施方式,可参考前述实施例对步骤S220中相应部分的描述,二者实施方式大致相同,不同之处在于,在步骤S220中的一种实施方式中,第一目标对象执行预设的触发动作是用于在第一视频图像上触发显示虚拟对象,而本实施例中,第一目标对象执行预设的触发动作则是作为一种预设切换条件,用于控制拍摄装置的切换。即,通过第一视频图像中的第一目标对象的触发操作,将第一拍摄装置切换至第二拍摄装置,从而能为用户提供更灵活的拍摄方式,并提升操作体验。
[0131] 在本实施例中,根据实际需要,可在第一视频图像上显示虚拟对象,也可在第二视频图像上显示虚拟对象,在此不作限定,相关实施方式可参考前述实施例中相应部分的描述,在此不再赘述。
[0132] 需要说明的是,本实施例中未详细描述的部分请参考前述实施例,在此不再赘述。
[0133] 由此,通过本实施例提供的图像处理方法,终端可通过检测第一视频图像中的第一目标对象,当检测到第一目标对象执行预设的触发动作时,切换为通过第二拍摄装置采集第二视频图像,并在屏幕上显示第二视频图像。则以预设的触发动作是眨眼动作为例,可实现当检测到用户眨眼时,可切换拍摄装置进行视频图像的采集和显示。
[0134] 请参照图12,本公开一实施例提供的一种图像处理装置的模块框图,该图像处理装置1200可应用于终端,终端包括第一拍摄装置与第二拍摄装置,具体可以包括:视频显示模块1210以及切换显示模块1220,其中:
[0135] 视频显示模块1210,用于通过第一拍摄装置采集第一视频图像,在屏幕中显示第一视频图像;
[0136] 切换显示模块1220,用于当检测到第一视频图像中的显示对象满足预设切换条件,切换为通过第二拍摄装置采集第二视频图像,并在屏幕中显示第二视频图像。
[0137] 在一实施例中,图像处理装置1200还包括:第一虚拟对象显示模块,用于在第一视频图像上显示虚拟对象。此时,切换显示模块1220可包括:第一触发切换子模块,用于当虚拟对象满足预设状态时,切换为通过第二拍摄装置采集第二视频图像。
[0138] 在一实施例中,图像处理装置1200还包括:第一目标对象检测模块,用于检测第一视频图像中的第一目标对象。此时,第一虚拟对象显示模块可包括:第一虚拟对象显示子模块,用于当检测到第一视频图像中的第一目标对象执行预设的触发动作时,在第一视频图像上显示虚拟对象。
[0139] 在一实施例中,第一虚拟对象显示模块可包括:第一序列帧获取子模块、第一序列帧叠加子模块以及第一序列帧播放子模块,其中:
[0140] 第一序列帧获取子模块,用于获取包括虚拟对象的第一视频序列帧;
[0141] 第一序列帧叠加子模块,用于将第一视频序列帧叠加至第一视频图像上;
[0142] 第一序列帧播放子模块,用于播放第一视频序列帧,以在第一视频图像上动态显示虚拟对象。
[0143] 在一实施例中,图像处理装置1200还包括:第一位置信息获取模块以及第一运动轨迹确定模块,其中:
[0144] 第一位置信息获取模块,用于获取虚拟对象在第一视频序列帧中的每一视频帧中的位置信息;
[0145] 第一运动轨迹确定模块,用于根据位置信息确定虚拟对象在第一视频图像中的第一运动轨迹;
[0146] 此时,第一序列帧播放子模块可包括:第一序列帧播放单元,用于播放第一视频序列帧,以沿着第一运动轨迹在第一视频图像上动态显示虚拟对象。
[0147] 在一实施例中,虚拟对象满足预设状态,包括:虚拟对象显示于第一视频图像的指定位置处。
[0148] 在一实施例中,图像处理装置1200还包括:目标对象检测模块,用于检测第一视频图像中的第一目标对象;此时,切换显示模块1220可包括:第二触发切换模块,用于当检测到第一目标对象执行预设的触发动作时,切换为通过第二拍摄装置采集第二视频图像。
[0149] 在一实施例中,图像处理装置1200还包括:第二虚拟对象显示模块,用于在第二视频图像上显示虚拟对象。
[0150] 在一实施例中,第二虚拟对象显示模块包括:第二序列帧获取子模块、第二序列帧叠加子模块以及第二序列帧播放子模块,其中:
[0151] 第二序列帧获取子模块,用于获取包括虚拟对象的第二视频序列帧;
[0152] 第二序列帧叠加子模块,用于将第二视频序列帧叠加至第二视频图像上;
[0153] 第二序列帧播放子模块,用于播放第二视频序列帧,以在第二视频图像上动态显示虚拟对象。
[0154] 在一实施例中,图像处理装置120还包括:第二位置信息获取模块以及第二运动轨迹确定模块,其中:
[0155] 第二位置信息获取模块,用于获取虚拟对象在第二视频序列帧中的每一视频帧中的位置信息;
[0156] 第二运动轨迹确定模块,用于根据位置信息确定虚拟对象在第二视频图像中的第二运动轨迹;
[0157] 此时,第二序列帧播放子模块可包括:第二序列帧播放单元,用于播放第二视频序列帧,以沿着第二运动轨迹在第二视频图像上动态显示虚拟对象。
[0158] 本公开实施例的图像处理装置可执行本公开的实施例所提供的图像处理方法,其实现原理相类似,本公开各实施例中的图像处理装置中的各模块所执行的动作是与本公开各实施例中的图像处理方法中的步骤相对应的,对于图像处理装置的各模块的详细功能描述具体可以参见前文中所示的对应的图像处理方法中的描述,此处不再赘述。
[0159] 下面参考图13,其示出了适于用来实现本公开实施例的电子设备1300的结构框图。本公开实施例中的电子设备可以包括但不限于诸如计算机、手机等终端。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0160] 电子设备1300包括:存储器以及处理器,存储器用于存储执行上述各个方法实施例所述方法的程序;处理器被配置为执行存储器中存储的程序。其中,这里的处理器可以称为下文的处理装置1301,存储器可以包括下文中的只读存储器(ROM)1302、随机访问存储器(RAM)1303以及存储装置1308中的至少一项,具体如下所示:
[0161] 如图13所示,电子设备1300可以包括处理装置(例如中央处理器、图形处理器等)1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储装置1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。在RAM1303中,还存储有电子设备1300操作所需的各种程序和数据。处理装置1301、ROM 1302以及RAM 1303通过总线
1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。
[0162] 通常,以下装置可以连接至I/O接口1305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1307;包括例如磁带、硬盘等的存储装置1308;以及通信装置1309。通信装置1309可以允许电子设备1300与其他设备进行无线或有线通信以交换数据。虽然图13示出了具有各种装置的电子设备1300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0163] 特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读存储介质上的计算机程序,该计算机程序包含用于执行上述各个实施例所述方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1309从网络上被下载和安装,或者从存储装置1308被安装,或者从ROM 1302被安装。在该计算机程序被处理装置1301执行时,执行本公开实施例的方法中限定的上述功能。
[0164] 需要说明的是,本公开上述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
[0165] 在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText Transfer Protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0166] 上述计算机可读存储介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0167] 上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行以下步骤:通过所述第一拍摄装置采集第一视频图像,并在屏幕中显示所述第一视频图像;当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像。
[0168] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0169] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0170] 描述于本公开实施例中所涉及到的模块或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块或单元的名称在某种情况下并不构成对该单元本身的限定,例如,视频显示模块还可以被描述为“用于显示视频图像的模块”。
[0171] 本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
[0172] 在本公开的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读存储介质可以是机器可读信号介质或机器可读储存介质。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0173] 根据本公开的一个或多个实施例,提供了一种图像处理方法,应用于第一终端,该方法包括:通过所述第一拍摄装置采集第一视频图像,并在屏幕中显示所述第一视频图像;当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像。
[0174] 在一实施例中,所述方法还包括:在所述第一视频图像上显示虚拟对象;所述当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,包括:当所述虚拟对象满足预设状态时,切换为通过所述第二拍摄装置采集所述第二视频图像。
[0175] 在一实施例中,所述方法还包括:检测所述第一视频图像中的第一目标对象;所述在所述第一视频图像上显示虚拟对象,包括:当检测到所述第一视频图像中的第一目标对象执行预设的触发动作时,在所述第一视频图像上显示所述虚拟对象。
[0176] 在一实施例中,所述在所述第一视频图像上显示虚拟对象,包括:获取包括所述虚拟对象的第一视频序列帧;将所述第一视频序列帧叠加至所述第一视频图像上;播放所述第一视频序列帧,以在所述第一视频图像上动态显示所述虚拟对象。
[0177] 在一实施例中,所述方法还包括:获取所述虚拟对象在所述第一视频序列帧中的每一视频帧中的位置信息;根据所述位置信息确定所述虚拟对象在所述第一视频图像中的第一运动轨迹;其中,所述在所述第一视频图像上动态显示所述虚拟对象,包括:沿着所述第一运动轨迹在所述第一视频图像上动态显示所述虚拟对象。
[0178] 在一实施例中,所述虚拟对象满足预设状态,包括:所述虚拟对象显示于所述第一视频图像的指定位置处。
[0179] 在一实施例中,所述方法还包括:检测所述第一视频图像中的第一目标对象;所述当检测到所述第一视频图像中的显示对象满足预设切换条件时,切换为通过所述第二拍摄装置采集第二视频图像,包括:当检测到所述第一目标对象执行预设的触发动作时,切换为通过所述第二拍摄装置采集第二视频图像。
[0180] 在一实施例中,所述方法还包括:在所述第二视频图像上显示所述虚拟对象。
[0181] 在一实施例中,所述在所述第二视频图像上显示所述虚拟对象,包括:获取包括所述虚拟对象的第二视频序列帧;将所述第二视频序列帧叠加至所述第二视频图像上;播放所述第二视频序列帧,以在所述第二视频图像上动态显示所述虚拟对象。
[0182] 在一实施例中,所述方法还包括:获取所述虚拟对象在所述第二视频序列帧中的每一个视频帧中的位置信息;根据所述位置信息确定所述虚拟对象在所述第二视频图像中的第二运动轨迹;其中,所述在所述第二视频图像上动态显示所述虚拟对象,包括:沿着所述第二运动轨迹在所述第二视频图像上动态显示所述虚拟对象。
[0183] 根据本公开的一个或多个实施例,提供了一种图像处理装置,可应用于终端,终端包括分别设置于不同侧的第一拍摄装置与第二拍摄装置,该装置可包括:视频显示模块以及切换显示模块,其中:视频显示模块,用于通过所述第一拍摄装置采集第一视频图像,在屏幕中显示所述第一视频图像;切换显示模块,用于当检测到所述第一视频图像中的显示对象满足预设切换条件,切换为通过所述第二拍摄装置采集第二视频图像,并在所述屏幕中显示所述第二视频图像。
[0184] 在一实施例中,图像处理装置还包括:第一虚拟对象显示模块,用于在所述第一视频图像上显示虚拟对象。此时,切换显示模块可包括:第一触发切换子模块,用于当所述虚拟对象满足预设状态时,切换为通过所述第二拍摄装置采集所述第二视频图像。
[0185] 在一实施例中,图像处理装置还包括:第一目标对象检测模块,用于检测所述第一视频图像中的第一目标对象。此时,第一虚拟对象显示模块可包括:第一虚拟对象显示子模块,用于当检测到所述第一视频图像中的第一目标对象执行预设的触发动作时,在所述第一视频图像上显示所述虚拟对象。
[0186] 在一实施例中,第一虚拟对象显示模块可包括:第一序列帧获取子模块、第一序列帧叠加子模块以及第一序列帧播放子模块,其中:第一序列帧获取子模块,用于获取包括所述虚拟对象的第一视频序列帧;第一序列帧叠加子模块,用于将所述第一视频序列帧叠加至所述第一视频图像上;第一序列帧播放子模块,用于播放所述第一视频序列帧,以在所述第一视频图像上动态显示所述虚拟对象。
[0187] 在一实施例中,图像处理装置还包括:第一位置信息获取模块以及第一运动轨迹确定模块,其中:第一位置信息获取模块,用于获取所述虚拟对象在所述第一视频序列帧中的每一视频帧中的位置信息;第一运动轨迹确定模块,用于根据所述位置信息确定所述虚拟对象在所述第一视频图像中的第一运动轨迹;此时,第一序列帧播放子模块可包括:第一序列帧播放单元,用于播放所述第一视频序列帧,以沿着所述第一运动轨迹在所述第一视频图像上动态显示所述虚拟对象。
[0188] 在一实施例中,所述虚拟对象满足预设状态,包括:所述虚拟对象显示于所述第一视频图像的指定位置处。
[0189] 在一实施例中,图像处理装置还包括:目标对象检测模块,用于检测所述第一视频图像中的第一目标对象;此时,切换显示模块可包括:第二触发切换模块,用于当检测到所述第一目标对象执行预设的触发动作时,切换为通过所述第二拍摄装置采集第二视频图像。
[0190] 在一实施例中,图像处理装置还包括:第二虚拟对象显示模块,用于在所述第二视频图像上显示所述虚拟对象。
[0191] 在一实施例中,第二虚拟对象显示模块包括:第二序列帧获取子模块、第二序列帧叠加子模块以及第二序列帧播放子模块,其中:第二序列帧获取子模块,用于获取包括所述虚拟对象的第二视频序列帧;第二序列帧叠加子模块,用于将所述第二视频序列帧叠加至所述第二视频图像上;第二序列帧播放子模块,用于播放所述第二视频序列帧,以在所述第二视频图像上动态显示所述虚拟对象。
[0192] 在一实施例中,图像处理装置还包括:第二位置信息获取模块以及第二运动轨迹确定模块,其中:第二位置信息获取模块,用于获取所述虚拟对象在所述第二视频序列帧中的每一视频帧中的位置信息;第二运动轨迹确定模块,用于根据所述位置信息确定所述虚拟对象在所述第二视频图像中的第二运动轨迹;此时,第二序列帧播放子模块可包括:第二序列帧播放单元,用于播放所述第二视频序列帧,以沿着所述第二运动轨迹在所述第二视频图像上动态显示所述虚拟对象。
[0193] 以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0194] 此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。