CN116828283A - 图像处理方法、系统、设备及存储介质 - Google Patents

图像处理方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN116828283A
CN116828283A CN202310778768.0A CN202310778768A CN116828283A CN 116828283 A CN116828283 A CN 116828283A CN 202310778768 A CN202310778768 A CN 202310778768A CN 116828283 A CN116828283 A CN 116828283A
Authority
CN
China
Prior art keywords
image
algorithm
camera
image processing
implementation process
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310778768.0A
Other languages
English (en)
Inventor
王亮
程世诚
杨雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202310778768.0A priority Critical patent/CN116828283A/zh
Publication of CN116828283A publication Critical patent/CN116828283A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Studio Devices (AREA)

Abstract

本申请实施例公开了一种图像处理方法、系统、设备及存储介质,所述方法包括:硬件抽象层的相机实现进程响应于第一应用程序的图像捕捉请求,基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序;如果所述图像捕捉请求处于第一捕捉模式,硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据;所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像;所述第一应用程序通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现进程和算法实现进程之间相互独立。

Description

图像处理方法、系统、设备及存储介质
技术领域
本申请涉及但不限于计算机技术领域,尤其涉及一种图像处理方法、系统、设备及存储介质。
背景技术
随着移动终端智能化的快速发展,许多移动终端的拍照功能下都具备图像处理功能,可以帮助用户轻松快捷地拍摄出经过美化处理的照片。然而,随着图像处理功能越来越丰富,图像处理算法大量增加,导致算法的处理时间增加。如果算法的处理时间过长,会影响相机图像处理流程的正常时序,例如造成相机多帧拍照无响应。
发明内容
基于相关技术存在的问题,本申请实施例提供一种图像处理方法、系统、设备及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种图像处理方法,所述方法包括:
硬件抽象层的相机实现进程响应于第一应用程序的图像捕捉请求,基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序;
如果所述图像捕捉请求处于第一捕捉模式,硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据;
所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像;
所述第一应用程序通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现进程和算法实现进程之间相互独立。
在一些实施例中,所述基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序,包括:
框架层的相机服务进程响应于所述图像捕捉请求,将所述图像捕捉请求下发至所述相机实现进程;其中,所述图像捕捉请求至少包括所述原始图像数据的索引标识;
所述相机实现进程基于所述索引标识,在所述第一应用程序对应的预设存储空间获取所述原始图像数据,生成所述第一图像;
所述相机服务进程获取所述第一图像,并将所述第一图像提供至所述第一应用程序的显示界面。
在一些实施例中,所述方法还包括:
框架层的算法服务进程响应于所述图像捕捉请求,将所述索引标识发送至所述算法实现进程;其中,所述算法服务进程与所述相机服务进程之间相互独立,且同时启动;
对应地,所述硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据,包括:
所述算法实现进程响应于所述图像捕捉请求,基于所述索引标识,在所述预设存储空间获取所述原始图像数据。
在一些实施例中,所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像,包括:
所述算法实现进程确定所述第一捕捉模式命令包括的图像处理算法标识位,基于所述算法标识位在所述硬件抽象层的算法进程的算法列表中确定目标算法;
所述算法实现进程调用所述目标算法对所述原始图像数据进行图像处理,得到所述目标图像。
在一些实施例中,在得到所述目标图像之后,所述方法还包括:
所述算法实现进程调用预设通信接口将所述目标图像发送至框架层的算法服务进程;
所述算法服务进程调用管理接口,将所述目标图像发送至所述第一应用程序。
在一些实施例中,所述方法还包括:
所述算法实现进程响应于第二应用程序的图像捕捉请求,获取所述第二应用程序提供的第二图像;其中,所述第二应用程序与所述第一应用程序不同;
所述算法实现进程基于所述第二应用程序的捕捉请求对应的图像处理算法需求,对所述第二图像进行图像处理,得到第三图像,并将所述第三图像提供至所述第二应用程序。
在一些实施例中,所述方法还包括:
如果所述图像捕捉请求处于第二捕捉模式,所述算法实现进程不响应所述图像捕捉请求。
本申请实施例提供一种图像处理系统,所述系统包括:
第一应用程序,位于应用层,所述第一应用程序用于发出图像捕捉请求,获得原始图像;
相机实现模块,位于硬件抽象层,所述相机实现模块响应于所述图像捕捉请求,基于所述原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序;
算法实现模块,位于硬件抽象层,如果所述图像捕捉请求处于第一捕捉模式,所述算法实现模块响应于所述图像捕捉请求,获取所述原始图像数据;并基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像;
所述第一应用程序还用于通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现模块和算法实现模块之间相互独立。
本申请实施例提供一种图像处理设备,包括处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述图像处理方法。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述图像处理方法。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括可执行指令,所述可执行指令存储在计算机可读存储介质中;当图像处理设备的处理器从所述计算机可读存储介质读取所述可执行指令,并执行所述可执行指令时,实现上述图像处理方法。
本申请实施例提供的图像处理方法、系统、设备及存储介质,第一方面,通过硬件抽象层的相机实现进程基于图像捕捉请求获得的原始图像数据生成第一图像,并将所述第一图像提供至第一应用程序,如此将相机的拍照流程放在相机实现进程中,相机实现进程会给第一应用程序一张预览图,使得相机可以连续拍照,即使对图像进行处理的算法崩溃,用户也能够能得到一张未经算法处理的图像,避免第一应用程序出现拍照后无法提供图片导致第一应用程序无法正常进行拍照的问题;第二方面,在图像捕捉请求处于第一捕捉模式的时候,硬件抽象层的算法实现进程对原始图像数据进行图像处理,得到处理后的目标图像,并通过目标图像替换第一应用程序中的第一图像,如此,本申请通过独立的算法实现进程对原始图像进行算法处理,即使算法崩溃,相机实现进程也会给第一应用程序一张预览图相,不会影响相机的时序,相机的多帧拍照也不会卡顿,提升了相机的使用流畅性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请实施例提供的图像处理方法的应用场景示意图;
图2是本申请实施例提供的一种图像处理方法的实现流程示意图;
图3是本申请实施例提供的一种图像处理方法的实现流程示意图;
图4是本申请实施例提供的一种图像处理方法的实现流程示意图;
图5是本申请实施例提供的一种图像处理方法的框架示意图;
图6是本申请实施例提供的一种图像处理装置示意图;
图7是本申请实施例提供的一种图像处理设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在现在的手机或平板中,相机的硬件抽象层一般会集成多个三方算法,比如美颜、滤镜、高动态范围成像(HDR,High Dynamic Range Imaging)、多帧降噪和单帧虚化等,以提高照片的画质。但是,相关技术中相机的硬件抽象层对相机拍摄的照片进行图像处理,如果算法的处理时间过长,会影响平台原生处理流程的正常时序,或造成多帧拍照无响应,如果算法内部发生崩溃,还会导致相机崩溃。
基于相关技术中存在的问题,本申请实施例提供一种图像处理方法,通过硬件抽象层的相机实现进程基于图像捕捉请求获得的原始图像数据生成第一图像,并将所述第一图像提供至第一应用程序,如此将相机正常流程放在相机实现进程中,即使算法崩溃,相机实现进程也会给第一应用程序一张预览图,使得相机可以连续拍照;在图像捕捉请求处于第一捕捉模式的时候,硬件抽象层的算法实现进程对原始图像数据进行图像处理,得到目标图像,并通过目标图像替换第一应用程序中的第一图像,如此,本申请通过独立的算法实现进程对原始图像进行算法处理,即使算法崩溃,相机实现进程也会给第一应用程序预览图,不会影响相机时序,相机的多帧拍照不会卡顿,提升了相机的使用流畅性。
本申请实施例提供的图像处理方法可以由图像处理设备等电子设备执行,其中电子设备可以是笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
下面,将说明图像处理设备实施为服务器时的示例性应用,将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1是本申请实施例提供的图像处理方法的应用场景示意图。本申请实施例提供的图像处理系统10中包括第一应用程序100、相机实现模块200和算法实现模块300,相机实现模块程200和算法实现模块300位于硬件抽象层,在一些实施例中,相机实现模块200是相机实现进程,算法实现模块300是算法实现进程,相机实现进程和算法实现进程之间相互独立。相机实现模块200响应于第一应用程序100的图像捕捉请求,基于获得的原始图像数据生成第一图像,并将第一图像提供至第一应用程序100,如果图像捕捉请求处于第一捕捉模式,硬件抽象层的算法实现模块300响应于图像捕捉请求,获取原始图像数据,算法实现模块300基于第一捕捉模式对应的图像处理算法需求,对原始图像数据进行图像处理,得到目标图像,第一应用程序100通过目标图像对第一图像进行替换,以显示目标图像。
图2是本申请实施例提供的一种图像处理方法的实现流程示意图,如图2所示,该方法通过步骤S201至步骤S204实现:
步骤S201、硬件抽象层的相机实现进程响应于第一应用程序的图像捕捉请求,基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序。
在本申请实施例中,图像处理系统至少包括应用层的第一应用程序和硬件抽象层的相机实现模块,相机实现模块可以是相机实现进程。第一应用程序可以是电子设备中的相机拍照程序(例如美图秀秀等拍照程序),第一应用程序响应于用户的拍照操作,获得原始图像数据,并存储至电子设备中预设的存储空间,并生成图像捕捉请求,图像捕捉请求中可以包括原始图像数据的索引标识(可以是buffer指针)、图像的长宽和格式等信息,buffer指针用于指向原始图像数据在存储空间的地址。
在一些实施例中,相机实现进程在电子设备开机或相机打开时开始运行,相机实现进程提供安卓接口定义语言(Android Interface Definition Language,AIDL)跨进程接口供相机服务进程进行调用,相机实现进程可以基于相机服务进程接收第一应用程序的图像捕捉请求,然后将图像处理结果(即第一图像)通过Camera HIDL接口将结果发送至相机实现进程,相机实现进程再返回给第一应用进程。
在一些实施例中,相机实现进程在接收到图像捕捉请求之后,根据图像捕捉请求中的索引标识在存储空间中获取原始图像数据,并基于原始图像数据生成第一图像,第一图像可以是未经算法处理的预览图像,将第一图像提供至第一应用程序,以使得第一应用程序能够得到一张预览图像,使得第一应用程序的拍照按钮回复正常,避免第一应用程序的运行时序被破坏,拍照按钮会变为按压态,无法响应用户的拍照操作的问题。
步骤S202、如果所述图像捕捉请求处于第一捕捉模式,硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据。
在本申请实施例中,第一捕捉模式可以是多帧拍照模式,即需要将多帧图像通过算法合成一张图像,此时,硬件抽象层的算法实现进程响应于该图像捕捉请求,获取所述原始图像数据。算法实现进程和相机实现进都位于硬件抽象层,但相机实现进程和算法实现进程之间相互独立。
这里,算法实现进程和相机实现进程可以通过内存共享的方式从预设的存储空间中获取原始图像数据,例如,算法实现进程和相机实现进程分别通过图像捕捉请求中的索引标识,从预设的存储空间中获取原始图像数据。
步骤S203、所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像。
在一些实施例中,第一捕捉模式对应的图像处理算法需求可以是用户基于第一应用程序设置的,也可以是第一捕捉模式下定义的固定的图像处理算法需求。这里,图像处理算法需求可以是对曝光参数进行调整、进行人脸检测和进行人脸美颜等需求。
算法实现进程在获取到原始图像数据之后,根据第一捕捉模式对应的图像处理算法需求,调用对应的图像处理算法,例如,调用美颜算法对图像上的人脸进行图像处理,得到满足需求的目标图像。
步骤S204、所述第一应用程序通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现进程和算法实现进程之间相互独立。
在一些实施例中,算法实现进程在得到目标图像之后,需要将目标图像返回至第一应用程序,以替换第一应用程序中的第一图像,以向用户展示算法处理后的图像。
在一些实施例中,用户在使用相机时,每次拍照结束都会点开预览图查看拍摄的图片是否满足需求,本申请实施例在拍照结束后,相机实现进程返回给第一应用程序一个用于第一图像(即预览图像),使相机的拍照按钮恢复为可拍照状态,以保持相机的可使用性,此时相机可以继续拍照,也可以点开预览图以查看图像,此时,点开预览图像的时间可以作为算法实现进程对图像进行处理的时间,点开图像后查看的是算法实现进程返回的目标图像。
本申请实施例通过硬件抽象层的相机实现进程基于图像捕捉请求获得的原始图像数据生成第一图像,并将所述第一图像提供至第一应用程序,如此将相机正常流程放在相机实现进程中,即使算法崩溃,相机实现进程也会给第一应用程序一张预览图,使得相机可以连续拍照;在图像捕捉请求处于第一捕捉模式的时候,硬件抽象层的算法实现进程对原始图像数据进行图像处理,得到目标图像,并通过目标图像替换第一应用程序中的第一图像,如此,本申请通过独立的算法实现进程对原始图像进行算法处理,即使算法崩溃,相机实现进程也会给第一应用程序预览图,不会影响相机时序,相机的多帧拍照不会卡顿,提升了相机使用效率。
在一些实施例中,相机在多帧拍照时,如果算法的处理时间过长,会影相机拍照处理流程的正常时序,例如造成多帧拍照无响应,因此,为了避免相机无响应,本申请会在相机拍照后返相机一张预览图,以实现相机正常的多帧拍照。基于上述实施例,图3是本申请实施例提供的一种图像处理方法的实现流程示意图,如图3所示,步骤S201可以通过步骤S301至步骤S303实现:
步骤S301、框架层的相机服务进程响应于所述图像捕捉请求,将所述图像捕捉请求下发至所述相机实现进程;其中,所述图像捕捉请求至少包括所述原始图像数据的索引标识。
在本申请实施例中,图像处理系统还可以包括框架层的相机服务进程,相机服务进程在开机就会运行,它封装了Camera AIDL跨进程接口,提供给应用层的第一应用程序进行调用,进而接收来自第一应用程序的图像捕捉请求,同时内部维护着图像捕捉请求在该层的处理逻辑,最终通过调用Camera AIDL跨进程接口将图像捕捉请求再次下发到相机实现进程中,并且将相机实现进程的处理结果(即第一图像)上传至第一应用程序中。
步骤S302、所述相机实现进程基于所述索引标识,在所述第一应用程序对应的预设存储空间获取所述原始图像数据,生成所述第一图像。
在本申请实施例中,图像捕捉请求至少包括原始图像数据的索引标识,索引标识可以是buffer指针,用于指向原始图像数据在存储空间的地址。相机实现进程通过索引标识确定原始图像数据在存储空间的地址,基于该地址获取原始图像数据,并根据原始图像数据生成未经图像处理的第一图像。
这里,预设存储空间可以是电子设备的存储空间,第一应用程序拍照后,将原始图像数据存储至预设存储空间中,第一应用程序将表征原始图像数据地址的索引标识下发至相机实现进程和算法实现进程。
步骤S303、所述相机服务进程获取所述第一图像,并将所述第一图像提供至所述第一应用程序的显示界面。
在本申请实施例中,图像处理系统还可以包括框架层的算法服务模块,算法服务模块可以是算法实现进程,算法服务进程与相机服务进程之间相互独立,且同时启动,算法服务进程也封装了Camera AIDL跨进程接口,提供给应用层的第一应用程序和算法实现进程进行调用,进而接收来自第一应用程序的图像捕捉请求,同时内部维护着图像捕捉请求在该层的处理逻辑,最终可以通过调用Camera AIDL跨进程接口将图像捕捉请求再次下发到算法实现进程中,并且将算法实现进程的处理结果(即目标图像)上传至第一应用程序中,以替换第一图像。
在一些实施例中,算法服务进程可以响应于图像捕捉请求,将图像捕捉请求中的索引标识发送至所述算法实现进程,对应地,步骤S202可以是算法实现进程响应于图像捕捉请求,基于索引标识,在预设存储空间获取所述原始图像数据。
本申请实施例中的相机实现进程基于图像捕捉请求获得的原始图像数据生成第一图像,并将所述第一图像提供至第一应用程序,如此,保证了相机的时序正常和相机的可使用性。
在本申请实施例中,算法实现进程可以调用算法进程中的算法对原始图像数据进行图像处理,得到目标图像。图4是本申请实施例提供的一种图像处理方法的实现流程示意图,如图4所示,步骤S203通过步骤S401至步骤S402实现。
步骤S401、所述算法实现进程确定所述第一捕捉模式命令包括的图像处理算法标识位,基于所述算法标识位在所述硬件抽象层的算法进程的算法列表中确定目标算法。
在本申请实施例中,图像处理系统还包括硬件抽象层中的算法进程,算法进程中包含第一应用程序的所有算法,形成算法列表。图像处理算法标识位可以是指算法开关,例如,算法标识位为0表示不需要该算法,1表示需要该算法对图像进行处理。
本申请实施例在第一应用程序处于第一捕捉模式的情况下,算法实现进程确定第一捕捉模式下全部的图像处理算法标识位,基于该图像处理算法标识位在算法列表中确定出对原始图像数据进行图像处理的目标算法。目标算法可以是美颜、滤镜和将多帧图像处理成一张等对应的算法。
步骤S402、所述算法实现进程调用所述目标算法对所述原始图像数据进行图像处理,得到所述目标图像。
在一些实施例中,算法实现进程基于目标算法,调用算法进程中的目标算法,对原始图像数据进行图像处理,得到算法处理后的目标图像。
在一些实施例中,在得到目标图像之后,算法实现进程通过框架层的算法服务进程将目标图像发送至第一应用程序。因此,本申请实施例还可以包括步骤S1和步骤S2。
步骤S1、所述算法实现进程调用预设通信接口将所述目标图像发送至框架层的算法服务进程。
在一些实施例中,预设通信接口可以是AIDL接口,是安卓提供的跨进程通信方式。算法实现进程可以调用AIDL接口将所述目标图像发送至框架层的算法服务进程。
步骤S2、所述算法服务进程调用管理接口,将所述目标图像发送至所述第一应用程序。
算法服务进程调用管理接口(也可以是AIDL接口),将目标图像发送至第一应用程序,第一应用程序通过目标图像替换第一图像,以在电子设备上显示算法处理后的图像。
在一些实施例中,本申请实施例提供的图像处理方法还可以应用到电子设备中的第二应用程序。因此,本申请实施例还可以包括步骤S11和步骤S21。
步骤S11、所述算法实现进程响应于第二应用程序的图像捕捉请求,获取所述第二应用程序提供的第二图像;其中,所述第二应用程序与所述第一应用程序不同。
在一些实施例中,第二应用程序可以是图像处理设备中与第一应用程序不同的拍照程序,例如,第一应用程序是电子设备自带的相机程序,第二应用程序是独立的图像处理程序。
本申请实施例中独立的算法实现进程还可以响应于第二应用程序的图像捕捉请求,根据第二应用程序的图像捕捉请求中的索引标识,在预设存储空间中获取第二应用程序捕捉的第二图像。
步骤S21、所述算法实现进程基于所述第二应用程序的捕捉请求对应的图像处理算法需求,对所述第二图像进行图像处理,得到第三图像,并将所述第三图像提供至所述第二应用程序。
本申请实施例可以基于第二应用程序的捕捉请求对应的图像处理算法需求(可以与图像捕捉请求的算法需求相同或不同),对第二图像进行图像处理,得到第三图像,并将所述第三图像提供至所述第二应用程序,以使得第二应用程序通过第三图像替换第二图像。
本申请实施例提供的图像处理算法可以通过接口,实现电子设备中任一有图像处理需求的应用程序,通过独立的算法实现进程对图像进行处理,并将处理后的图像返回至应用程序;且其他应用程序可以直接调用我们的接口实现美颜和滤镜等算法,扩宽了本申请的应用场景。
在一些实施例中,如果所述图像捕捉请求处于第二捕捉模式,所述算法实现进程不响应所述图像捕捉请求。
在本申请实施例中,第二捕捉模式与第一捕捉模式不同,第二捕捉模式可以是普通的单次拍照模式,不是多帧拍照模式,此时,相机实现进程可以响应第二捕捉模式的图像捕捉请求,调用算法对图像进行处理并返回至应用程序,也可以是相机实现进程响应第二捕捉模式的图像捕捉请求,先返回应用程序一个预览图像,再调用算法对图像进行处理并返回至应用程序替换预览图像。
本申请实施例再提供一种图像处理方法在实际场景中的应用。
本申请实施例在电子设备开机时启动与camera service(即相机服务进程)并行的一个service,以下统称为pandora service(即算法实现进程),pandora service用于算法进程相关的request(即图像捕捉请求)下发和图像接收。把三方算法的处理单独放在pandora provider进程(即算法实现进程)中,通过socket通信和共享内存方式把主进程(即相机实现进程)的图像和metadata(算法处理需要的一些参数,比如AE(自动曝光)参数,face(人脸检测)信息等)发送到算法实现进程,算法实现进程调用各个算法进行处理,最后通过AIDL接口把图像处理后的图像发送给框架层的算法服务进程。
图5是本申请实施例提供的一种图像处理方法的框架示意图,如图5所示,第一应用程序501响应于用户的拍照操作,将请求(即图像捕捉请求)发送至相机服务进程502,相机服务进程502将该请求下发至相机实现进程503,相机实现进程基于请求在内存中获取原始图像数据,根据原始图像数据生成预览图像,基于相机服务进程502返回至第一应用程序501。同时第一应用程序501通过Pandora manager(是java层的一个类,用于提供调用接口)给第一应用程序501下发拍照请求的调用接口,利用AIDL与算法服务进程504通信,下发请求至算法实现进程505和接收算法实现进程505进行图像处理后的图像。
如图5所示,本申请实施例还提供了独立的算法进程506,算法进程506中包含算法1至n个图像处理算法,算法实现进程505在接收到请求时,根据请求中的算法需求在算法进程506中调用对应的算法对原始图像数据进行算法处理。
本申请实施例中,算法实现进程505和相机实现进程503通过内存共享的方式获取原始图像数据。用户打开相机点击拍照,相机实现进程503通过socket通信和共享内存的方式把原始图像数据和metadata(可以是算法处理需要的一些参数,比如AE(自动曝光)参数,face(人脸检测)信息等)传给算法实现进程505。这里,主进程(即相机实现进程503)可以通过socket把原始图像数据的文件描述符发送给算法实现进程505,在算法实现进程505里通过mmap把接收到的文件描述符映射到内存中,从而获取原始图像数据。
在一些实施例中,主进程的原始图像数据图像保存在文件描述符标识的文件中,主进程通过socket把文件描述符发送给算法实现进程505,算法实现进程505把接收到的文件描述符mmap到内存中,就可直接访问这个文件的内容。
本申请实施例中,电子设备开机启动相机服务进程502的同时,启动算法服务进程504,在算法服务进程504建立socket用于与主进程(即相机实现进程)通信。
本申请实施例中,Pandora Sink是一个C++类,提供了与主进程通信的接口。
基于上述实施例,本申请实施例提供一种图像处理装置,图6是本申请实施例提供的一种图像处理装置示意图,如图6所示,所述装置60包括生成模块601、获取模块602、图像处理模块603和替换模块604。
其中,生成模块601,用于硬件抽象层的相机实现进程响应于第一应用程序的图像捕捉请求,基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序;获取模块602,用于如果所述图像捕捉请求处于第一捕捉模式,硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据;图像处理模块603,用于所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像;替换模块604,用于所述第一应用程序通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现进程和算法实现进程之间相互独立。
在一些实施例中,生成模块601,还用于框架层的相机服务进程响应于所述图像捕捉请求,将所述图像捕捉请求下发至所述相机实现进程;其中,所述图像捕捉请求至少包括所述原始图像数据的索引标识;所述相机实现进程基于所述索引标识,在所述第一应用程序对应的预设存储空间获取所述原始图像数据,生成所述第一图像;所述相机服务进程获取所述第一图像,并将所述第一图像提供至所述第一应用程序的显示界面。
在一些实施例中,所述装置还包括:发送模块,用于框架层的算法服务进程响应于所述图像捕捉请求,将所述索引标识发送至所述算法实现进程;其中,所述算法服务进程与所述相机服务进程之间相互独立,且同时启动;对应地,获取模块602还用于所述算法实现进程响应于所述图像捕捉请求,基于所述索引标识,在所述预设存储空间获取所述原始图像数据。
在一些实施例中,图像处理模块603还用于所述算法实现进程确定所述第一捕捉模式命令包括的图像处理算法标识位,基于所述算法标识位在所述硬件抽象层的算法进程的算法列表中确定目标算法;所述算法实现进程调用所述目标算法对所述原始图像数据进行图像处理,得到所述目标图像。
在一些实施例中,在得到所述目标图像之后,所述装置还包括:第一发送模块,用于所述算法实现进程调用预设通信接口将所述目标图像发送至框架层的算法服务进程;第二发送模块,用于所述算法服务进程调用管理接口,将所述目标图像发送至所述第一应用程序。
在一些实施例中,所述装置还包括:第一获取模块所述算法实现进程响应于第二应用程序的图像捕捉请求,获取所述第二应用程序提供的第二图像;其中,所述第二应用程序与所述第一应用程序不同;图像处理模块,用于所述算法实现进程基于所述第二应用程序的捕捉请求对应的图像处理算法需求,对所述第二图像进行图像处理,得到第三图像,并将所述第三图像提供至所述第二应用程序。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式、处理的个人信息种类等信息。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述图像处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述图像处理方法。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述图像处理方法。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
需要说明的是,图7是本申请实施例提供的一种图像处理设备的硬件实体示意图,如图7所示,该电子设备70的硬件实体包括:处理器701、通信接口702和存储器703,其中:
处理器701通常控制电子设备70的总体操作。
通信接口702可以使电子设备通过网络与其他终端或服务器通信。
存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及电子设备70中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器701、通信接口702和存储器703之间可以通过总线704进行数据传输。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种图像处理方法,所述方法包括:
硬件抽象层的相机实现进程响应于第一应用程序的图像捕捉请求,基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序;
如果所述图像捕捉请求处于第一捕捉模式,硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据;
所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像;
所述第一应用程序通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现进程和算法实现进程之间相互独立。
2.根据权利要求1所述的方法,所述基于获得的原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序,包括:
框架层的相机服务进程响应于所述图像捕捉请求,将所述图像捕捉请求下发至所述相机实现进程;其中,所述图像捕捉请求至少包括所述原始图像数据的索引标识;
所述相机实现进程基于所述索引标识,在所述第一应用程序对应的预设存储空间获取所述原始图像数据,生成所述第一图像;
所述相机服务进程获取所述第一图像,并将所述第一图像提供至所述第一应用程序的显示界面。
3.根据权利要求2所述的方法,所述方法还包括:
框架层的算法服务进程响应于所述图像捕捉请求,将所述索引标识发送至所述算法实现进程;其中,所述算法服务进程与所述相机服务进程之间相互独立,且同时启动;
对应地,所述硬件抽象层的算法实现进程响应于所述图像捕捉请求,获取所述原始图像数据,包括:
所述算法实现进程响应于所述图像捕捉请求,基于所述索引标识,在所述预设存储空间获取所述原始图像数据。
4.根据权利要求1所述的方法,所述算法实现进程基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像,包括:
所述算法实现进程确定所述第一捕捉模式命令包括的图像处理算法标识位,基于所述算法标识位在所述硬件抽象层的算法进程的算法列表中确定目标算法;
所述算法实现进程调用所述目标算法对所述原始图像数据进行图像处理,得到所述目标图像。
5.根据权利要求1至4任一项所述的方法,在得到所述目标图像之后,所述方法还包括:
所述算法实现进程调用预设通信接口将所述目标图像发送至框架层的算法服务进程;
所述算法服务进程调用管理接口,将所述目标图像发送至所述第一应用程序。
6.根据权利要求1至4任一项所述的方法,所述方法还包括:
所述算法实现进程响应于第二应用程序的图像捕捉请求,获取所述第二应用程序提供的第二图像;其中,所述第二应用程序与所述第一应用程序不同;
所述算法实现进程基于所述第二应用程序的捕捉请求对应的图像处理算法需求,对所述第二图像进行图像处理,得到第三图像,并将所述第三图像提供至所述第二应用程序。
7.根据权利要求1至4任一项所述的方法,所述方法还包括:
如果所述图像捕捉请求处于第二捕捉模式,所述算法实现进程不响应所述图像捕捉请求。
8.一种图像处理系统,所述系统包括:
第一应用程序,位于应用层,所述第一应用程序用于发出图像捕捉请求,获得原始图像;
相机实现模块,位于硬件抽象层,响应于所述图像捕捉请求,基于所述原始图像数据生成第一图像,并将所述第一图像提供至所述第一应用程序;
算法实现模块,位于硬件抽象层,如果所述图像捕捉请求处于第一捕捉模式,所述算法实现模块响应于所述图像捕捉请求,获取所述原始图像数据;并基于所述第一捕捉模式对应的图像处理算法需求,对所述原始图像数据进行图像处理,得到目标图像;
所述第一应用程序还用于通过所述目标图像对所述第一图像进行替换,以显示所述目标图像;其中,所述相机实现模块和算法实现模块之间相互独立。
9.一种图像处理设备,包括处理器及存储器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的图像处理方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的图像处理方法。
CN202310778768.0A 2023-06-28 2023-06-28 图像处理方法、系统、设备及存储介质 Pending CN116828283A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310778768.0A CN116828283A (zh) 2023-06-28 2023-06-28 图像处理方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310778768.0A CN116828283A (zh) 2023-06-28 2023-06-28 图像处理方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116828283A true CN116828283A (zh) 2023-09-29

