掌桥专利:专业的专利平台
掌桥专利
首页

一种处理图像的方法、电子设备及存储介质

文献发布时间:2024-04-18 19:59:31


一种处理图像的方法、电子设备及存储介质

本申请是2023年07月03日提交国家知识产权局、申请号为202310804341.3、申请名称为“一种处理图像的方法、电子设备及存储介质”的中国专利申请的分案申请。

技术领域

本申请涉及计算机技术领域,尤其涉及一种处理图像的方法、电子设备及存储介质。

背景技术

随着电子科技的快速发展,手机、平板电脑等电子设备的普及率越来越高,且随着电子设备中拍照功能的发展,相机应用程序在电子设备中的应用越来越广泛。

在相机应用中,当电子设备完成一次拍摄后,会在拍摄界面中显示缩略图像;通常用户将电子设备显示缩略图像看作为一次拍摄结束。其中,缩略图像中的图像内容与本次实际拍摄图像的图像内容一致,根据该缩略图像可以查找到图库应用中存储的该缩略图像对应的拍摄图像。

目前为了提升用户拍摄体验,让用户感觉到电子设备的拍摄速度有所提升,故将生成缩略图像的时间提前。由此,当用户看到缩略图像后,若立刻进行切换拍摄模式、进入图库应用以及退出相机应用等操作,可能会导致在图库应用中最终无法显示本次拍摄生成的拍摄图像,即出现丢图现象。

因此,如何避免丢图现象发生成为一个亟需解决的问题。

发明内容

本申请提供一种图像处理方法、电子设备及存储介质,能够避免丢图现象发生,提高用户拍摄体验。

第一方面,本申请提供了一种图像处理方法,该方法应用于电子设备,该方法包括:当检测到第一操作,响应于第一操作,生成预览缩略图;显示包括缩略图显示区域的第一显示界面;检测到第二操作;响应第二操作时,若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。

该第一操作用于指示拍摄操作,拍摄操作可以为拍照操作。

可选地,第一操作可以为对拍摄控件的点击操作;或者,第一操作可以为通过语音指示拍摄的操作;又或者,第一操作可以为通过人脸识别指示拍摄的操作;再或者,第一操作可以为通过手势识别指示拍摄的操作;由或者,第一操作也可以为按压物理按键(如音量键)指示拍摄的操作等。

该第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于所述第一操作生成的第一拍摄图像。

相机应用的拍摄模式可以包括拍照模式、人像模式、自拍模式、HDR模式、超级微距模式、高像素模式、黑白艺术模式等。

第一显示界面中包括缩略图显示区域、拍摄控件等;其中,缩略图显示区域中显示有预览缩略图。

这种实现方式中,一方面,在提前生成预览缩略图的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,也可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还让用户感觉到电子设备的拍摄速度有所提升,提升了拍摄体验。

另一方面,在图像处理过程中增加了算法处理的时长的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,还是可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还提升了预览缩略图和第二拍摄图像的质量。

一种可能的实现方式中,第一显示界面中还包括缩略图显示控件。

可选地,第二操作用于指示显示响应于第一操作生成的第一拍摄图像时,第二操作包括点击缩略图显示控件。

这种实现方式中,通过点击缩略图显示控件可快速查看基于第一操作生成的第一拍摄图像,提升了查看第一拍摄图像的速度,提高了用户体验。

一种可能的实现方式中,本申请提供的处理图像的方法还包括:检测到第三操作;响应于第三操作,在相机应用或图库应用中显示第二拍摄图像。

第三操作用于指示针对相机应用或图库应用的点击操作。

值得说明的是,当用户想在相机应用中查看拍摄图像时,只需点击一次缩略图显示控件即可;当用户想在图库应用中查看拍摄图像时,点击一次图库应用图标,通常看到的是拍摄图像的缩略图,再次点击拍摄图像的缩略图,可以看到以大图显示的第二拍摄图像。

这种实现方式中,用户即使在看到预览缩略图后立刻进行第三操作,也可以在相机应用或图库应用中看到本次拍摄生成的第二拍摄图像,避免了丢图现象发生,提升了拍摄体验。

一种可能的实现方式中,电子设备包括后处理算法模块、相机服务模块以及相机硬件抽象层模块,响应第二操作包括:相机应用发起终止采集指令;相机服务模块和相机硬件抽象层模块,根据终止采集指令清除当前的图像处理链路;图像处理链路包括用于生成待处理图像的链路;后处理算法模块销毁预览算法链路,预览算法链路包括用于生成预览缩略图的链路。

值得说明的是,销毁预览算法链路,存储于预览缓冲区中的预览缩略图也会被销毁。

这种实现方式中,在销毁预览算法链路前检测后处理算法模块的图像缓冲区中是否存储有待处理图像,以使得在图像缓冲区中未检测到待处理图像时,保证能够从预览缓冲区中获取到预览缩略图,从而基于该预览缩略图生成第二拍摄图像。

一种可能的实现方式中,后处理算法模块包括图像缓冲区和预览缓冲区,预览缩略图存储于预览缓冲区中;若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图,包括:后处理算法模块在销毁预览算法链路前,若在图像缓冲区中未检测到待处理图像,则从预览缓冲区中获取预览缩略图。

这种实现方式中,在销毁预览算法链路前检测后处理算法模块的图像缓冲区中是否存储有待处理图像,以使得在图像缓冲区中未检测到待处理图像时,保证能够从预览缓冲区中获取到预览缩略图,从而基于该预览缩略图生成第二拍摄图像。

一种可能的实现方式中,若当前的拍摄模式为拍照模式、人像模式以及自拍模式中的任意一项时,在图像缓冲区中未检测到待处理图像包括:在图像缓冲区中未检测到一帧或多帧待处理图像。

这种实现方式中,针对相机应用不同的拍摄模式,选择不同的检测方式,在需要一帧待处理图像便可生成第一拍摄图像的情况下,在检测到一帧待处理图像时及时生成第一拍摄图像,提升了生成第一拍摄图像的速度。

一种可能的实现方式中,若当前的拍摄模式为HDR模式时,在图像缓冲区中未检测到待处理图像包括:在图像缓冲区中未检测到多帧待处理图像。

这种实现方式中,针对相机应用不同的拍摄模式,选择不同的检测方式,避免在需要至少两帧待处理图像才可生成第一拍摄图像的情况下,检测到一帧待处理图像就去生成第一拍摄图像,影响最终生成的第一拍摄图像的质量,给用户带来不好的体验。

一种可能的实现方式中,本申请提供的处理图像的方法还包括:在后处理算法模块和相机硬件抽象层模块中创建传递链路;获取预览缩略图包括:后处理算法模块利用传递链路和相机硬件抽象层模块,获取预览缩略图。

一种可能的实现方式中,对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像,包括:通过后处理算法模块中的拍摄算法链路对预览缩略图进行处理,生成第二拍摄图像。

这种实现方式中,通过预览缩略图生成第二拍摄图像,有效避免了丢图现象发生,提升了拍摄体验。

一种可能的实现方式中,在检测到第三操作之前,本申请提供的处理图像的方法还包括:后处理算法模块将第二拍摄图像发送给相机应用和/或图库应用。

这种实现方式中,后处理算法模块将第二拍摄图像发送给相机应用和/或图库应用,保证后续相机应用和图库应用能够根据用户的第三操作,准确、及时地显示第二拍摄图像。

第二方面,本申请提供一种电子设备,电子设备包括:一个或多个处理器;一个或多个存储器;安装有多个应用程序的模块;存储器存储有一个或多个程序,当一个或者多个程序被处理器执行时,使得电子设备执行上述第一方面及其任意可能的实现方式中的方法。

第三方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。

可选的,芯片还包括存储器,存储器与处理器通过电路或电线连接。

可选的,芯片还包括通信接口。

第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面及其任意可能的实现方式中的方法。

第五方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面及其任意可能的实现方式中的方法。

上述第二方面、第三方面、第四方面以及第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。

附图说明

图1为本申请实施例示出的一种显示缩略图像的应用场景示意图;

图2为本申请实施例示出的一种切换拍摄模式的示意图;

图3为本申请实施例示出的一种查看拍摄图像的示意图;

图4为本申请实施例示出的另一种查看拍摄图像的示意图;

图5为本申请实施例示出的又一种查看拍摄图像的示意图;

图6为本申请实施例示出的再一种查看拍摄图像的示意图;

图7为本申请实施例示出的一种显示拍摄图像的方法的示意性流程图;

图8为本申请实施例示出的丢图场景的示意性流程图;

图9为本申请一示例性实施例示出的电子设备的硬件结构示意图;

图10为本申请实施例提供的一种处理图像的方法的流程示意图;

图11为本申请实施例提供的响应第二操作的具体实现方式的流程示意图;

图12为本申请实施例提供的另一种处理图像的方法的流程示意图;

图13为本申请实施例提供的又一种处理图像的方法的流程示意图;

图14为本申请一示例性实施例示出的电子设备的软件结构框图;

图15为本申请实施例提供的一种芯片的结构示意图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

需要说明的是,本申请实施例提供的处理图像的方法,可以适用于任何具有处理语音功能的电子设备。

在本申请的一些实施例中,该电子设备可以为手机、智慧屏、平板电脑、可穿戴设备、电视、车载电子设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪等等,或者可以为其他能够进行场景识别的设备或装置,对于电子设备的具体类型,本申请实施例不作任何限制。

为了更好地理解本申请实施例提供的处理图像的方法,下文首先对本申请实施例中涉及的部分术语进行解释说明,以便于本领域技术人员理解。

1.缩略图像

缩略图像是指电子设备中缓存的分辨率较小的图像,缩略图像与拍摄图像相比图像质量较差;与电子设备中的拍摄图像相比,缩略图像的分辨率较小,且缩略图像的显示尺寸小于拍摄图像的显示尺寸。

可选地,通过点击相机应用的拍摄界面的缩略图像,可以查看到与该缩略图像对应的实际拍摄的拍摄图像。

2.图像缓冲区

本申请实施例中也称为拍摄Buffer,其可以看作是一块临时存储图像数据的内存区域。它具有足够的容量来存储一帧完整的图像数据。

可选地,一旦图像数据存储在图像缓冲区中,电子设备中的相机就可以对其进行后续处理或保存。

3.预览缓冲区(Preview Buffer)

本申请实施例中也称为预览Buffer,其可以看作是相机中用于实时显示预览图像的内存区域。

电子设备在进行拍摄之前,通常会在电子设备中显示待拍摄画面的图像;这些显示待拍摄画面的图像就被称为预览图像;其中,电子设备可以将预览图像缓存在预览缓冲区中。

4.缓冲区轮转机制(Buffer Rotation Mechanism)

缓冲区轮转机制是一种用于在图像处理中实现高效利用和管理缓冲区的技术。

缓冲区轮转机制涉及到缓冲区队列,如拍摄缓冲区队列和预览缓冲区队列;其中,每个缓冲区在处理完图像数据后被放回队列的末尾,然后从队列的头部获取下一个可用的缓冲区,这样就实现了缓冲区的循环使用,避免了频繁的分配和释放操作。

5.Raw域

或称原始图像格式(RAW Image Format),是指未经加工的图像。

Raw图像可以理解为相机的感光元件比如互补金属氧化物半导体(ComplementaryMetal Oxide Semiconductor,CMOS)或者电荷耦合器件(Charge Coupled Device,CCD)将捕捉到的光源信号转化为数字信号的原始数据。

以上是对本申请实施例所涉及的名词的简单介绍,以下不再赘述。

随着电子科技的快速发展,手机、平板电脑等电子设备的普及率越来越高,且随着电子设备中拍照功能的发展,相机应用程序在电子设备中的应用越来越广泛。

在相机应用中,当电子设备完成一次拍摄后,会在拍摄界面中显示缩略图像;通常用户将电子设备显示缩略图像看作为一次拍摄结束。目前,一方面为了提升用户拍摄体验,让用户感觉到电子设备的拍摄速度有所提升,故将生成缩略图像的时间提前,有可能导致生成缩略图像时并未及时生成该缩略图像对应的拍摄图像。另一方面为了提升拍摄生成的拍摄图像的质量,故在图像处理过程中增加了算法处理的时长,导致生成拍摄图像的时间延迟。

由此,当用户看到缩略图像后,若立刻进行切换相机应用的拍摄模式、查看缩略图像对应的拍摄图像以及退出相机应用等操作,可能会导致在图库应用中无法显示本次拍摄生成的拍摄图像,即出现丢图现象。

应理解,通常在图库应用中也会显示拍摄图像的缩略图像,若因电子设备异常,导致超时未生成本次拍摄的拍摄图像,该拍摄图像所对应的缩略图像会从图库应用中被删除,这种也属于丢图现象。

有鉴于此,本申请实施例提供了一种处理图像的方法,该方法应用于电子设备,该方法包括:当检测到第一操作,响应于第一操作,生成预览缩略图,该第一操作用于指示拍摄操作;显示包括缩略图显示区域的第一显示界面,该预览缩略图显示于缩略图显示区域;检测到第二操作,该第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于所述第一操作生成的第一拍摄图像;响应第二操作时,若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。

这种实现方式中,一方面,在提前生成预览缩略图的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,也可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还让用户感觉到电子设备的拍摄速度有所提升,提升了拍摄体验。

另一方面,在图像处理过程中增加了算法处理的时长的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,还是可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还提升了预览缩略图和第二拍摄图像的质量。

下面结合附图,对本申请实施例提供的处理图像的方法的应用场景进行描述。

请参阅图1,图1为本申请实施例示出的一种显示缩略图像的应用场景示意图。

本申请实施例中以电子设备为手机为例进行描述。示例性地,电子设备运行相机应用程序后,显示预览界面101,如图1中的(a)所示;该预览界面101中可以包括预览图像、缩略图显示控件102以及拍摄控件103。其中,缩略图显示控件102用于显示上一次拍摄完成的拍摄图像的缩略图像。

示例性地,在第一时刻,电子设备检测到用户点击拍摄控件103的操作,如图1中的(b)所示;在第二时刻,电子设备检测到用户弹起拍摄控件103的操作,电子设备显示显示界面104,如图1中的(c)所示;此时,即用户弹起拍摄控件103这一时刻,在显示界面104显示的缩略图显示控件102中显示的缩略图像,依旧为上一次拍摄完成的拍摄图像的缩略图像;在第三时刻,电子设备显示显示界面105,显示界面105中缩略图显示控件102中显示的缩略图像为本次拍摄图像的缩略图像,如图1中的(d)所示。

应理解,第三时刻晚于第二时刻,第二时刻晚于第一时刻。

在一个示例中,若用户在第四时刻进行切换相机应用的拍摄模式的操作,其中,第四时刻晚于第三时刻,且第四时刻与第三时刻的时间间隔较长,可使电子设备有足够的时间生成该缩略图像对应的拍摄图像,那么在图库应用中便可正常显示本次拍摄生成的拍摄图像。也就是说,若用户是在第四时刻进行切换相机应用的拍摄模式的操作,那么此时用户可在图库应用中查看到本次拍摄生成的拍摄图像。

为了便于理解,请参阅图2,图2为本申请实施例示出的一种切换拍摄模式的示意图。

示例性地,在第三时刻,电子设备显示显示界面201,显示界面201中缩略图显示控件202中显示的缩略图像为本次拍摄图像的缩略图像,当前的拍摄模式为拍照模式,如图2中的(a)所示。在第四时刻,譬如用户点击显示界面201中的“专业”控件,如图2中的(b)所示。电子设备响应用户点击“专业”控件的操作,将当前的拍摄模式从拍照模式切换为专业模式,显示显示界面203,如图2中的(c)所示。

由于第四时刻晚于第三时刻,且第四时刻与第三时刻的时间间隔较长,可使电子设备有足够的时间生成该缩略图像对应的拍摄图像,不会出现丢图现象。也就是说,若用户此时打开图库应用,则可在该图库应用中查看到本次拍摄生成的拍摄图像。

在另一个示例中,若用户在第四时刻进行查看缩略图像对应的拍摄图像的操作,由于电子设备有足够的时间生成该缩略图像对应的拍摄图像,用户便可通过点击缩略图显示控件的操作查看到本次拍摄生成的拍摄图像,或者在图库应用中查看到本次拍摄生成的拍摄图像。

为了便于理解,请参阅图3,图3为本申请实施例示出的一种查看拍摄图像的示意图。

示例性地,在第三时刻,电子设备显示显示界面301,显示界面301中缩略图显示控件302中显示的缩略图像为本次拍摄图像的缩略图像,如图3中的(a)所示。在第四时刻,譬如用户点击显示界面301中的缩略图显示控件302,如图3中的(b)所示。电子设备响应用户点击缩略图显示控件302的操作,在显示界面303中显示缩略图像对应的拍摄图像,如图3中的(c)所示。

应理解,在本示例中,若用户此时打开图库应用,也可在该图库应用中查看到本次拍摄生成的拍摄图像。

在又一个示例中,若用户在第四时刻进行退出相机应用的操作,由于电子设备有足够的时间生成该缩略图像对应的拍摄图像,那么在图库应用中便可正常显示本次拍摄生成的拍摄图像。也就是说,若用户是在第四时刻进行退出相机应用的操作,那么此时用户可在图库应用中查看到本次拍摄生成的拍摄图像。

为了便于理解,请参阅图4,图4为本申请实施例示出的另一种查看拍摄图像的示意图。

示例性地,在第三时刻,电子设备显示显示界面401,显示界面401中缩略图显示控件402中显示的缩略图像为本次拍摄图像的缩略图像,如图4中的(a)所示。在第四时刻,譬如用户的手指从显示界面401底部向上滑动,如图4中的(b)所示。电子设备响应用户的滑动操作,退出相机应用并返回至系统桌面403,如图4中的(c)所示。用户点击系统桌面403中的图库应用图标404,电子设备响应用户的点击操作,显示相册界面405,如图4中的(d)所示。该相册界面405中显示有本次拍摄的拍摄图像406、上一次拍摄的拍摄图像407等等。应理解,相册界面405中显示的拍摄图像406、拍摄图像407等也是以缩略图的形式显示的。譬如当用户再次点击拍摄图像406时,电子设备响应用户点击拍摄图像406的操作,在显示界面显示拍摄图像406对应的大图,如图3中的(c)所示。

上面对正常生成缩略图像对应的拍摄图像的多个应用场景进行了描述,下面对出现丢图现象的多个应用场景进行描述。

应理解,用户通常以显示界面中显示本次拍摄图像的缩略图像看作是完成本次拍摄,因此将生成缩略图像的时间提前,用户进行切换相机应用的拍摄模式、查看缩略图像对应的拍摄图像以及退出相机应用等操作的时间,相应地也会提前。

在一个示例中,当用户看到缩略图像后,在第五时刻(立刻)进行切换相机应用的拍摄模式的操作,其中,第五时刻晚于第三时刻,但第五时刻与第三时刻的时间间隔较短,导致电子设备没有足够的时间生成该缩略图像对应的拍摄图像,那么在图库应用中便无法显示本次拍摄生成的拍摄图像。也就是说,若用户是在第五时刻进行切换相机应用的拍摄模式的操作,那么此时用户在图库应用中便无法查看到本次拍摄生成的拍摄图像。

在另一个示例中,若用户在第五时刻进行查看缩略图像对应的拍摄图像的操作,由于电子设备没有足够的时间生成该缩略图像对应的拍摄图像,此时用户若点击缩略图显示控件,无法查看到本次拍摄生成的拍摄图像,或者在图库应用中无法查看到本次拍摄生成的拍摄图像。

为了便于理解,请参阅图5,图5为本申请实施例示出的又一种查看拍摄图像的示意图。

示例性地,在第三时刻,电子设备显示显示界面501,显示界面501中缩略图显示控件502中显示的缩略图像为本次拍摄图像的缩略图像,如图5中的(a)所示。在第五时刻,譬如用户点击显示界面501中的缩略图显示控件502,如图5中的(b)所示。电子设备响应用户点击缩略图显示控件502的操作,但由于用户点击缩略图显示控件502的操作太快,电子设备中还未生成本次的拍摄图像。因此,当用户点击缩略图显示控件502的操作后,在显示界面503中显示上一次的拍摄图像,如图5中的(c)所示。

应理解,在本示例中,若用户此时打开图库应用,在该图库应用中也无法查看到本次拍摄生成的拍摄图像。

在又一个示例中,若用户在第五时刻进行退出相机应用的操作,由于电子设备没有足够的时间生成该缩略图像对应的拍摄图像,那么在图库应用中便无法显示本次拍摄生成的拍摄图像。也就是说,若用户是在第五时刻进行退出相机应用的操作,那么此时用户在图库应用中无法查看到本次拍摄生成的拍摄图像。

为了便于理解,请参阅图6,图6为本申请实施例示出的再一种查看拍摄图像的示意图。

示例性地,在第三时刻,电子设备显示显示界面601,显示界面601中缩略图显示控件602中显示的缩略图像为本次拍摄图像的缩略图像,如图6中的(a)所示。在第五时刻,譬如用户的手指从显示界面601底部向上滑动,如图6中的(b)所示。电子设备响应用户的滑动操作,退出相机应用并返回至系统桌面603,如图6中的(c)所示。用户点击系统桌面603中的图库应用图标604,电子设备响应用户的点击操作。由于用户退出相机应用的操作太快,电子设备中还未生成本次的拍摄图像。因此,电子设备显示相册界面605,如图6中的(d)所示。该相册界面605中显示的是上一次拍摄的拍摄图像606,没有本次拍摄的拍摄图像。

上面几个示例中,由于生成缩略图像的时间提前,用户进行切换相机应用的拍摄模式、查看缩略图像对应的拍摄图像以及退出相机应用等操作的时间也提前,用户在进行切换相机应用的拍摄模式、查看缩略图像对应的拍摄图像以及退出相机应用等操作时,电子设备并未生成该缩略图像对应的拍摄图像,导致在图库应用中无法显示本次拍摄生成的拍摄图像,即出现丢图现象,进而导致给用户带来较差地拍摄体验。

在本申请的实施例中,提供了一种处理图像的方法;根据本申请实施例提供的处理图像的方法能够解决电子设备偶尔出现丢图的问题,从而提升拍摄体验。

下面结合附图,对本申请实施例提供的显示拍摄图像的流程进行描述。需要说明的是,本申请实施例中描述的相机应用程序和相机应用,只是表述方式不同,指代的均为电子设备中的相机应用;同理,本申请实施例中描述的图库应用程序和图库应用,也是表述方式不同,指代的均为电子设备中的图库应用。

请参阅图7,图7为本申请实施例示出的一种显示拍摄图像的方法的示意性流程图。下面对该方法进行详细的描述。

S101、用户触发拍摄操作。

示例性地,拍摄操作用于指示开始拍摄,拍摄操作可以为拍照操作。如图1中的(b)所示,拍摄操作可以为对拍摄控件103的点击操作。

可选地,在本申请的实施例中,上述通过对拍摄操作为点击操作进行举例描述;在本申请的实施例中,拍摄操作也可以为通过语音指示拍摄的操作;或者,拍摄操作也可以为通过人脸识别指示拍摄的操作;又或者,拍摄操作也可以为通过手势识别指示拍摄的操作;再或者,拍摄操作也可以为按压物理按键(如音量键)指示拍摄的操作等等;本申请对此不作任何限定。

可选地,在S101之前可以运行相机应用程序。

示例性地,用户可以通过单击“相机”应用程序的图标,指示电子设备运行相机应用程序。

示例性地,电子设备处于锁屏状态时,用户可以通过在电子设备上双击音量下键,指示电子设备运行相机应用程序。或者,电子设备处于锁屏状态时,锁屏界面上包括相机应用程序的图标,用户通过点击相机应用程序的图标,指示电子设备运行相机应用程序。又或者,电子设备在运行其他应用时,其他应用具有调用相机应用程序的权限;用户通过点击其他应用中相应的控件可以指示电子设备运行相机应用程序。例如,电子设备正在运行即时通信类应用程序时,用户可以通过选择相机功能的控件,指示电子设备运行相机应用程序等。

应理解,上述为对运行相机应用程序的操作的举例说明;还可以通过语音指示操作,或者其它操作指示电子设备运行相机应用程序;本申请对此不作任何限定。

还应理解,运行相机应用程序可以是指启动相机应用程序。

S102、相机应用程序响应拍摄操作。

示例性地,相机应用程序响应用户触发的各种不同类型的拍摄操作,开始拍摄。

值得说明的是,在本申请的实施例中,拍摄操作为点击操作时,该拍摄操作可以分为点击拍摄控件的操作与弹起拍摄控件的操作。通常情况下,当相机应用程序检测到点击拍摄控件的操作时,开始拍摄;当相机应用程序检测到弹起拍摄控件的操作时,结束拍摄。

S103、后处理算法模块捕获拍摄请求。

在本申请实施例中,后处理算法模块也可以称为服务主机框架(ServiceHost),该后处理算法模块被设置在电子设备的应用程序框架层(Framework)中。

在本申请的实施例中,后处理算法模块用于生成预览缩略图、预览缩略图对应的第一拍摄图像以及预览缩略图对应的第二拍摄图像。

示例性地,相机应用程序在响应拍摄操作时,创建拍摄请求会话,并通过该拍摄请求会话向后处理算法模块发送拍摄请求;后处理算法模块实时捕获相机应用程序发送的拍摄请求。

可选地,后处理算法模块在捕获到相机应用程序发送的拍摄请求后,可以做一些拍摄准备工作。

S104、相机应用程序向相机服务模块发送拍摄请求。

相机服务模块即CameraService模块,其被设置在电子设备的应用程序框架层中。

在本申请的实施例中,相机服务模块用于接收后处理算法模块、相机应用程序发送的信息,或向后处理算法模块、相机应用程序传递信息。

通过上述步骤S103可知,相机应用程序在响应拍摄操作时,创建了拍摄请求会话;示例性地,相机应用程序可以通过该拍摄请求会话向相机服务模块发送拍摄请求。

S105、相机服务模块捕获拍摄请求。

示例性地,相机服务模块实时捕获相机应用程序发送的拍摄请求。

可选地,相机服务模块还用于向相机硬件抽象层(CameraHAL)模块传递信息。例如,相机服务模块在捕获到相机应用程序发送的拍摄请求后,可以将该拍摄请求发送给相机硬件抽象层模块。

S106、相机硬件抽象层模块对Raw图像进行第一算法处理,得到第一处理结果。

电子设备中设置有图像传感器,该图像传感器用于采集原始图像数据,从而得到Raw图像。

示例性地,可以对采集到的Raw图像进行处理,将Raw图像转换为YUV图像。可以理解的是,YUV图像即为第一处理结果。

其中,第一算法可以包括将Raw图像转换为YUV颜色空间的算法。譬如第一算法可以为Raw域算法。

具体地,可以采用Raw域算法对Raw图像进行处理,得到处理后的Raw图像;其中,Raw域算法包括但不限于:黑电平矫正处理、镜头阴影校正等算法。

示例性地,黑电平矫正处理用于对黑电平进行校正处理,黑电平是指在经过一定校准的显示装置上,没有一行光亮输出的视频信号电平;进行黑电平校正的原因在于:一方面由于图像传感器存在暗电流,导致在没有光照的情况下像素也存在电压输出的问题;另一方面,由于图像传感器进行模数转换时精度不够。镜头阴影校正(Lens ShadingCorrection,LSC)用于消除由于镜头光学系统原因造成的图像四周颜色以及亮度与图像中心不一致的问题。

将处理后的Raw图像转换至YUV颜色空间,得到YUV图像;即得到第一处理结果。

S107、相机硬件抽象层模块将第一处理结果发送给相机服务模块。

相机服务模块中运行有进程,该进程可用于捕获第一处理结果。

示例性地,相机硬件抽象层模块将第一处理结果发送给相机服务模块,相机服务模块中运行的进程捕获该第一处理结果,即捕获该YUV图像。

S108、相机服务模块将第一处理结果发送给后处理算法模块。

后处理算法模块包括至少一个图像缓冲区,该图像缓冲区可用于存储YUV图像,即存储第一处理结果。

应理解,一个图像缓冲区可用于存储一帧完整的YUV图像,多个图像缓冲区可用于对应存储多帧完整的YUV图像,多个图像缓冲区构成图像缓冲区队列。

示例性地,相机硬件抽象层模块将第一处理结果发送给后处理算法模块,后处理算法模块将该第一处理结果存储在图像缓冲区中。

S109、后处理算法模块对第一处理结果进行第二算法处理,生成第一拍摄图像。

第二算法包括将YUV图像转换为RGB图像的算法。

其中,后处理算法模块包括拍摄算法链路,该拍摄算法链路用于对第一处理结果进行处理,譬如对第一处理结果进行第二算法处理,生成第一拍摄图像。

示例性地,通过后处理算法模块中的拍摄算法链路,对第一处理结果进行第二算法处理,将YUV图像可以转换为RGB图像。

可选地,第二算法还可以包括将YUV图像转换为其他格式图像的算法。例如,通过后处理算法模块中的拍摄算法链路,将YUV图像转换为其他格式(例如,JPEG格式(JPG格式)、GIF格式、DNG格式或者RAW格式等)的图像。

应理解,RGB图像可用于在电子设备的显示屏中显示,如图3中的(c)所示。其他格式(例如,JPEG格式(JPG格式)、GIF格式、DNG格式或者RAW格式等)的图像可用于存储,譬如存储在电子设备中。

S110、后处理算法模块将第一拍摄图像发送给相机应用程序。

示例性地,后处理算法模块通过监听全局事件(onGlobalEvent)函数,将第一拍摄图像调给相机应用程序。相机应用程序获取到第一拍摄图像后,可以通知图库应用程序对第一拍摄图像进行存储、重命名等操作。

S111、相机应用程序显示第一拍摄图像。

在相机应用程序内部显示第一拍摄图像,暂且不对用户展示该第一拍摄图像。可以通俗理解为,相机应用程序获取到了第一拍摄图像后,便拥有了显示第一拍摄图像的能力,但并不直接向用户展示第一拍摄图像。

可选地,当检测到用户对相机应用程序的点击操作时,响应该点击操作,在相机应用程序中显示该第一拍摄图像。

上述通过步骤S101至步骤S111对生成第一拍摄图像的过程进行了描述,应理解,在相机应用程序的预览界面中,还会显示该第一拍摄图像对应的预览缩略图,可选地,在执行上述步骤S104时,还可执行步骤S201至步骤S206,具体如下:

S201、相机应用程序向相机服务模块发送预览请求。

相机应用程序可以在向相机服务模块发送拍摄请求的同时,向相机服务模块发送预览请求;或者,相机应用程序可以先向相机服务模块发送拍摄请求,再向相机服务模块发送预览请求。

示例性地,相机应用程序在响应拍摄操作时,可以创建预览请求会话,并通过该预览请求会话向相机服务模块发送预览请求。

S202、相机服务模块捕获预览请求。

相机服务模块实时捕获相机应用程序发送的预览请求,之后将该预览请求发送给相机硬件抽象层模块,用以触发电子设备中的图像传感器采集原始图像数据,得到Raw图像;对采集到的Raw图像进行处理,将Raw图像转换为YUV图像。

值得说明的是,这里对Raw图像采用的处理方法与上述步骤S106中所采用的处理方法一样,可参考上述步骤S106中的描述,此处不再赘述。

在一种可能地实现方式中,第二处理结果为Raw图像转换后的YUV图像。

在另一种可能地实现方式中,第二处理结果为下采样的YUV图像。例如,将Raw图像转换为YUV图像,对YUV图像进行下采样处理,得到下采样的YUV图像;或者,也可以先对Raw图像进行下采样处理,得到下采样处理后的Raw图像,转换下采样处理后的Raw图像的格式,得到下采样的YUV图像。此处仅为示例性说明,本申请对此不作任何限定。

S203、相机硬件抽象层模块将第二处理结果发送给相机服务模块。

相机服务模块中运行有至少两个进程,一个进程用于捕获第一处理结果,另一个进程用于捕获第二处理结果。

示例性地,相机硬件抽象层模块将第二处理结果发送给相机服务模块,相机服务模块中运行的进程捕获该第二处理结果,即捕获YUV图像。

S204、相机服务模块将第二处理结果发送给后处理算法模块。

后处理算法模块包括至少一个预览缓冲区,该预览缓冲区可用于存储第二处理结果。

应理解,一个预览缓冲区可用于存储一帧完整的第二处理结果,多个预览缓冲区可用于对应存储多帧完整的第二处理结果,多个预览缓冲区构成预览缓冲区队列。

示例性地,相机硬件抽象层模块将第二处理结果发送给后处理算法模块,后处理算法模块将该第二处理结果存储在预览缓冲区中。例如,当第二处理结果为Raw图像转换后的YUV图像时,将一帧完整的YUV图像存储在一个预览缓冲区中。又例如,当第二处理结果为下采样的YUV图像时,将一帧完整的下采样的YUV图像存储在一个预览缓冲区中。

应理解,当第二处理结果为下采样的YUV图像时,该下采样的YUV图像就是预览缩略图,将一帧完整的下采样的YUV图像存储在一个预览缓冲区中,即将一帧完整的预览缩略图存储在一个预览缓冲区中。

S205、相机应用程序向后处理算法模块发送预览缩略图请求。

示例性地,相机应用程序可以创建预览缩略图请求会话,并通过该预览缩略图请求会话向后处理算法模块发送预览缩略图请求;后处理算法模块实时捕获相机应用程序发送的预览缩略图请求。

S206、后处理算法模块将预览缩略图发送给相机应用程序。

在一种可能地实现方式中,当第二处理结果为下采样的YUV图像时,该下采样的YUV图像就是预览缩略图,此时后处理算法模块在接收到预览缩略图请求后,可直接将该预览缩略图发送给相机应用程序。

在另一种可能地实现方式中,后处理算法模块还可以包括预览算法链路,该预览算法链路包括用于生成预览缩略图的链路。当第二处理结果为Raw图像转换后的YUV图像时,通过预览算法链路中用于生成预览缩略图的链路,对转换后的YUV图像进行处理,得到预览缩略图。例如,通过预览算法链路中用于生成预览缩略图的链路,对转换后的YUV图像进行下采样处理,得到预览缩略图。后处理算法模块在接收到预览缩略图请求后,将该预览缩略图发送给相机应用程序。

S207、相机应用程序更新预览缩略图。

应理解,相机应用程序的预览界面中,原本显示的是上一次拍摄完成的拍摄图像的预览缩略图,如图1中的(c)所示;当生成新的预览缩略图后,用新的预览缩略图替换上一次拍摄完成的拍摄图像的预览缩略图,如图1中的(d)所示,从而实现预览缩略图的更新。

在一次拍摄结束后,用户可能会有查看拍摄图像,或者退出相机应用程序等操作,上述通过步骤S201至步骤S206对更新预览缩略图的过程进行了描述,下面对一次拍摄结束后,用户可能触发的操作以及电子设备的响应进行描述,具体如下:

S301、用户触发第二操作。

第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于拍摄操作生成的第一拍摄图像。

在一种可能地实现方式中,当第二操作用于指示切换相机应用的拍摄模式时,第二操作可以为点击相机应用的其他拍摄模式;其中,其他拍摄模式为非当前拍摄模式。如图2中的(a)所示,当前拍摄模式为拍照模式,第二操作可以为点击相机应用的专业模式(该专业模式为其他拍摄模式,即非当前拍摄模式)。如图2中的(b)所示,用户点击显示界面201中的“专业”控件。电子设备响应用户点击“专业”控件的操作,将当前拍摄模式从拍照模式切换为专业模式,如图2中的(c)所示。

在另一种可能地实现方式中,当第二操作用于指示退出相机应用时,第二操作可以为退出相机应用操作;其中,退出相机应用操作可以为通过语音指示退出相机应用的操作;或者,退出相机应用操作也可以为返回操作;又或者,退出相机应用操作也可以为开启其他应用的操作等等;本申请对此不作任何限定。

如图4中的(b)所示,用户的手指从显示界面401底部向上滑动。电子设备响应用户的滑动操作,退出相机应用并返回至系统桌面403,如图4中的(c)所示。

在又一种可能地实现方式中,当第二操作用于指示显示响应于拍摄操作生成的第一拍摄图像时,第二操作可以为点击缩略图显示控件,或者,第二操作可以为点击图库应用。

如图3中的(b)所示,用户点击显示界面301中的缩略图显示控件302;或者,如图4中的(c)所示,用户点击系统桌面403中的图库应用图标404。

S302、相机应用程序向相机服务模块发送终止采集指令。

示例性地,当用户触发第二操作后,相机应用程序检测到用户触发的第二操作,向相机服务模块发送终止采集指令。其中,终止采集指令用于相机服务模块和相机硬件抽象层模块分别清除各自当前的图像处理链路。电子设备中的图像传感器也就不再采集原始图像数据。

S303、相机服务模块清除当前的图像处理链路。

相机服务模块在接收到终止采集指令后,清除当前相机服务模块中的图像处理链路。可以理解为,清除当前相机服务模块中正在执行的所有任务,或者,即将要执行的所有任务。

其中,图像处理链路包括用于生成待处理图像的链路。在本申请实施例中,相机服务模块要清除的生成待处理图像的链路可以为,捕获拍摄请求的链路、捕获预览请求的链路、将第一处理结果发送给后处理算法模块的链路、将第二处理结果发送给后处理算法模块的链路等。

S304、相机硬件抽象层模块清除当前的图像处理链路。

相机硬件抽象层模块在接收到终止采集指令后,清除当前相机硬件抽象层模块中的图像处理链路。可以理解为,清除当前相机硬件抽象层模块中正在执行的所有任务,或者,即将要执行的所有任务。

其中,图像处理链路包括用于生成待处理图像的链路。在本申请实施例中,相机硬件抽象层模块要清除的生成待处理图像的链路可以为,对Raw图像进行第一算法处理的链路、将第一处理结果发送给相机服务模块的链路、将第二处理结果发送给相机服务模块的链路等。

S305、相机应用程序向后处理算法模块发送销毁指令。

示例性地,相机应用程序释放之前建立的会话,如拍摄请求会话、预览请求会话等。同时,相机应用程序向后处理算法模块发送销毁指令;其中,销毁指令用于销毁预览算法链路。

S306、后处理算法模块销毁预览算法链路。

示例性地,后处理算法模块接收到相机应用程序发送的销毁指令后,销毁后处理算法模块中的预览算法链路。其中,预览算法链路包括用于生成预览缩略图的链路。

值得说明的是,销毁预览算法链路,存储于预览缓冲区中的预览缩略图也会被销毁。

S401、查看第一拍摄图像。

示例性地,当用户想要查看基于本次拍摄操作生成的第一拍摄图像时,对相机应用或图库应用进行点击操作;电子设备响应用户的点击操作,在相机应用或图库应用中显示第一拍摄图像。

从上述显示拍摄图像的流程中可知,整个拍摄过程可以分为四个部分,具体如下:

第一部分:步骤S101至步骤S111,主要描述用户触发拍摄操作后生成第一拍摄图像的过程。

第二部分:步骤S201至步骤S207,主要描述相机应用程序更新预览缩略图的过程。

第三部分:步骤S301至步骤S306,主要描述用户触发第二操作以及结束拍摄流程的过程。

第四部分:步骤S401,主要描述在相机应用或图库应用中显示第一拍摄图像。

第二部分中相机应用程序更新了预览缩略图,用户通常在显示界面中看到本次拍摄图像的预览缩略图时,看作是完成了本次拍摄;这时用户可能会进行第三部分中的第二操作,触发电子设备执行结束拍摄流程。若更新预览缩略图的时间正常,或者说,生成预览缩略图的时间正常,用户触发第二操作的时间正常,那么在电子设备执行结束拍摄流程的过程中,第一部分的全部步骤都执行完毕,即已经生成了第一拍摄图像;电子设备执行结束拍摄流程后,在第四部分用户还是可以在相机应用或图库应用中查看到第一拍摄图像。

应理解,为了提升用户拍摄体验,让用户感觉到电子设备的拍摄速度有所提升,若将更新预览缩略图的时间提前,或者说,将生成预览缩略图的时间提前,用户触发第二操作的时间也会提前(用户将显示界面中显示预览缩略图看作为一次拍摄结束),导致电子设备执行结束拍摄流程时,第一部分的全部步骤还未执行完毕,即还未生成第一拍摄图像。也就是说,第二部分中步骤S201至步骤S207的执行提前,当用户看到预览缩略图触发第二操作,电子设备执行结束拍摄流程时,第一部分中步骤S106和步骤S107还未执行完成,就需要执行第三部分中的步骤S304,导致第一部分中步骤S107至步骤S109无法执行,最终导致丢图现象发生。

通俗可以理解为,更新预览缩略图的时间提前,用户触发第二操作的时间提前,第一部分中相机硬件抽象层模块对Raw图像进行第一算法处理、以及将第一处理结果(即YUV图像)发送给相机服务模块的流程还未执行完成,就需要执行第三部分中相机硬件抽象层模块清除当前的图像处理链路这一流程。导致清除了相机硬件抽象层模块中对Raw图像进行第一算法处理、以及将第一处理结果(即YUV图像)发送给相机服务模块的流程,进而导致第一处理结果(即YUV图像)无法发送给相机服务模块,相机服务模块无法将第一处理结果(即YUV图像)发送给后处理算法模块。后处理算法模块未接收到第一处理结果(即YUV图像),也就无法生成第一拍摄图像,导致相机应用程序中没有第一拍摄图像,出现丢图现象。

除了将更新预览缩略图的时间提前外,为了提升拍摄生成的拍摄图像的质量,故在图像处理过程中增加了算法处理的时长。例如,增加第一部分中步骤S106的处理时长,这样可以得到高质量的第一处理结果(即YUV图像),但也由于增加了处理时长,导致将第一处理结果(即YUV图像)发送给后处理算法模块的时间延迟,加剧了丢图现象的发生。

为了便于理解,请参阅图8,图8为本申请实施例示出的丢图场景的示意性流程图。具体描述如下。

S101、用户触发拍摄操作。

S102、相机应用程序响应拍摄操作。

S103、后处理算法模块捕获拍摄请求。

S104、相机应用程序向相机服务模块发送拍摄请求。

S105、相机服务模块捕获拍摄请求。

S106、相机硬件抽象层模块对Raw图像进行第一算法处理,得到第一处理结果。

值得说明的是,在执行上述步骤S104时,便可执行步骤S201至步骤S207。

S201、相机应用程序向相机服务模块发送预览请求。

S202、相机服务模块捕获预览请求。

S203、相机硬件抽象层模块将第二处理结果发送给相机服务模块。

S204、相机服务模块将第二处理结果发送给后处理算法模块。

S205、相机应用程序向后处理算法模块发送预览缩略图请求。

S206、后处理算法模块将预览缩略图发送给相机应用程序。

S207、相机应用程序更新预览缩略图。

值得说明的是,更新预览缩略图的这个流程是实时的,传递第二处理结果的速度快于传递第一处理结果的速度,且用户是在看到预览缩略图后才触发的第二操作,所以相机服务模块和相机硬件抽象层模块各自清除当前的图像处理链路,对更新预览缩略图没有影响。

S301、用户触发第二操作。

S302、相机应用程序向相机服务模块发送终止采集指令。

S303、相机服务模块清除当前的图像处理链路。

S304、相机硬件抽象层模块清除当前的图像处理链路。

S305、相机应用程序向后处理算法模块发送销毁指令。

S306、后处理算法模块销毁预览算法链路。

S401、丢失第一拍摄图像。

示例性地,由于没有及时生成第一拍摄图像,相机应用和图库应用中无法显示该第一拍摄图像,用户自然无法在相机应用和图库应用中查看到第一拍摄图像,即出现了丢图现象。

在本申请的实施例中,提供了一种处理图像的方法;该方法在响应第二操作时,检测是否有第一拍摄图像对应的待处理图像;若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。这种实现方式中,在响应第二操作时若检测到拍摄图像丢失,则获取预览缩略图,并对预览缩略图进行处理生成拍摄图像,使得用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,也可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,提升了拍摄体验。

下面先结合附图对本申请实施例中涉及的电子设备的硬件结构进行简单介绍。

在本申请的一些实施例中,该电子设备可以为手机、平板电脑、可穿戴设备、电视、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,或者可以为其他能够进行场景识别的设备或装置,对于电子设备的具体类型,本申请实施例不作任何限制。

请参考图9,图9为本申请一示例性实施例示出的电子设备的硬件结构示意图。

如图9所示,电子设备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等。

可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图5所示的部件更多或更少的部件,或者,电子设备100可以包括图5所示的部件中某些部件的组合,或者,电子设备100可以包括图5所示的部件中某些部件的子部件。图5所示的部件可以以硬件、软件、或软件和硬件的组合实现。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。

其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。

处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。

在本申请的实施例中,处理器110可以执行检测到第一操作,响应于第一操作,生成预览缩略图,该第一操作用于指示拍摄操作;显示包括缩略图显示区域的第一显示界面,该预览缩略图显示于缩略图显示区域;检测到第二操作,该第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于所述第一操作生成的第一拍摄图像;响应第二操作时,若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像的步骤。譬如处理器110可以运行本申请实施例提供的处理图像的方法的软件代码,从而解决电子设备偶尔出现丢图的问题,从而提升拍摄体验。

在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器(mobileindustry processor interface,MIPI)接口,通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。

可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。

电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,以及无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。

图9所示的各模块间的连接关系只是示意性说明,并不构成对电子设备100的各模块间的连接关系的限定。可选地,电子设备100的各模块也可以采用上述实施例中多种连接方式的组合。

电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等器件实现。

天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。

移动通信模块150可以提供应用在电子设备100上的包括2G/3G/2G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。

调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。

无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。

在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。可以理解,本申请实施例中,定位或导航系统中的硬件模块可称为定位传感器。

电子设备100可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU还可以用于执行数学和位姿计算,用于图形渲染等。处理器110可以包括一个或多个GPU,其执行程序指令可以生成或改变显示信息。

显示屏194可以用于显示图像或视频,还可以显示一系列图形用户界面(graphical user interface,GUI),这些GUI都是该电子设备100的主屏幕。一般来说,电子设备100的显示屏194的尺寸是固定的,只能在该电子设备100的显示屏194中显示有限的控件。控件是一种GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(direct manipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、微件(Widget)等可视的界面元素。

在本申请实施例中,显示屏194可以用于显示相机应用程序的显示界面、图库应用中的图像等。

显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,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的正整数。

本申请实施例中的显示屏194可以是触摸屏。该显示屏194中可以集成有触摸传感器180K。该触摸传感器180K也可以称为“触控面板”。也就是说,显示屏194可以包括显示面板和触摸面板,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触控操作。触摸传感器180K检测到的触摸操作后,可以由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型。可以通过显示屏194提供与触控操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。

在本申请实施例中,触摸传感器180K检测用户的触摸操作。譬如用户在触摸显示屏194时,触摸传感器180K检测到了用户的触摸操作,由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型,如点击拍摄控件事件。又譬如用户不再触摸显示屏194时,触摸传感器180K检测到了用户抬起手指,由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型,如弹起拍摄控件事件。处理器110响应于用户的触摸操作,通过显示屏194提供与触控操作相关的视觉输出,如显示屏194显示显示界面,显示界面中包括预览图像、缩略图显示控件、缩略图显示控件中显示的缩略图像以及拍摄控件等等。

外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。

内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的APP(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。

此外,内部存储器121可以包括高速随机存取存储器;内部存储器121还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(UniversalFlash Storage,UFS)等。

压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于不同的触摸位置,但不同触摸时长,可以对应不同的操作指令。

加速度传感器180E可检测电子设备100在各个方向上(一般为x轴、y轴和z轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。加速度传感器180E还可以用于识别电子设备100的姿态,作为横竖屏切换和计步器等应用程序的输入参数。

环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。

指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现解锁、访问应用锁、拍照和接听来电等功能。

按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。

马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。

指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。

另外,在上述部件之上,运行有各种类型的操作系统。例如Android(安卓)系统、IOS操作系统、塞班(Symbian)操作系统、黑莓(Black Berry)操作系统、Linux操作系统、Windows操作系统等。此处仅为示例性说明,对此不做限定。在这些操作系统上可以安装、运行不同的应用程序,如任何支持语音聊天功能的应用程序。

本申请实施例中提供的处理图像的方法,可以在具有上述硬件结构的电子设备100中实现。

上面对本申请实施例涉及的电子设备100的结构进行了简单介绍,下面本申请各实施例将以具有图9所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的处理图像的方法进行具体阐述。

在介绍处理图像的方法之前,特此声明,本申请实施例提供的处理图像的方法,可以应用于任何一次拍摄结束后立刻需要显示拍摄图像的场景。

请参阅图10,图10为本申请实施例提供的一种处理图像的方法的流程示意图。该方法包括:

S11、当检测到第一操作,响应于第一操作,生成预览缩略图。

示例性地,第一操作用于指示拍摄操作,即指示开始拍摄,第一操作可以为拍照操作。如图1中的(b)所示,第一操作可以为对拍摄控件103的点击操作。

可选地,在本申请的实施例中,上述通过对第一操作为点击操作进行举例描述;在本申请的实施例中,第一操作也可以为通过语音指示拍摄的操作;或者,第一操作也可以为通过人脸识别指示拍摄的操作;又或者,第一操作也可以为通过手势识别指示拍摄的操作;再或者,第一操作也可以为按压物理按键(如音量键)指示拍摄的操作等等;本申请对此不作任何限定。

示例性地,相机应用程序检测到第一操作后,响应用户触发的各种不同类型的第一操作,开始拍摄。

值得说明的是,在本申请的实施例中,第一操作为点击操作时,该第一操作可以分为点击拍摄控件的操作与弹起拍摄控件的操作。通常情况下,当相机应用程序检测到点击拍摄控件的操作时,开始拍摄;当相机应用程序检测到弹起拍摄控件的操作时,结束拍摄。

示例性地,相机应用程序在响应第一操作的过程中,向相机服务模块发送预览请求;相机服务模块捕获预览请求;相机硬件抽象层模块将第二处理结果发送给相机服务模块;相机服务模块将第二处理结果发送给后处理算法模块;后处理算法模块将预览缩略图发送给相机应用程序;相机应用程序更新预览缩略图,即生成预览缩略图。

需要说明的是,具体生成预览缩略图的过程,可以参考上述步骤S201至步骤S206中的描述,此处不再赘述。

可选地,生成预览缩略图后,可以将该预览缩略图拷贝一份后保存。例如,可以保存在后处理算法模块中的预览缓冲区中;或者,可以在后处理算法模块中建立一个缓存模块,用于保存拷贝的预览缩略图。

S12、显示包括缩略图显示区域的第一显示界面。

示例性地,相机应用程序中显示第一显示界面,如图1中的(d)所示。其中,第一显示界面中包括缩略图显示区域、拍摄控件等;缩略图显示区域中显示有通过步骤S11中生成的预览缩略图。

可选地,第一显示界面中还可以包括缩略图显示控件。

S13、检测到第二操作。

第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于第一操作生成的第一拍摄图像。

在一种可能地实现方式中,当第二操作用于指示切换相机应用的拍摄模式时,第二操作可以为点击相机应用的其他拍摄模式;其中,其他拍摄模式为非当前拍摄模式。如图2中的(a)所示,当前拍摄模式为拍照模式,第二操作可以为点击相机应用的专业模式(该专业模式为其他拍摄模式,即非当前拍摄模式)。如图2中的(b)所示,用户点击显示界面201中的“专业”控件。电子设备响应用户点击“专业”控件的操作,将当前拍摄模式从拍照模式切换为专业模式,如图2中的(c)所示。

在另一种可能地实现方式中,当第二操作用于指示退出相机应用时,第二操作可以为退出相机应用操作;其中,退出相机应用操作可以为通过语音指示退出相机应用的操作;或者,退出相机应用操作也可以为返回操作;又或者,退出相机应用操作也可以为开启其他应用的操作等等;本申请对此不作任何限定。

如图4中的(b)所示,用户的手指从显示界面401底部向上滑动。电子设备响应用户的滑动操作,退出相机应用并返回至系统桌面403,如图4中的(c)所示。

在又一种可能地实现方式中,当第二操作用于指示显示响应于第一操作生成的第一拍摄图像时,第二操作可以为点击缩略图显示控件,或者,第二操作可以为点击图库应用。

如图3中的(b)所示,用户点击显示界面301中的缩略图显示控件302;或者,如图4中的(c)所示,用户点击系统桌面403中的图库应用图标404。

S14、响应第二操作时,若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图。

其中,待处理图像是指用于生成第一拍摄图像的图像。例如,在本申请实施例中,待处理图像可以为YUV图像。

示例性地,响应第二操作时,检测后处理算法模块的图像缓冲区中是否存储有待处理图像。若在后处理算法模块的图像缓冲区中检测到待处理图像,则通过后处理算法模块对待处理图像进行第二算法处理,生成第一拍摄图像。其中,通过后处理算法模块对待处理图像进行第二算法处理的过程,可以参考上述步骤S109的描述,此处不再赘述。

若在后处理算法模块的图像缓冲区中未检测到待处理图像,那就无法根据待处理图像生成第一拍摄图像,证明出现了丢图现象,此时需要获取预览缩略图。具体地,从后处理算法模块的预览缓冲区中,调取预先拷贝保存的预览缩略图;或者,从后处理算法模块的缓存模块中,调取预先拷贝保存的预览缩略图。

可选地,在一种可能地实现方式中,响应第二操作时,若在后处理算法模块的图像缓冲区中检测到待处理图像,进一步检测是否正在对待处理图像进行第二算法处理。若检测到正在对待处理图像进行第二算法处理,则等待生成第一拍摄图像。若检测到未对待处理图像进行第二算法处理,则通过后处理算法模块对待处理图像进行第二算法处理,生成第一拍摄图像;或者,若检测到未对待处理图像进行第二算法处理,则获取预览缩略图。这样可以有效避免检测到待处理图像,但后续对待处理图像进行第二算法处理时出现意外,导致最终未成功生成第一拍摄图像的现象发生。

S15、对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。

后处理算法模块中包括拍摄算法链路,将预览缩略图传输至拍摄算法链路中,通过拍摄算法链路对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。其中,对预览缩略图的处理可以包括上采样处理和图像格式转换处理。

例如,通过拍摄算法链路先对预览缩略图进行上采样处理,得到上采样的预览缩略图,然后将上采样的预览缩略图转换为RGB图像,得到第二拍摄图像。又例如,通过拍摄算法链路先将预览缩略图转换为RGB图像,然后对RGB图像进行上采样处理,得到第二拍摄图像。

应理解,第二拍摄图像是根据预览缩略图生成的,预览缩略图的画质经过了压缩,而第一拍摄图像是根据图像缓冲区中存储的YUV图像生成的,画质并未压缩,因此第二拍摄图像的质量没有第一拍摄图像的质量高。但相较于直接丢失第一拍摄图像来说,能够在相机应用或图库应用中显示第二拍摄图像,给用户带来的拍摄体验更好。

在本申请实施例中,当检测到第一操作,响应于第一操作,生成预览缩略图;显示包括缩略图显示区域的第一显示界面;检测到第二操作,该第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于所述第一操作生成的第一拍摄图像;响应第二操作时,若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。这种实现方式中,在响应第二操作时若检测到拍摄图像丢失,则获取预览缩略图,并对预览缩略图进行处理生成拍摄图像,使得用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,也可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,提升了拍摄体验。

可选地,在一种可能地实现方式中,本申请实施例提供的处理图像的方法,在步骤S15之后,还可以包括:步骤S16步骤S17,具体如下:

S16、检测到第三操作。

第三操作用于指示针对相机应用或图库应用的点击操作。

示例性地,当用户想要查看基于本次拍摄操作生成的拍摄图像时,对相机应用或图库应用进行点击操作;电子设备响应用户的点击操作,在相机应用或图库应用中显示第二拍摄图像。

值得说明的是,当用户想在相机应用中查看第二拍摄图像时,只需点击一次缩略图显示控件即可;当用户想在图库应用中查看第二拍摄图像时,点击一次图库应用图标,通常看到的是第二拍摄图像的缩略图,再次点击第二拍摄图像的缩略图,可以看到以大图显示的第二拍摄图像。

S17、响应于第三操作,在相机应用或图库应用中显示第二拍摄图像。

当用户想在相机应用中查看第二拍摄图像时,用户点击显示界面中的缩略图显示控件,电子设备响应用户点击缩略图显示控件的操作,在显示界面中以大图显示缩略图像对应的第二拍摄图像。

当用户想在图库应用中查看第二拍摄图像时,用户点击系统桌面中的图库应用图标;电子设备响应用户的点击操作,显示相册界面;该相册界面中显示有本次拍摄的第二拍摄图像、上一次拍摄的拍摄图像等等。应理解,相册界面中此时显示的第二拍摄图像也是以缩略图的形式显示的。譬如当用户再次点击本次拍摄的拍摄图像时,电子设备响应用户点击拍摄图像的操作,在显示界面以大图显示第二拍摄图像。

这种实现方式中,用户即使在看到预览缩略图后立刻进行第三操作,也可以在相机应用或图库应用中看到本次拍摄生成的第二拍摄图像,避免了丢图现象发生,提升了拍摄体验。

可选地,在一种可能地实现方式中,本申请实施例提供的处理图像的方法,在检测第三操作之前还可以包括:后处理算法模块将第二拍摄图像发送给相机应用和/或图库应用。

示例性地,后处理算法模块对预览缩略图进行处理,生成第二拍摄图像之后,可以通过监听全局事件(onGlobalEvent)函数,将第二拍摄图像调给相机应用和/或图库应用。图库应用可以对第二拍摄图像进行存储、重命名等操作。

这种实现方式中,后处理算法模块将第二拍摄图像发送给相机应用和/或图库应用,保证后续相机应用和图库应用能够根据用户的第三操作,准确、及时地显示第二拍摄图像。

可选地,在一种可能地实现方式中,本申请实施例中的响应第二操作的具体实现方式可以包括步骤S21至步骤S23。请参阅图11,图11为本申请实施例提供的响应第二操作的具体实现方式的流程示意图。

S21、相机应用发起终止采集指令。

示例性地,当用户触发第二操作后,相机应用程序检测到用户触发的第二操作,向相机服务模块发送终止采集指令。其中,终止采集指令用于相机服务模块和相机硬件抽象层模块分别清除各自当前的图像处理链路。电子设备中的图像传感器也就不再采集原始图像数据。

S22、相机服务模块和相机硬件抽象层模块,根据终止采集指令清除当前的图像处理链路。

相机服务模块在接收到终止采集指令后,清除当前相机服务模块中的图像处理链路。可以理解为,清除当前相机服务模块中正在执行的所有任务,或者,即将要执行的所有任务。

其中,图像处理链路包括用于生成待处理图像的链路。在本申请实施例中,相机服务模块要清除的生成待处理图像的链路可以为,捕获拍摄请求的链路、捕获预览请求的链路、将第一处理结果发送给后处理算法模块的链路、将第二处理结果发送给后处理算法模块的链路等。

相机硬件抽象层模块在接收到终止采集指令后,清除当前相机硬件抽象层模块中的图像处理链路。可以理解为,清除当前相机硬件抽象层模块中正在执行的所有任务,或者,即将要执行的所有任务。

其中,图像处理链路包括用于生成待处理图像的链路。在本申请实施例中,相机硬件抽象层模块要清除的生成待处理图像的链路可以为,对Raw图像进行第一算法处理的链路、将第一处理结果发送给相机服务模块的链路、将第二处理结果发送给相机服务模块的链路等。

示例性地,相机应用程序释放之前建立的会话,如拍摄请求会话、预览请求会话等。同时,相机应用程序向后处理算法模块发送销毁指令;其中,销毁指令用于销毁预览算法链路。

S23、后处理算法模块销毁预览算法链路。

示例性地,后处理算法模块接收到相机应用程序发送的销毁指令后,销毁后处理算法模块中的预览算法链路。其中,预览算法链路包括用于生成预览缩略图的链路。

值得说明的是,销毁预览算法链路,存储于预览缓冲区中的预览缩略图也会被销毁。

这种实现方式中,电子设备执行结束拍摄流程,释放拍摄过程中的各个链路,为下一次拍摄做好准备。

由于销毁预览算法链路,存储于预览缓冲区中的预览缩略图也会被销毁,而生成第二拍摄图像需要预览缩略图,因此,本申请实施例提供的处理图像的方法,需要后处理算法模块在销毁预览算法链路前,检测后处理算法模块的图像缓冲区中是否存储有待处理图像。

一种可能地实现方式中,若在后处理算法模块的图像缓冲区中检测到待处理图像,则通过后处理算法模块对待处理图像进行第二算法处理,生成第一拍摄图像。

另一种可能地实现方式中,若在图像缓冲区中未检测到待处理图像,则从预览缓冲区中获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。

这种实现方式中,在销毁预览算法链路前检测后处理算法模块的图像缓冲区中是否存储有待处理图像,以使得在图像缓冲区中未检测到待处理图像时,保证能够从预览缓冲区中获取到预览缩略图,从而基于该预览缩略图生成第二拍摄图像。

应理解,对于相机应用不同的拍摄模式,生成第一拍摄图像所需要的待处理图像的帧数不同。例如,若当前的拍摄模式为拍照模式、人像模式以及自拍模式中的任意一项时,基于一帧待处理图像便可生成第一拍摄图像。又例如,若当前的拍摄模式为专业模式、延时拍摄模式、全景模式以及高动态范围(High-Dynamic Range,HDR)模式中的任意一项时,由于这些模式下对生成的第一拍摄图像的质量要求高,因此基于至少两帧待处理图像才生成第一拍摄图像。

也就是说,在能正常生成第一拍摄图像的情况下,若当前的拍摄模式为拍照模式、人像模式以及自拍模式中的任意一项时,图像缓冲区中至少有一帧待处理图像。若当前的拍摄模式为HDR模式时,图像缓冲区中至少有两帧待处理图像。

那么,在不能生成第一拍摄图像的情况下,即图像缓冲区中未检测到待处理图像的情况下,若当前的拍摄模式为拍照模式、人像模式以及自拍模式中的任意一项时,在图像缓冲区中未检测到待处理图像包括:在图像缓冲区中未检测到一帧或多帧待处理图像。可以理解为,这种情况下,在图像缓冲区中完全没有检测到待处理图像,也就无法根据待处理图像生成第一拍摄图像。

若当前的拍摄模式为HDR模式时,在图像缓冲区中未检测到待处理图像包括:在图像缓冲区中未检测到多帧待处理图像。可以理解为,这种情况下,在图像缓冲区中完全没有检测到待处理图像,或者在图像缓冲区中检测到一帧待处理图像,均属于未检测到待处理图像的情形,因为这些模式下,基于至少两帧待处理图像才可生成第一拍摄图像。

值得说明的是,上述不同的拍摄模式所对应不同帧数的待处理图像,仅为示例性说明,可根据实际成像需求,对不同的拍摄模式和不同帧数的待处理图像之间的对应关系进行调整,对此不做限定。

这种实现方式中,针对相机应用不同的拍摄模式,选择不同的检测方式,避免在需要至少两帧待处理图像才可生成第一拍摄图像的情况下,检测到一帧待处理图像就去生成第一拍摄图像,影响最终生成的第一拍摄图像的质量,给用户带来不好的体验。

可选地,在一种可能地实现方式中,本申请实施例提供的处理图像的方法,还可以包括步骤S31和步骤S32。请参阅图12,图12为本申请实施例提供的另一种处理图像的方法的流程示意图。

S31、在后处理算法模块和相机硬件抽象层模块中创建传递链路。

S32、获取预览缩略图包括:后处理算法模块通过传递链路在相机硬件抽象层模块中获取预览缩略图。

在步骤S14中获取的预览缩略图,是通过相机硬件抽象层模块先传递给相机服务模块,然后相机服务模块传递给后处理算法模块,最后从后处理算法模块的预览缓冲区中获取到的。

本示例中,可以预先在后处理算法模块和相机硬件抽象层模块中创建一个传递链路,后处理算法模块利用该传递链路和相机硬件抽象层模块,获取预览缩略图。例如,相机硬件抽象层模块对Raw图像进行第一算法处理,得到YUV图像;通过创建的该传递链路,相机硬件抽象层模块将YUV图像发送给后处理算法模块;后处理算法模块对YUV图像进行处理,生成预览缩略图并存储在预览缓冲区中。

或者说,相机硬件抽象层模块获取的每帧预览数据,通过创建的该传递链路传输到后处理算法模块中进行处理,得到预览缩略图。相机应用程序向后处理算法模块发送预览缩略图请求,后处理算法模块将预览缩略图发送给相机应用程序。

应理解,拍摄数据也可以通过该传递链路传输。

其中,后处理算法模块对YUV图像进行处理的过程,可以参考上述步骤S204中的描述,此处不再赘述。

可选地,生成预览缩略图后,可以将该预览缩略图拷贝一份后保存。例如,可以保存在后处理算法模块中的预览缓冲区中;或者,可以在后处理算法模块中建立一个缓存模块,用于保存拷贝的预览缩略图。

这种实现方式中,在后处理算法模块和相机硬件抽象层模块中创建传递链路,用于基于该传递链路获取预览缩略图,相较于步骤S14中获取预览缩略图的方式,本实施方式减少了数据传递次数,提升了传递效率,从而提升了生成第二拍摄图像的速度,提升了拍摄体验。

为了便于理解,请参阅图13,图13为本申请实施例提供的又一种处理图像的方法的流程示意图,具体如下。

S501、用户触发拍摄操作。

S502、相机应用程序响应拍摄操作。

S503、后处理算法模块捕获拍摄请求。

S504、相机应用程序向相机服务模块发送拍摄请求。

S505、相机服务模块捕获拍摄请求。

S506、相机硬件抽象层模块对Raw图像进行第一算法处理,得到第一处理结果。

值得说明的是,在执行上述步骤S504时,便可执行步骤S601至步骤S606。

本申请实施例中关于步骤S501至步骤S506的描述,可以参考上述步骤S101至步骤S106的描述,此处不再赘述。

可选地,相机硬件抽象层模块对Raw图像进行第一算法处理时,除了上述步骤S106中所做的处理,还可对Raw图像增加降噪处理、HDR处理等,使得到高质量的第一处理结果,从而提升后续预览缩略图、第一拍摄图像以及第二拍摄图像的质量。

S601、相机应用程序向相机服务模块发送预览请求。

S602、相机服务模块捕获预览请求。

S603、相机硬件抽象层模块将第二处理结果发送给相机服务模块。

S604、相机服务模块将第二处理结果发送给后处理算法模块。

S605、相机应用程序向后处理算法模块发送预览缩略图请求。

S606、后处理算法模块将预览缩略图发送给相机应用程序。

S607、相机应用程序更新预览缩略图。

本申请实施例中关于步骤S601至步骤S607的描述,可以参考上述步骤S201至步骤S207的描述,此处不再赘述。

S701、用户触发第二操作。

S702、相机应用程序向相机服务模块发送终止采集指令。

S703、相机服务模块清除当前的图像处理链路。

S704、相机硬件抽象层模块清除当前的图像处理链路。

S705、相机应用程序向后处理算法模块发送销毁指令。

本申请实施例中关于步骤S701至步骤S705的描述,可以参考上述步骤S301至步骤S305的描述,此处不再赘述。

S706、若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图。

示例性地,在后处理算法模块销毁预览算法链路前,检测后处理算法模块的图像缓冲区中是否存储有待处理图像。

一种可能地实现方式中,若在后处理算法模块的图像缓冲区中检测到待处理图像,则通过后处理算法模块对待处理图像进行第二算法处理,生成第一拍摄图像。

另一种可能地实现方式中,若在图像缓冲区中未检测到待处理图像,则从预览缓冲区中获取预览缩略图。

S707、对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。

本申请实施例中关于步骤S707的描述,可以参考上述步骤S15的描述,此处不再赘述。

S708、后处理算法模块将第二拍摄图像发送给相机应用程序。

示例性地,后处理算法模块通过监听全局事件(onGlobalEvent)函数,将第二拍摄图像调给相机应用程序。相机应用程序获取到第二拍摄图像后,可以通知图库应用程序对第二拍摄图像进行存储、重命名等操作。

S709、相机应用程序显示第二拍摄图像。

在相机应用程序内部显示第二拍摄图像,暂且不对用户展示该第二拍摄图像。可以通俗理解为,相机应用程序获取到了第二拍摄图像后,便拥有了显示第二拍摄图像的能力,但并不直接向用户展示第二拍摄图像。

可选地,当检测到用户对相机应用程序的点击操作时,响应该点击操作,在相机应用程序中显示该第二拍摄图像。

S710、后处理算法模块销毁预览算法链路。

应理解,在步骤S706中获取到预览缩略图后,即使销毁预览算法链路,对生成第二拍摄图像也没有影响。因此步骤S710可以在步骤S706之后的任何时刻执行,本实施例中仅为示例性说明,对此不做限定。

S801、查看第二拍摄图像。

示例性地,当用户想要查看基于本次拍摄操作生成的拍摄图像时,对相机应用或图库应用进行点击操作;电子设备响应用户的点击操作,在相机应用或图库应用中显示第二拍摄图像。

在本申请实施例中,当检测到第一操作,响应于第一操作,生成预览缩略图;显示包括缩略图显示区域的第一显示界面;检测到第二操作,该第二操作用于指示切换相机应用的拍摄模式,或指示退出相机应用,或指示显示响应于所述第一操作生成的第一拍摄图像;响应第二操作时,若未检测到第一拍摄图像对应的待处理图像,则获取预览缩略图;对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。

这种实现方式中,一方面,在提前生成预览缩略图的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,也可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还让用户感觉到电子设备的拍摄速度有所提升,提升了拍摄体验。

另一方面,在图像处理过程中增加了算法处理的时长的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,还是可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还提升了预览缩略图和第二拍摄图像的质量。

下面对本申请实施例涉及的软件结构进行简单介绍。请参考图14,图14为本申请一示例性实施例示出的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,以电子设备100是Android系统为例进行说明,Android系统分为三层,从上至下分别为应用程序层,应用程序框架层,以及相机硬件抽象层。

应用程序层可以包括一系列应用程序包。如图14所示,应用程序包可以包括相机应用。该相机应用可以包括相机管理(Camera Manager)模块、相机捕获会话(CameraCapture Session)模块以及相机设备(Camera Device)模块。

其中,相机管理模块用于获取相机特性,如摄像头个数、拍摄能力等参数。

示例性地,相机应用启动后,会调用相机管理模块,通过该相机管理模块获取相机特性,如摄像头个数、拍摄能力等参数。

用户触发拍摄操作后,相机应用响应拍摄操作,通过相机捕获会话模块在相机设备模块中创建会话,如拍摄请求会话、预览请求会话、预览缩略图请求会话等。

应用程序框架层可以包括相机服务(CameraService)模块、相机设备(Camera3Device)模块、相机输出流(CameraOutputStream)模块以及后处理算法模块。

相机服务模块属于常驻模块,通过该相机服务模块可以读取到相机应用的各种信息。

值得说明的是,相机设备(Camera3Device)模块只有在相机应用使用时产生,相机应用停止使用时便销毁。例如,相机应用使用了前置摄像头或后置摄像头,该相机设备(Camera3Device)模块便会产生,停止使用各个摄像头时,相机设备(Camera3Device)模块便会被释放掉。示例性地,通过相机捕获会话模块向相机设备模块发送拍摄请求、预览请求、预览缩略图请求等。

可选地,相机设备(Camera3Device)模块与应用程序层中的相机设备(CameraDevice)模块对应。

示例性地,相机捕获会话模块向相机设备模块发送拍摄请求、预览请求、预览缩略图请求等;相机设备(Camera3Device)模块将拍摄请求、预览请求、预览缩略图请求等传递给相机硬件抽象层中的相机硬件抽象层模块。

相机输出流模块也是在相机应用使用时产生,用于将第一处理结果、第二处理结果传输给后处理算法模块。

可选地,通过相机捕获会话模块在相机设备模块中创建会话时,应用程序框架层创建了相机输出流模块。

相机硬件抽象层可以包括相机硬件抽象层模块和图像处理模块。

相机硬件抽象层模块接收拍摄请求、预览请求、预览缩略图请求等,触发图像传感器采集原始图像数据,从而得到Raw图像。

一个示例中,图像处理模块可以对采集到的Raw图像进行处理,将Raw图像转换为YUV图像。可以理解的是,YUV图像即为第一处理结果。其中,第一处理结果用于生成第一拍摄图像。

另一个示例中,图像处理模块可以对采集到的Raw图像进行处理,得到第二处理结果。其中,第二处理结果用于生成预览缩略图。

示例性地,图像处理模块将第一处理结果、第二处理结果传输给应用程序框架层中的相机输出流模块,相机输出流模块将第一处理结果、第二处理结果传输给后处理算法模块。

后处理算法模块可以包括数据源模块、分流模块、检测模块、预览算法模块、预览模块、数据传输模块、拍摄数据源模块、拍摄算法模块以及快速缩略图模块等。

数据源模块用于接收相机输出流模块传输的第一处理结果、第二处理结果。

可选地,在一种可能地实现方式中,数据源模块将第二处理结果传输给分流模块。分流模块对第二处理结果进行复制,将一份第二处理结果传输给检测模块,另一份第二处理结果传输给算法模块。

其中,检测模块用于实现人脸检测、场景检测、亮度检测、手势识别等。例如,通过检测模块检测第二处理结果中的人脸、场景等。

可选地,检测模块可以将检测结果发送给相机应用,相机应用将检测结果显示在预览界面中。

预览算法模块中可以包含美颜算法,用于对第二处理结果进行美颜处理,以得到满足用户需求的图像。

示例性地,预览算法模块将经过美颜处理的第二处理结果发送给预览模块。预览模块中包括预览算法链路,该预览算法链路包括用于生成预览缩略图的链路。当第二处理结果为Raw图像转换后的YUV图像时,通过预览算法链路中用于生成预览缩略图的链路,对转换后的YUV图像进行处理,得到预览缩略图。例如,通过预览算法链路中用于生成预览缩略图的链路,对转换后的YUV图像进行下采样处理,得到预览缩略图。

可选地,预览模块中包括预览缓冲区,用于存储预览缩略图。

可选地,生成预览缩略图后,可以将该预览缩略图拷贝一份后保存。例如,可以保存在预览缓冲区中;或者,可以在后处理算法模块中建立一个缓存模块,用于保存拷贝的预览缩略图。

可选地,相机应用向预览模块发送预览缩略图请求,预览模块将预览缩略图发送给相机应用,相机应用更新预览缩略图。

可选地,在另一种可能地实现方式中,数据源模块将第一处理结果传输给数据传输模块,数据传输模块将第一处理结果传输给拍摄数据源模块。

在一个示例中,拍摄数据源模块将第一处理结果发送给拍摄模块,拍摄模块中包括拍摄算法链路,该拍摄算法链路用于对第一处理结果进行处理,生成第一拍摄图像。具体处理过程可参考上述步骤S109中的描述,此处不再赘述。

可选地,拍摄模块将第一拍摄图像发送给相机应用,之后可参考上述步骤S110、步骤S111以及步骤S401中的描述,此处不再赘述。

在另一个示例中,拍摄数据源模块将第一处理结果发送快速缩略图模块;快速缩略图模块用于对第一处理结果处理,生成快速缩略图,如图4中的(d)所示的拍摄图像406、拍摄图像407等。示例性地,快速缩略图模块对第一处理结果进行下采样处理,得到第一处理结果对应的快速缩略图。

可选地,快速缩略图模块将快速缩略图发送给相机应用,用于相机应用响应用户的操作时显示快速缩略图。

可选地,当用户触发第二操作时,相机应用向相机服务模块发送终止采集指令;相机服务模块清除当前的图像处理链路;相机硬件抽象层模块清除当前的图像处理链路;相机应用向后处理算法模块发送销毁指令。在后处理算法模块销毁预览算法链路前,若未检测到第一拍摄图像对应的待处理图像,则获取预览缓冲区中的预览缩略图。通过拍摄模块中的拍摄算法链路对预览缩略图进行处理,生成预览缩略图对应的第二拍摄图像。后处理算法模块将第二拍摄图像发送给相机应用。之后可参考上述步骤S708至步骤S710以及步骤S801中的描述,此处不再赘述。

这种实现方式中,一方面,在提前生成预览缩略图的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,也可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还让用户感觉到电子设备的拍摄速度有所提升,提升了拍摄体验。

另一方面,在图像处理过程中增加了算法处理的时长的情况下,用户即使在看到预览缩略图后立刻进行切换相机应用的拍摄模式、查看预览缩略图对应的拍摄图像以及退出相机应用等操作,还是可以在相机应用或图库应用中看到本次拍摄生成的拍摄图像,避免了丢图现象发生,同时还提升了预览缩略图和第二拍摄图像的质量。

上文详细介绍了本申请实施例提供的处理图像的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

本实施例提供的电子设备,用于执行上述处理图像的方法,因此可以达到与上述实现方法相同的效果。

在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。

其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、WiFi芯片等与其他电子设备交互的设备。

在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图14所示结构的设备。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的处理图像的方法。

本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的处理图像的方法。

本申请实施例还提供了一种芯片。请参阅图15,图15为本申请实施例提供的一种芯片的结构示意图。图15所示的芯片可以为通用处理器,也可以为专用处理器。该芯片包括处理器210。其中,处理器210用于执行上述任一实施例的处理图像的方法。

可选的,该芯片还包括收发器220,该收发器220用于接受处理器的控制,用于支持通信装置执行前述所示的技术方案。

可选的,图15所示的芯片还可以包括:存储介质230。

需要说明的是,图15所示的芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。

其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种电梯坠落时自救装置的弹性踏板结构
  • 一种电梯停电用乘客自救防困装置
  • 一种电梯停电用乘客自救防困装置
技术分类

06120116525421