图像采集方法、装置、终端及存储介质
文献发布时间:2023-06-19 19:35:22
技术领域
本公开涉及计算机技术领域,尤其涉及一种图像采集方法、装置、终端及存储介质。
背景技术
随着科学技术的发展,终端的发展也越来越迅速,因此提高用户使用终端的便利性成为用户关注的焦点。终端不仅可以拍摄图像,还可以连自动曝光(AutomaticExposure,AE)。自动曝光是终端相机的必备功能。在黑暗和明亮的环境下终端均可实现对相机曝光的迅速调节,达到较高的成像质量,即终端可以获取到质量较高的图像。
发明内容
本公开提供了一种图像采集方法、装置、终端及存储介质,主要目的在于可以提高图像采集的准确性。本公开实施例的技术方案如下:
根据本公开的一方面,本公开实施例提供了一种图像获取方法,包括:
若摄像头的运行状态为扫码状态,则获取与所述摄像头对应的图像帧数;
获取与所述图像帧数对应的曝光初始值和与所述图像帧数对应的收敛速度值;
基于所述曝光初始值和所述收敛速度值,控制所述摄像头采集与所述图像帧数对应的扫码图像集合;所述扫码图像集合用于指示终端获取与所述扫码图像集合对应的识别码。
可选的,所述获取与所述摄像头对应的图像帧数,包括:
获取所述摄像头对应的摄像头模组标识;
获取与所述摄像头模组标识对应的图像帧数。
可选的,所述获取与所述摄像头对应的图像帧数,包括:
获取当前运行的应用程序;
获取与所述应用程序对应的图像帧数,并将所述图像帧数确定为与所述摄像头对应的图像帧数。
可选的,所述获取与所述摄像头对应的图像帧数,包括:
获取应用程序集合中各应用程序对应的图像帧数,获取到图像帧数集合;
将所述图像帧数集合中最大图像帧数确定为与所述摄像头对应的图像帧数。
可选的,所述获取与所述图像帧数对应的曝光初始值和与所述图像帧数对应的收敛速度值,包括:
获取曝光初始值集合和收敛速度值集合,所述曝光初始值集合包括各图像帧数和所述各图像帧数对应的曝光初始值,所述收敛速度值集合包括所述各图像帧数和所述各图像帧数对应的收敛速度值;
基于所述曝光初始值集合获取与所述图像帧数对应的曝光初始值,基于所述收敛速度值集合获取与所述图像帧数对应的收敛速度值。
可选的,所述基于所述曝光初始值和所述收敛速度值,控制所述摄像头采集与所述图像帧数对应的扫码图像集合,包括:
基于所述曝光初始值和所述收敛速度值,计算与所述摄像头对应的曝光参数;
基于所述曝光参数,控制所述摄像头采集与所述图像帧数对应的扫码图像集合。
可选的,所述控制所述摄像头采集与所述图像帧数的扫码图像集合,包括:
控制所述摄像头采集第一扫码图像;
若所述第一扫码图像满足图像条件,则控制所述摄像头采集预设帧数的第二扫码图像,其中,所述预设帧数比所述图像帧数小一帧;
若获取到所述预设帧数的第二扫码图像,则将所述第一扫码图像和所述预设帧数的第二扫码图像添加至扫码图像集合。
根据本公开的一方面,本公开实施例提供了一种图像获取装置,包括:
帧数获取单元,用于若摄像头的运行状态为扫码状态,则获取与所述摄像头对应的图像帧数;
速度值获取单元,用于获取与所述图像帧数对应的曝光初始值和与所述图像帧数对应的收敛速度值;
图像采集单元,用于基于所述曝光初始值和所述收敛速度值,控制所述摄像头采集与所述图像帧数对应的扫码图像集合;所述扫码图像集合用于指示终端获取与所述扫码图像集合对应的识别码。
可选的,所述帧数获取单元包括标识获取子单元和帧数获取子单元,所述帧数获取单元,用于获取与所述摄像头对应的图像帧数时:
所述标识获取子单元,用于获取所述摄像头对应的摄像头模组标识;
所述帧数获取子单元,用于获取与所述摄像头模组标识对应的图像帧数。
可选的,所述帧数获取单元包括程序获取子单元和帧数获取子单元,所述帧数获取单元,用于获取与所述摄像头对应的图像帧数时:
所述程序获取子单元,用于获取当前运行的应用程序;
所述帧数获取子单元,用于获取与所述应用程序对应的图像帧数,并将所述图像帧数确定为与所述摄像头对应的图像帧数。
可选的,所述帧数获取单元,用于获取与所述摄像头对应的图像帧数时,具体用于:
获取应用程序集合中各应用程序对应的图像帧数,获取到图像帧数集合;
将所述图像帧数集合中最大图像帧数确定为与所述摄像头对应的图像帧数。
可选的,所述速度值获取单元,用于获取与所述图像帧数对应的曝光初始值和与所述图像帧数对应的收敛速度值时,具体用于:
获取曝光初始值集合和收敛速度值集合,所述曝光初始值集合包括各图像帧数和所述各图像帧数对应的曝光初始值,所述收敛速度值集合包括所述各图像帧数和所述各图像帧数对应的收敛速度值;
基于所述曝光初始值集合获取与所述图像帧数对应的曝光初始值,基于所述收敛速度值集合获取与所述图像帧数对应的收敛速度值。
可选的,所述图像采集单元,用于基于所述曝光初始值和所述收敛速度值,控制所述摄像头采集与所述图像帧数对应的扫码图像集合时,具体用于:
基于所述曝光初始值和所述收敛速度值,计算与所述摄像头对应的曝光参数;
基于所述曝光参数,控制所述摄像头采集与所述图像帧数对应的扫码图像集合。
可选的,所述图像采集单元,用于控制所述摄像头采集与所述图像帧数的扫码图像集合时,具体用于:
控制所述摄像头采集第一扫码图像;
若所述第一扫码图像满足图像条件,则控制所述摄像头采集预设帧数的第二扫码图像,其中,所述预设帧数比所述图像帧数小一帧;
若获取到所述预设帧数的第二扫码图像,则将所述第一扫码图像和所述预设帧数的第二扫码图像添加至扫码图像集合。
根据本公开的一方面,提供了一种终端,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述一方面中任一项所述的方法。
根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述一方面中任一项所述的方法。
根据本公开的一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述一方面中任一项所述的方法。
本公开一些实施例提供的技术方案带来的有益效果至少包括:
在本公开一个或多个实施例中,若摄像头的运行状态为扫码状态,则获取与摄像头对应的图像帧数,可以获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值,基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,由于扫码图像集合用于指示终端获取与扫码图像集合对应的识别码,在扫码过程中,无需获取识别码在扫码图像中的位置信息,可以减少获取识别码位置信息的时长,可以提高扫码的效率,同时基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,可以减少获取到曝光图像无法识别到识别码的概率,可以提高图像采集的准确性,提高识别码识别成功的概率,进而可以提高用户的使用体验。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例提供的一种图像采集方法的系统架构图;
图2示出本公开实施例提供的一种图像采集方法的背景示意图;
图3示出本公开实施例提供的一种图像采集方法的流程示意图;
图4示出本公开实施例提供的一种图像采集方法的流程示意图;
图5示出本公开实施例提供的一种高动态场景中采集的扫码图像的举例示意图;
图6示出本公开实施例提供的一种终端界面的举例示意图;
图7示出本公开实施例提供的一种收敛速度值集合的举例示意图;
图8示出本公开实施例提供的一种扫码图像的举例示意图;
图9示出本公开实施例提供的一种扫码图像的举例示意图;
图10示出本公开实施例提供的一种图像采集装置的结构示意图;
图11示出本公开实施例提供的一种图像采集装置的结构示意图;
图12示出本公开实施例提供的一种图像采集装置的结构示意图;
图13是本公开实施例提供的一种终端的结构示意图;
图14是本公开实施例提供的操作系统和用户空间的结构示意图;
图15是图14中安卓操作系统的架构图;
图16是图14中IOS操作系统的架构图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
在本公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本公开的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。此外,在本公开的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
随着科学技术的发展,终端支持的功能越来越多,极大地方便了用户的生活。例如终端可以支持图像采集功能。采集的图像包括但不限于高动态范围图像(High-DynamicRange,简称HDR)和普通的图像。高动态范围图像(High-Dynamic Range,简称HDR),相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-DynamicRange)图像,利用每个曝光时间相对应最佳细节的LDR图像来合成合成最终HDR图像,能够更好的反映用户真实环境中的视觉效果。
易于理解的是,自动曝光是终端相机的必备功能,即在黑暗和明亮的环境下终端均可实现对相机曝光的迅速调节,达到较高的成像质量,即终端可以获取到质量较高的图像。
在一些实施例中,图1示出本公开实施例提供的一种图像采集方法的系统架构图。如图1所示,终端11例如可以通过网络12获取到终端13所展示的二维码。当终端11距离终端12较远时,终端可以采集并展示的二维码图像占终端显示屏的比例较低,终端11可以接收针对该二维码图像的放大指令,以使终端11可以识别成功该二维码。
根据一些实施例,图2示出本公开实施例提供的一种图像采集方法的背景示意图。如图2所示,在自动曝光技术领域,终端C采集的图像可以如图2所示。终端采集图像时,例如可以基于整个展示画面的亮度信息,计算单次扫码过程中下一帧的曝光时间和感光度。为了提高性能和体验,终端相机一般会采用warm up技术,即将上一次相机关闭时的AE信息存储下来,直接作用于下一次打开相机的第一帧曝光,这样在相同场景下第二次使用相机时,可以在打开相机的瞬间得到理想亮度的图像。
可选的,在图2中,黑色区域为终端C的摄像头所展示的画面,表示当前场景为夜晚场景,白色区域为发光屏幕,例如可以是终端C采集到的另一终端的亮屏区域。另一终端包括但不限于手机、平板、地下停车场收费、自动售卖机。终端C例如可以将屏幕中心区域的曝光参数和对焦参数的权重提高,不仅能解决高动态场景的扫码问题,同时在一定程度上也能提高其他场景的扫码速度。但是当二维码图像没有在屏幕中心区域时,扫码成功率会大大降低。
易于理解的是,终端还可以根据图像熵值获取光照信息。基于图像熵值和预设熵值的对比情况,将图像划分为感兴趣区域与不感兴趣区域,再由图像熵值大小采用分配权重方法对不同区域分配不同的权重,最后进行准确地自动曝光。但由于二维码的位置并非固定位置,因此终端需要先识别二维码的位置信息,会增加扫码时长,降低扫码效率,降低用户的使用体验。
下面结合具体的实施例对本公开进行详细说明。
在一个实施例中,如图3所示,图3示出本公开实施例提供的一种图像采集方法的流程示意图,该方法可依赖于计算机程序实现,可运行于包括图像采集功能的装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
其中,所述图像采集装置可以是具有图像采集功能的终端,该终端包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personaldigital assistant,PDA)、第五代移动通信技术(5th Generation Mobile CommunicationTechnology,5G)网络、第四代移动通信技术(the 4th generation mobile communicationtechnology,4G)网络、第三代移动通信技术(3rd-Generation,3G)网络或未来演进网络中的终端等。
具体的,该图像采集方法包括:
S101,若摄像头的运行状态为扫码状态,则获取与摄像头对应的图像帧数;
在一些实施例中,摄像头是一种视频输入设备。本公开实施例的摄像头用于终端扫码时获取扫码图像。本公开实施例的摄像头并不特指某一固定摄像头。例如,当摄像头的类型发生变化时,该摄像头也会相应变化。摄像头包括但不限于数字摄像头和模拟摄像头等。
根据一些实施例,摄像头的运行状态是用于指示摄像头所采集的图像。其中,摄像头的不同运行状态可以用于采集不同的图像。例如,摄像头的拍照状态用于拍摄图像,在拍照过程中并不需要对图像中进行识别以获取图像中包括的识别码。例如,当摄像头处于扫码状态时,摄像头并不需要拍摄图像,但是需要对采集到的图像进行识别,以便可以获取到图像中的识别码。
易于理解的是,扫码状态用于表示摄像头当前所处状态,摄像头适用于扫码,而非启动摄像头的其他功能。
可选的,图像帧数是指在一次扫码过程中,摄像头所采集的图像的帧数。该图像帧数并不特指某一固定帧数。例如,当摄像头的类型发生变化时,该图像帧数也可以相应变化。例如,当采集图像的时间点发生变化时,该图像帧数也可以相应变化。该图像帧数例如可以是终端出厂时设置的,还可以是基于用户的帧数设置指令进行设置的。
根据一些实施例,图像帧数是指终端控制摄像头所采集的扫码图像的有效帧数,即终端可以基于该图像帧数对应的扫码图像获取到该扫码图像对应的识别码信息。
在一些实施例中,当终端执行图像采集方法时,终端可以摄像头的运行状态。若终端确定摄像头的运行状态为扫码状态,则终端可以获取与摄像头对应的图像帧数。
S102,获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值;
在一些实施例中,曝光,是指在摄影过程中进入镜头照射在感光元件上的光量,由光圈、快门、感光度的组合来控制。曝光值(Exposure Value,EV)代表能够给出同样曝光的所有相机光圈快门组合。曝光初始值是指控制摄像头启动扫码功能时摄像头所对应的曝光值,即该曝光初始值用于表示摄像头初始处于扫码状态对应的曝光值。该曝光初始值并不特指某一固定初始值,该曝光初始值是与图像帧数对应的。例如,当图像帧数发生变化时,该曝光初始值也会相应变化。
根据一些实施例,收敛速度值用于控制相邻两帧图像之间的亮度差。其中收敛速度值越大,则相邻两帧图像之间的亮度差越大。收敛速度值越小,则相邻两帧图像之间的亮度差越小。其中,收敛速度值并不特指某一固定速度值,该收敛速度值是与图像帧数对应的。例如,当图像帧数发生变化时,该收敛速度值也会相应变化。
易于理解的是,当终端执行图像采集方法时,终端可以摄像头的运行状态。若终端确定摄像头的运行状态为扫码状态,则终端可以获取与摄像头对应的图像帧数。终端可以获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值。
S103,基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合。
根据一些实施例,集合是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。扫码图像是指图像中包括识别码的图像。该扫码图像并不特指某一图像。例如当图像中包括的识别码发生变化时,该扫码图像也会相应变化。该识别码包括但不限于二维码、条形码等。
在一些实施例中,扫码图像集合是针对某一识别码图像所采集的多帧扫码图像的集合。该扫码图像集合用于指示终端获取与扫码图像集合对应的识别码。即终端获取到该扫码图像集合时,可以对该扫码图像集合中包括的扫码图像进行识别获取到识别码。该识别码包括但不限于二维码、条形码等。
其中,该识别码图像为另一终端所展示的图像,并非本公开实施例的执行主体。该扫码图像集合并不特指某一固定图像集合。例如,当扫码图像集合中包括的图像帧数发生变化时,该扫码图像集合也会相应变化。例如,当扫码图像集合对应的识别码图像发生变化时,该扫码图像集合也会相应变化。
易于理解的是,当终端执行图像采集方法时,终端可以摄像头的运行状态。若终端确定摄像头的运行状态为扫码状态,则终端可以获取与摄像头对应的图像帧数。终端可以获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值。终端可以基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合。
在本公开一个或多个实施例中,若摄像头的运行状态为扫码状态,则获取与摄像头对应的图像帧数,可以获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值,基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,由于扫码图像集合用于指示终端获取与扫码图像集合对应的识别码,在扫码过程中,无需获取识别码在扫码图像中的位置信息,可以减少获取识别码位置信息的时长,可以提高扫码的效率,同时基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,可以减少获取到曝光图像无法识别到识别码的概率,可以提高图像采集的准确性,提高识别码识别成功的概率,进而可以提高用户的使用体验。
请参见图4,图4示出本公开实施例提供的一种图像采集方法的流程示意图。具体的:
S201,若摄像头的运行状态为扫码状态,则获取与摄像头对应的图像帧数;
具体过程如上所述,此处不再赘述。
在一些实施例中,本公开实施例可以应用于高动态场景。该高动态场景例如可以是二维码识别场景。图5示出本公开实施例提供的一种高动态场景中采集的扫码图像的举例示意图。如图5所示,高动态场景中二维码图像例如可以经历过暗图像到清晰图像,再到过曝图像的过程。由图5所示,在此次图像采集过程中,由于第6帧开始出现过曝,第一帧图像存在不清楚的情况,因此终端获取到图像帧数为4帧,即终端获取到有效帧数为4帧。
在一些实施例中,图6示出本公开实施例提供的一种终端界面的举例示意图。如图6所示,终端B例如可以展示二维码图像。本公开实施例的执行主体例如可以是终端A。二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形。终端A例如可以接收针对“扫码”功能所输入的点击指令。终端A确定摄像头的运行状态为扫码状态,终端A可以控制摄像头采集终端B所展示的二维码图像。
根据一些实施例,终端获取与摄像头对应的图像帧数时,终端可以获取摄像头对应的摄像头模组标识。在终端获取到摄像头对应的摄像头模组标识时,终端可以获取与摄像头模组标识对应的图像帧数。终端通过摄像头模组标识获取图像帧数,可以提高图像帧数和摄像头的匹配性,可以提高图像帧数获取的准确性,进而可以提高图像采集的准确性。
易于理解的是,摄像头模组标识用于唯一标识同一类型摄像头的标识。一个摄像头仅对应一个摄像头模组标识。一个摄像头模组标识对应一个图像帧数。同样标识的摄像头模组可以对应同样的图像帧数,即多个摄像头包括的摄像头模组标识一致时,多个摄像头对应的图像帧数是一样的。
可选的,Q摄像头模组标识对应的图像帧数例如可以是2帧,W摄像头模组标识对应的图像帧数例如可以是3帧,E摄像头模组标识对应的图像帧数例如可以是4帧。例如终端获取到摄像头对应的摄像头模组标识例如可以是W摄像头模组标识,终端获取到W摄像头模组标识对应的图像帧数例如可以是3帧,即终端获取到与摄像头对应的图像帧数例如可以是3帧。
根据一些实施例,终端获取与摄像头对应的图像帧数时,终端可以获取当前运行的应用程序。终端可以获取与应用程序对应的图像帧数,并将图像帧数确定为与摄像头对应的图像帧数。其中,不同的应用程序可以对应不同的图像帧数。例如由于不同的应用程序对图像识别的要求不同,因此不同的应用程序可以对应不同的图像帧数。由于不同的应用程序对应不同的图像帧数,终端基于当前运行的应用程序获取图像帧数,可以提高图像帧数获取的准确性,可以提高图像采集的准确性。
易于理解的是,R应用程序对应的图像帧数例如可以是2帧,T应用程序对应的图像帧数例如可以是3帧,Y应用程序对应的图像帧数例如可以是4帧。终端获取到的当前应用程序例如可以是T应用程序。终端获取到T应用程序对应的图像帧数例如可以是3帧,即终端可以获取到与摄像头对应的图像帧数为3帧。
根据一些实施例,终端获取与摄像头对应的图像帧数时,终端可以获取应用程序集合中各应用程序对应的图像帧数,获取到图像帧数集合。终端可以将图像帧数集合中最大图像帧数确定为与摄像头对应的图像帧数。终端直接将图像帧数集合中最大图像帧数确定为与摄像头对应的图像帧数,可以满足多个应用程序对图像帧数的要求,可以直接获取到图像帧数,减少图像帧数的获取时长,可以提高图像获取的便利性。
易于理解的是,应用程序集合包括至少一个应用程序。该应用程序集合并不特指某一应用程序集合。例如当应用程序集合中包括的应用程序的类型发生变化时,该应用程序集合也会相应变化。例如,当应用程序集合中包括的应用程序的数量发生变化时,该应用程序集合也会相应变化。
可选的,图像帧数集合是指包括各应用程序对应的图像帧数。该图像帧数集合并不特指某一固定帧数集合。例如,当应用程序集合中包括的应用程序的数量发生变化时,图像帧数集合中包括的图像帧数的数量也会相应变化,图像帧数集合也会相应变化。
在一些实施例中,终端获取各应用程序对应的图像帧数时,可以基于历史记录中各应用程序成功获取到扫码图像对应的识别码的图像帧数进行确定。
在一些实施例中,应用程序集合例如可以包括R应用程序、T应用程序和Y应用程序,其中R应用程序对应的图像帧数例如可以是2帧,T应用程序对应的图像帧数例如可以是3帧,Y应用程序对应的图像帧数例如可以是4帧。终端获取到的图像帧数集合例如可以包括2帧、3帧和4帧。终端可以获取到图像帧数集合中最大图像帧数例如可以是4帧,终端可以将4帧确定为与摄像头对应的图像帧数。
S202,获取曝光初始值集合和收敛速度值集合;
在一些实施例中,曝光初始值集合是指图像帧数和曝光初始值之间的对应关系的集合。该曝光初始值集合中包括各图像帧数和各图像帧数对应的曝光初始值。该曝光初始值集合并不特指某一固定对应关系。例如当终端获取到针对曝光初始值集合的修改指令时,终端可以基于该修改指令修改曝光初始值集合。其中,不同的图像帧数可以对应不同的曝光初始值。终端例如可以是预先获取图像帧数和该图像帧数对应的曝光初始值,并对该图像帧数和该图像帧数对应的曝光初始值进行关联存储。
根据一些实施例,收敛速度值集合是指图像帧数和收敛速度值之间的对应关系的集合。该收敛速度值集合中包括各图像帧数和各图像帧数对应的收敛速度值。该收敛速度值集合并不特指某一固定对应关系。例如当终端获取到针对收敛速度值集合的修改指令时,终端可以基于该修改指令修改收敛速度值集合。其中,不同的图像帧数可以对应不同的收敛速度值。终端例如可以是预先获取图像帧数和该图像帧数对应的收敛速度值,并对该图像帧数和该图像帧数对应的收敛速度值进行关联存储。图7示出本公开实施例提供的一种收敛速度值集合的举例示意图。如图7所示,图像帧数为8帧时,图像帧数对应的收敛速度值例如可以是0.6。
易于理解的是,当终端获取到摄像头对应的图像帧数时,终端可以获取曝光初始值集合和收敛速度值集合。
S203,基于曝光初始值集合获取与图像帧数对应的曝光初始值,基于收敛速度值集合获取与图像帧数对应的收敛速度值;
在一些实施例中,当终端获取到图像帧数和曝光初始值之间的曝光初始值集合以及图像帧数和收敛速度值之间的收敛速度值集合时,由于曝光初始值集合中包括各图像帧数和各图像帧数对应的曝光初始值,以及收敛速度值集合中包括各图像帧数和各图像帧数对应的收敛速度值,因此终端可以基于曝光初始值集合获取与图像帧数对应的曝光初始值,并基于收敛速度值集合获取与图像帧数对应的收敛速度值。
易于理解的是,由于曝光初始值确定终端控制摄像头所采集第一帧图像的清晰度,收敛速度值决定了终端控制摄像头所采集扫码图像的有效帧数,因此,终端基于曝光初始值集合获取与图像帧数对应的曝光初始值和基于收敛速度值集合获取与图像帧数对应的收敛速度值,可以提高扫码图像获取的准确性。
可选的,终端基于曝光初始值集合获取到的与图像帧数对应的曝光初始值时,终端例如还可以直接基于摄像头所采集第一帧图像的清晰度确定曝光初始值。该曝光初始值并不特指某一固定初始值,例如当第一帧图像的清晰度发生变化时该曝光初始值也可以相应变化。
易于理解的是,当终端确定曝光初始值之后,终端可以通过实验数据获取图像帧数和收敛速度值之间的收敛速度值集合。终端获取各应用程序扫码成功时的图像帧数,终端获取到该图像帧数对应的收敛速度值例如可以是0.65。
S204,基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合。
具体过程如上所述,此处不再赘述。
根据一些实施例,终端基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合时,终端可以基于曝光初始值和收敛速度值,计算与摄像头对应的曝光参数。终端基于曝光参数,可以控制摄像头采集与图像帧数对应的扫码图像集合。基于在获取扫码图像过程中终端可以不断对曝光参数进行调节,即可以控制摄像头采集不同的扫码图像,因此可以提高扫码图像获取的准确性。
根据一些实施例,终端控制摄像头采集与图像帧数的扫码图像集合时,可以控制摄像头采集第一扫码图像。当终端获取到该第一扫码图像时,可以检测该第一扫码图像是否满足图像条件。若第一扫码图像满足图像条件,则终端可以控制摄像头采集预设帧数的第二扫码图像。其中,预设帧数比图像帧数小一帧。若获取到预设帧数的第二扫码图像,则终端可以将第一扫码图像和预设帧数的第二扫码图像添加至扫码图像集合。终端从符合图像条件的第一扫码图像开始获取预设帧数的第二扫码图像,减少获取到无法识别的扫码图像的概率,可以提高扫码图像获取的准确性。
在一些实施例中,第一扫码图像是指终端控制摄像头采集的某一帧满足图像条件的图像。该第一扫码图像对应的帧数为一帧。该第二扫码图像对应的帧数为一帧。该第一扫码图像可以是摄像头的运行状态为扫码状态时,终端控制摄像头所采集的第一帧扫码图像,也可以是第二帧扫码图像。若终端控制摄像头所采集的第一帧扫码图像满足图像条件,则第一扫码图像可以第一帧扫码图像。拖终端控制摄像头所采集的第二帧扫码图像满足图像条件,则第一扫码图像可以第二帧扫码图像。
易于理解的是,图像条件是指用于判断扫码图像是否满足图像识别要求的条件。该图像条件并不特指某一固定条件。该图像条件包括但不限于清晰度条件、亮度条件等等。
可选的,预设帧数是指第二扫码图像对应的帧数。该预设帧数是比图像帧数小一帧的帧数。该预设帧数并不特指某一固定帧数。例如当图像帧数发生变化时,该预设帧数也相应变化。
易于理解的是,图像帧数例如可以是6帧。预设帧数例如可以是5帧。当终端确定摄像头的运行状态为扫码状态时,终端控制摄像头所采集的第一帧扫码图像满足图像条件时,终端可以继续采集5帧图像,并将第一帧扫码图像和5帧图像添加至扫码图像集合。
在一些实施例中,图8示出本公开实施例提供的一种扫码图像的举例示意图。如图8所示,终端未采用本公开实施例提供的方法所采集的图像例如可以是处于曝光状态的图像,终端无法基于该图像获取到图像对应的识别码。图9示出本公开实施例提供的一种扫码图像的举例示意图。如图9所示,终端采用本公开实施例提供的方法所采集的图像例如可以是未处于曝光状态的图像,终端可以基于该图像获取到图像对应的识别码。
可选的,终端获取到扫码图像集合时,终端可以基于该扫码图像集合获取到与该扫码图像集合对应的识别码,可以提高识别码获取的准确性,提高识别码获取的便利性,提高用户的使用体验。
在本公开一个或多个实施例中,若摄像头的运行状态为扫码状态,则获取与摄像头对应的图像帧数,对摄像头运行状态的确定可以提高图像帧数获取的准确性,提高扫码图像集合获取的准确性。其次,获取曝光初始值集合和收敛速度值集合,可以基于曝光初始值集合获取与图像帧数对应的曝光初始值,基于收敛速度值集合获取与图像帧数对应的收敛速度值,可以提高曝光初始值和收敛速度值获取的准确性,提高扫码图像集合获取的准确性。最后,基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,可以减少获取到曝光图像无法识别到识别码的概率,可以提高图像采集的准确性,提高识别码识别成功的概率,进而可以提高用户的使用体验。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
请参见图10,其示出了本公开一个示例性实施例提供的第一种图像采集装置的结构示意图。该图像采集装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该图像采集装置1000包括帧数获取单元1001、速度值获取单元1002和图像采集单元1003,其中:
帧数获取单元1001,用于若摄像头的运行状态为扫码状态,则获取与摄像头对应的图像帧数;
速度值获取单元1002,用于获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值;
图像采集单元1003,用于基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合;扫码图像集合用于指示终端获取与扫码图像集合对应的识别码。
根据一些实施例,图11示出本公开实施例提供的一种图像采集装置的结构示意图。如图11所示,帧数获取单元1001包括标识获取子单元1011和帧数获取子单元1021,帧数获取单元1001,用于获取与摄像头对应的图像帧数时:
标识获取子单元1011,用于获取摄像头对应的摄像头模组标识;
帧数获取子单元1021,用于获取与摄像头模组标识对应的图像帧数。
根据一些实施例,图12示出本公开实施例提供的一种图像采集装置的结构示意图。如图12所示,帧数获取单元1001包括程序获取子单元1031和帧数获取子单元1021,帧数获取单元1001,用于获取与摄像头对应的图像帧数时:
程序获取子单元1031,用于获取当前运行的应用程序;
帧数获取子单元1021,用于获取与应用程序对应的图像帧数,并将图像帧数确定为与摄像头对应的图像帧数。
根据一些实施例,帧数获取单元1001,用于获取与摄像头对应的图像帧数时,具体用于:
获取应用程序集合中各应用程序对应的图像帧数,获取到图像帧数集合;
将图像帧数集合中最大图像帧数确定为与摄像头对应的图像帧数。
根据一些实施例,速度值获取单元1002,用于获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值时,具体用于:
获取曝光初始值集合和收敛速度值集合,曝光初始值集合包括各图像帧数和各图像帧数对应的曝光初始值,收敛速度值集合包括各图像帧数和各图像帧数对应的收敛速度值;
基于曝光初始值集合和收敛速度值集合,获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值。
根据一些实施例,图像采集单元1003,用于基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合时,具体用于:
基于曝光初始值和收敛速度值,计算与摄像头对应的曝光参数;
基于曝光参数,控制摄像头采集与图像帧数对应的扫码图像集合。
根据一些实施例,图像采集单元1003,用于控制摄像头采集与图像帧数的扫码图像集合时,具体用于:
控制摄像头采集第一扫码图像;
若第一扫码图像满足图像条件,则控制摄像头采集预设帧数的第二扫码图像,其中,预设帧数比图像帧数小一帧;
若获取到预设帧数的第二扫码图像,则将第一扫码图像和预设帧数的第二扫码图像添加至扫码图像集合。
需要说明的是,上述实施例提供的图像采集装置在执行图像采集方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图像采集装置与图像采集方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
在本公开一个或多个实施例中,若摄像头的运行状态为扫码状态,则帧数获取单元可以获取与摄像头对应的图像帧数,速度值获取单元可以获取与图像帧数对应的曝光初始值和与图像帧数对应的收敛速度值,图像采集单元可以基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,由于扫码图像集合用于指示终端获取与扫码图像集合对应的识别码,在扫码过程中,无需获取识别码在扫码图像中的位置信息,可以减少获取识别码位置信息的时长,可以提高扫码的效率,同时基于曝光初始值和收敛速度值,控制摄像头采集与图像帧数对应的扫码图像集合,可以减少获取到曝光图像无法识别到识别码的概率,可以提高图像采集的准确性,提高识别码识别成功的概率,进而可以提高用户的使用体验。
本公开实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图3-图9所示实施例的所述图像采集方法,具体执行过程可以参见图3-图9所示实施例的具体说明,在此不进行赘述。
本公开还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图3-图9所示实施例的所述图像采集方法,具体执行过程可以参见图3-图9所示实施例的具体说明,在此不进行赘述。
请参考图13,其示出了本公开一个示例性实施例提供的终端的结构方框图。本公开中的终端可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。所述处理器加载并执行如上述图3-图9所示实施例的所述图像采集方法,具体执行过程可以参见图3-图9所示实施例的具体说明,在此不进行赘述。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统,包括基于Android系统深度开发的系统、苹果公司开发的IOS系统,包括基于IOS系统深度开发的系统或其它系统。存储数据区还可以存储终端在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。
参见图14所示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
以操作系统为Android系统为例,存储器120中存储的程序和数据如图15所示,存储器120中可存储有Linux内核层320、系统运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、系统运行库层340和应用框架层360属于操作系统空间,应用层380属于用户空间。Linux内核层320为终端的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层340通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、图像采集程序等。
以操作系统为IOS系统为例,存储器120中存储的程序和数据如图16所示,IOS系统包括:核心操作系统层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、图像采集框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在终端上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图14所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本公开在此不再赘述。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本公开实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、无线保真(wirelessfidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本公开实施例中,各步骤的执行主体可以是上文介绍的终端。可选地,各步骤的执行主体为终端的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本公开实施例对此不作限定。
本公开实施例的终端,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquidcrystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用终端100上的显示设备,来查看显示的文字、图像、视频等信息。所述终端可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。
本领域的技术人员可以清楚地了解到本公开的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammaBLE GateArray,FPGA)、集成电路(Integrated Circuit,IC)等。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本公开所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
- 图像采集方法装置、采集设备及计算机存储介质
- 游戏单位材料采集控制方法、装置、存储介质及移动终端
- 基于人脸识别的图像处理方法、装置、存储介质及终端
- 图像白平衡处理方法、装置、存储介质及移动终端
- 处理图像的方法、装置、终端及存储介质
- 测序图像采集方法、采集装置、终端和可读存储介质
- 终端的图像采集方法及装置、存储介质、终端