Family

ID=88128763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310778768.0A Pending CN116828283A (zh) 2023-06-28 2023-06-28 图像处理方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116828283A (zh)

Similar Documents

Publication Publication Date Title
WO2019128568A1 (zh) 内容推送方法、装置及设备
CN106453572B (zh) 基于云服务器同步图像的方法及系统
EP4060603A1 (en) Image processing method and related apparatus
CN105979363A (zh) 一种身份识别法和装置
CN113727035A (zh) 图像处理方法、系统、电子设备及存储介质
US11321487B2 (en) Contextual privacy policy implementation via digital blurring system
CN110958399B (zh) 高动态范围图像hdr实现方法及相关产品
WO2016197657A1 (zh) 一种拍照处理方法和装置
US12093352B2 (en) Image processing method and apparatus based on video conference
CN114125284A (zh) 图像处理方法、电子设备及存储介质
CN113810604B (zh) 文档拍摄方法、电子设备和存储介质
US10134137B2 (en) Reducing storage using commonalities
CN116724560A (zh) 跨设备的协同拍摄方法、相关装置及系统
CN111259441B (zh) 设备控制方法、装置、存储介质及电子设备
WO2023109389A1 (zh) 图像融合方法、装置、计算机设备及计算机可读存储介质
CN109033393A (zh) 贴纸处理方法、装置、存储介质及电子设备
CN112672046B (zh) 连拍图像的存储方法、装置、电子设备和存储介质
CN108259767B (zh) 图像处理方法、装置、存储介质及电子设备
KR20180068054A (ko) 차량 탑승자 간 자료 공유 방법 및 그 시스템
US10158926B1 (en) Digital fingerprinting of live events for automatic detection
CN116828283A (zh) 图像处理方法、系统、设备及存储介质
US20130057708A1 (en) Real-time Wireless Image Logging Using a Standalone Digital Camera
US8824854B2 (en) Method and arrangement for transferring multimedia data
CN115022526A (zh) 全景深图像生成方法和装置
CN111064892A (zh) 图像自动分享方法、系统、电子装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination