图形码识别方法、装置、存储介质及终端与流程

文档序号:21781696发布日期:2020-08-07 20:09阅读:229来源:国知局
图形码识别方法、装置、存储介质及终端与流程

本申请涉及计算机技术领域,尤其涉及一种图形码识别方法、装置、存储介质及终端。



背景技术:

随着互联网技术的发展,图形码在人们生活中的应用越来越广泛。例如,人们可以使用终端(如,手机、平板电脑)扫描图形码发起收款、支付订单、乘坐公交和地铁等。

现有的扫描方法为:用户打开终端的扫描界面,屏幕显示扫描窗口,用户将扫描窗口对准二维码进行扫描,当终端成功识别二维码后,屏幕调转至二维码对应的显示界面,然后进行特定操作。但这种方式仅可以识别单个图形码,当扫描到多个图形码时,无法识别。



技术实现要素:

本申请实施例提供了一种图形码识别方法、装置、存储介质及终端,当图形码包括多个时,可以基于识别到的图形码的调用方式以及第一应用的应用标识直接或者间接的对图形码进行识别。所述技术方案如下:

第一方面,本申请实施例提供了一种图形码识别方法,所述方法包括:

在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像;

识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式;

基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。

第二方面,本申请实施例提供了一种图形码识别装置,所述装置包括:

图像拍摄模块,用于在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像;

调用方式识别模块,用于识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式;

图形码识别模块,用于基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。

第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第四方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

在本申请实施例中,在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像,识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式,并基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。当图形码包括多个时,可以基于识别到的图形码的调用方式以及第一应用的应用标识直接或者间接的对图形码进行识别。此外,当图形码只有一个时,即使第一应用与图形码不匹配,也可以基于该图形码的调用方式进行智能识别。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的终端的结构示意图;

图2是本申请实施例提供的操作系统和用户空间的结构示意图;

图3是图1中安卓操作系统的架构图;

图4是图1中ios操作系统的架构图;

图5是本申请实施例提供的一种图形码识别方法的流程示意图;

图6是本申请实施例提供的图形码的举例示意图;

图7是本申请实施例提供的一种图形码识别方法的流程示意图;

图8是本申请实施例提供的一种展示图形码调用方式的举例示意图;

图9是本申请实施例提供的另一种展示图形码调用方式的举例示意图;

图10是本申请实施例提供的一种通过相机应用扫描图形码的举例示意图;

图11是本申请实施例提供的一种图形码识别装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

请参考图1,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。

处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户页面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。

存储器120可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory,rom)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(android)系统,包括基于android系统深度开发的系统、苹果公司开发的ios系统,包括基于ios系统深度开发的系统或其它系统。存储数据区还可以存储终端在使用中所创建的数据比如电话本、音视频数据、聊天记录数据,等。

参见图2所示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对gpu性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。

为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。

以操作系统为android系统为例,存储器120中存储的程序和数据如图3所示,存储器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中还提供有安卓运行时库(androidruntime),它主要提供了一些核心库,能够允许开发者使用java语言来编写android应用。应用框架层360提供了构建应用程序时可能用到的各种api,开发者也可以通过使用这些api来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、文字翻译程序等。

以操作系统为ios系统为例,存储器120中存储的程序和数据如图4所示,ios系统包括:核心操作系统层420(coreoslayer)、核心服务层440(coreserviceslayer)、媒体层460(medialayer)、可触摸层480(cocoatouchlayer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(airplay)接口等。可触摸层480为应用程序开发提供了各种常用的页面相关的框架,可触摸层480负责用户在终端上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户页面接口(userinterface,ui)框架、用户页面uikit框架、地图框架等等。

在图4所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的uikit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和ui无关。而uikit框架提供的类是基础的ui类库,用于创建基于触摸的用户页面,ios应用程序可以基于uikit框架来提供ui,所以它提供了应用程序的基础架构,用于构建用户页面,绘图、处理和用户交互事件,响应手势等等。

其中,在ios系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考android系统,本申请在此不再赘述。

其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户页面。触摸显示屏通常设置在终端的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。

除此之外,本领域技术人员可以理解,上述附图所示出的终端的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、无线保真(wirelessfidelity,wifi)模块、电源、蓝牙模块等部件,在此不再赘述。

在本申请实施例中,各步骤的执行主体可以是上文介绍的终端。可选地,各步骤的执行主体为终端的操作系统。操作系统可以是安卓系统,也可以是ios系统,或者其它操作系统,本申请实施例对此不作限定。

本申请实施例的终端,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathoderaytubedisplay,简称cr)、发光二极管显示器(light-emittingdiodedisplay,简称led)、电子墨水屏、液晶显示屏(liquidcrystaldisplay,简称lcd)、等离子显示面板(plasmadisplaypanel,简称pdp)等。用户可以利用终端101上的显示设备,来查看显示的文字、图像、视频等信息。所述终端可以是智能手机、平板电脑、游戏设备、ar(augmentedreality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。

在图1所示的终端中,处理器110可以用于调用存储器120中存储的应用程序,并具体执行本申请实施例的图形码识别方法。

在本申请实施例中,在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像,识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式,并基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。当图形码包括多个时,可以基于识别到的图形码的调用方式以及第一应用的应用标识直接或者间接的对图形码进行识别。此外,当图形码只有一个时,即使第一应用与图形码不匹配,也可以基于该图形码的调用方式进行智能识别。

在一个实施例中,如图5所示,特提出了一种图形码识别方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的图形码识别装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。

具体的,该图形码识别方法包括:

s101,在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像;

第一应用可以为相机应用,也可以为任一具有扫描功能的非相机应用,如快捷支付应用。

在开启第一应用后,选择扫码功能,从而展示扫描界面。可以理解的是,当第一应用为相机应用时,在开启该相机应用后,摄像头自动开启。当第一应用为非相机应用时,在开启扫描界面时同步开启摄像头。当用户拿着终端对准图形码进行扫描时,摄像头采集图形码并进行拍摄,得到包含至少一个图形码的目标图像。

图形码可以是图片,比如即时通信应用程序中收到的图片,也可以是通过摄像头拍摄到的图像,比如启用应用程序的图形码扫描功能并通过摄像头对着图形码进行拍摄得到。所述图形码包括条形码、二维图形码。

其中,所述二维图形码为二维码,又称二维条码,是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。包括矩形二维码、圆形二维码或更多变形,如图6所示,从左到右依次为矩形二维码、圆形二维码。

常用的码制有:qr(quickresponse)code、datamatrix、maxicode、aztec、vericode、pdf417、ultracode、code49、code16k等。其中,最常见的二维码为qrcode,是一个近几年来移动设备上超流行的一种编码方式,相对传统的barcode条形码而言,能存更多的信息,也能表示更多的数据类型。

二维码可用在不同的领域,如网站跳转、广告推送、会员管理、账号登录以及数据转移等。

日常生活中,经常需要使用终端进行扫码,例如,通过扫描公众号二维码关注公众号,通过扫描点单二维码进行自主点单,通过扫描收款二维码进行支付等等。在某些扫码识别场景下,终端可能会同时采集到包含多个图形码的图像,比如,在扫码付款时,终端的摄像头视野范围较大时,扫描到多个二维码。

s102,识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式;

可以理解的是,图像识别可以图像的主要特征为基础进行识别。每个图像都有它的特征,如字母a有个尖,p有个圈、而y的中心有个锐角等。因此,对于图形码数量的识别,可以图形码的形状为特征进行匹配,从而确定目标图像中图形码数量为一个还是多个。

所述调用方式与调用该二维码的应用标识一一对应。例如调用方式为第一应用调用或第二应用调用。调用方式包含在二维码内容中,因此,需要先对二维码内容进行识别。

具体的,首先寻找探测图形,即二维码上的三个方块。这三个方块的作用就是不管在哪个方向扫描图形,都可以扫到。再通过二维码上的定位图形和分隔符确定二维码信息的图像。定位图形确定二维码符号中模块的坐标,二维码中的模块都是固定的,包括校正图形,版本信息,数据和纠错码。分隔符,就是将探测图形与二维码信息图像分开;然后灰度化二维码信息像素,也就是通过颜色的深浅来识别二维码,颜色深的按深灰处理,浅色的按浅灰处理,去掉其他颜色;再去掉二维码信息像素的噪点;接着二值化二维码信息像素,二值化是指将图像上像素灰度值设置为0或者255,也就是变成只有黑白两种颜色,将深灰变成黑色,浅灰变成白色,然后根据解析公式转化成二进制信息;最后将得到的二进制信息进行译码和纠错,是因为得到的二进制信息是版本格式信息、数据和纠错码经过一定的编码方式生成的,所以译码是对版本格式信息,数据和纠错码进行解码和对比。纠错和译码是同时进行的,将数据进行纠错。按照上述方式可识别所包含的各二维码的内容,其中包含调用方式。例如,包含两个二维码,其中一个二维码的调用方式为第一应用调用,另一个二维码的调用方式为第二应用调用。

s103,基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。

具体的,当所述图形码数量为多个时,若所述多个图形码分别对应的调用方式中存在与所述应用标识匹配的第一调用方式,则采用所述第一应用识别所述第一调用方式对应的第一图形码。例如,第一应用为a应用,扫描到的图形码包含两个,分别对应的调用方式为a应用调用和b应用调用,则此时采用a应用识别并进行响应(如支付)。

若所述多个图形码分别对应的调用方式中不存在与所述应用标识匹配的第一调用方式,例如第一应用为a应用,扫描到的图形码包含两个,分别对应的调用方式为b应用调用和c应用调用,可通过用户选择和系统自动选择的方式确定识别该目标图像的应用。

一种可行的方式为,输出所述多个图形码分别对应的调用方式,由用户选择第二调用方式,终端接收针对所述多个图形码分别对应的调用方式中第二调用方式的选择指令,开启所述第二调用方式对应的第二应用,采用所述第二应用识别所述第二调用方式对应的第二图形码。

例如,在显示界面上显示各二维码对应的调用方式,包括b应用调用和c应用调用,用户选择b应用调用,响应该选择指令,终端开启b应用识别该二维码并进行响应。

另一种可行的方式为,获取所述多个图形码对应的历史扫描频率,开启所述历史扫描频率中的最高扫描频率对应的第三应用,采用所述第三应用识别所述最高扫描频率对应的第三图形码。

例如,识别到目标图像中包括两个二维码,对应的调用方式包括b应用调用和c应用调用,读取b应用和c应用的历史扫描频率,若b应用的历史扫描频率高于c应用的历史扫描频率,则开启b应用识别该二维码并进行响应。

另一种可行的方式为,获取所述目标图像的第一中心点与各所述图形码的第二中心点之间的距离,开启所述距离中的最短距离对应的第四应用,采用所述第四应用识别所述最短距离对应的第四图形码。

可以理解的是,用户在扫描时,通常知道自己想要扫描多个二维码中的哪一个二维码,则会将摄像头对准想要扫描的二维码,因此,即使摄像头最终拍摄的目标图像中包括多个二维码,但用户想要扫描的二维码更偏向图像中心点,因此,距离目标图像的中心点最近的二维码为当前待识别的二维码,开启该二维码对应的应用进行识别并响应即可。

当所述图形码数量为一个时,若所述调用方式与所述第一应用的应用标识相匹配,则采用所述第一应用识别所述图形码。若所述调用方式与所述第一应用的应用标识不匹配(例如第一应用为相机应用,二维码的调用方式为支付应用调用),则开启所述调用方式对应的第二应用(支付应用);采用所述第二应用识别所述图形码。

在本申请实施例中,在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像,识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式,并基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。当图形码包括多个时,可以基于识别到的图形码的调用方式以及第一应用的应用标识直接或者间接的对图形码进行识别。不用对准单个图形码扫描,可以自动从多个图形码中搜索到与所开启的应用相匹配的二维码进行智能识别,也可避免按照从上到下或从左到右的固定顺序读取二维码而导致的识别错误;此外,当图形码只有一个时,即使第一应用与图形码不匹配,也可以基于该图形码的调用方式进行智能识别。

请参见图7,图7是本申请提出的一种图形码识别方法的另一种实施例的流程示意图。具体的:

s201,在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像;

第一应用可以为相机应用,也可以为任一具有扫描功能的非相机应用,如快捷支付应用。

当第一应用为相机应用时,开启相机应用,默认开启拍照界面,在该界面上设置有扫码、识物、翻译等功能,在用户选择扫码功能后,展示扫描界面。

当第一应用为具有扫描功能的非相机应用时,开启该第一应用,并选择扫码功能,展示扫描界面。

具体的,开启第一应用的扫描界面后,用户控制摄像头对准至少一个图形码进行拍摄,在扫描界面上同步展示所拍摄的目标图像。

可以理解的是,当存在多个图形码,而多个图形码距离较近,或者终端的摄像头视野范围较大时,可以扫描到多个二维码。

所述图形码可用在不同的领域,如网站跳转、广告推送、会员管理、账号登录以及数据转移等。可以为条形码或二维码,在本申请实施例中,以图形码为二维码为例进行描述。

s202,识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式;

具体可参见s102,此处不再赘述。

s203,当所述图形码数量为多个时,若所述多个图形码分别对应的调用方式中存在与所述第一应用的应用标识匹配的第一调用方式,则采用所述第一应用识别所述第一调用方式对应的第一图形码。

当所述图形码数量为多个时,确定每个图形码对应的调用方式,如图8所示,左边二维码的调用方式为a应用调用,右边二维码的调用方式为b应用调用。

若第一应用为a应用,则采用a应用识别左边二维码并进行响应,或若第一应用为b应用,则采用b应用识别右边二维码并进行响应。

需要说明的是,此处的识别为读取二维码信息的过程,以a应用为支付应用为例,在坐标二维码中包含收款方信息,采用a应用读取收款方信息并进行支付。

s204,当所述图形码数量为多个时,若所述多个图形码分别对应的调用方式中不存在与所述第一应用的应用标识匹配的第一调用方式,则输出所述多个图形码分别对应的调用方式;

若第一应用为c应用(如相机应用或不同于a应用和b应用的非相机应用)既不是a应用,也不是b应用,则在显示界面上分别显示每个二维码的调用方式,以方便用户选择。

其中,显示每个二维码的调用方式的形式可以为,在每个二维码相应位置处分别显示,如图8所示;或者在显示界面中的同一显示区域集中显示,如图9所示。

s205,接收针对所述多个图形码分别对应的调用方式中第二调用方式的选择指令,开启所述第二调用方式对应的第二应用;

用户可选择所显示的调用方式,或者选择二维码,响应于该选择指令,终端开启所选择的调用方式或二维码对应的第二应用。

例如,用户选择a应用调用,则开启a应用的扫码界面。

s206,采用所述第二应用识别所述多个图形码中所述第二调用方式对应的第二图形码。

在开启a应用的扫码界面后,自动对选择的二维码或者a应用调用方式对应的二维码进行扫描识别,读取该二维码信息并执行相关的任务。

可选的,若所述多个图形码分别对应的调用方式中不存在与所述应用标识匹配的第一调用方式,获取所述多个图形码对应的历史扫描频率;

开启所述历史扫描频率中的最高扫描频率对应的第三应用;

采用所述第三应用识别所述最高扫描频率对应的第三图形码。

可选的,若所述多个图形码分别对应的调用方式中不存在与所述第一应用的应用标识匹配的第一调用方式,获取所述目标图像的第一中心点与各所述图形码的第二中心点之间的距离;

开启所述距离中的最短距离对应的第四应用;

采用所述第四应用识别所述最短距离对应的第四图形码。

s207,当所述图形码数量为一个时,若所述调用方式与所述应用标识不匹配,则开启所述调用方式对应的第二应用;

当所述图形码数量为一个时,若所述调用方式与所述第一应用的应用标识不匹配,表明所开启的第一应用不是该图形码对应的应用。

例如所开启的第一应用为相机应用,如图10所示,该二维码通过相机的扫码功能拍摄得到,那么需要开启该二维码对应的第二应用的扫描界面。

当然,当图形码只包括一个,且调用方式与所述第一应用的应用标识相匹配,表明所开启的第一应用正好为该图形码对应的应用,直接读取图形码信息进行响应即可。

s208,采用所述第二应用识别所述图形码。

通过第二应用读取该图形码的信息并进行响应,执行相关的任务,从而实现扫码功能。

在本申请实施例中,当图形码包括多个时,若所开启的第一应用与这多个图形码中的某个图形码匹配,则可以直接对该图形码进行识别;若所开启的第一应用与这多个图形码中所有图形码均不匹配,则可通过输出提示的方式供用户选择相应的调用方式以进行识别或者基于历史扫描频率亦或基于距离拍摄的目标图像中心点距离大小智能识别二维码。不用对准单个图形码扫描,可以自动从多个图形码中搜索到与所开启的应用相匹配的二维码进行智能识别,也可避免按照从上到下或从左到右的固定顺序读取二维码而导致的识别错误;此外,当图形码只有一个时,即使第一应用与图形码不匹配,也可以基于该图形码的调用方式进行智能识别。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参见图11,其示出了本申请一个示例性实施例提供的图形码识别装置的结构示意图。该图形码识别装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括图像拍摄模块11、调用方式识别模块12和图形码识别模块13。

图像拍摄模块11,用于在第一应用的扫描界面,获取摄像头针对至少一个图形码拍摄的目标图像;

调用方式识别模块12,用于识别所述目标图像中包含的图形码数量以及各所述图形码对应的调用方式;

图形码识别模块13,用于基于所述图形码数量、各所述图形码对应的调用方式以及所述第一应用的应用标识,对所述至少一个图形码进行识别。

可选的,当所述图形码数量为多个时,所述图形码识别模块13,具体用于:

若所述多个图形码分别对应的调用方式中存在与所述第一应用的应用标识匹配的第一调用方式,则采用所述第一应用识别所述第一调用方式对应的第一图形码。

可选的,当所述图形码数量为多个时,所述图形码识别模块13,具体用于:

若所述多个图形码分别对应的调用方式中不存在与所述第一应用的应用标识匹配的第一调用方式,则输出所述多个图形码分别对应的调用方式;

接收针对所述多个图形码分别对应的调用方式中第二调用方式的选择指令,开启所述第二调用方式对应的第二应用;

采用所述第二应用识别所述多个图形码中所述第二调用方式对应的第二图形码。

可选的,当所述图形码数量为多个时,所述图形码识别模块13,具体用于:

若所述多个图形码分别对应的调用方式中不存在与所述第一应用的应用标识匹配的第一调用方式,获取所述多个图形码对应的历史扫描频率;

开启所述历史扫描频率中的最高扫描频率对应的第三应用;

采用所述第三应用识别所述最高扫描频率对应的第三图形码。

可选的,当所述图形码数量为多个时,所述图形码识别模块13,具体用于:

若所述多个图形码分别对应的调用方式中不存在与所述第一应用的应用标识匹配的第一调用方式,获取所述目标图像的第一中心点与各所述图形码的第二中心点之间的距离;

开启所述距离中的最短距离对应的第四应用;

采用所述第四应用识别所述最短距离对应的第四图形码。

可选的,当所述图形码数量为一个时,所述图形码识别模块13,具体用于:

若所述调用方式与所述第一应用的应用标识不匹配,则开启所述调用方式对应的第二应用;

采用所述第二应用识别所述图形码。

需要说明的是,上述实施例提供的图形码识别装置在执行图形码识别方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的图形码识别装置与图形码识别方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请实施例中,当图形码包括多个时,若所开启的第一应用与这多个图形码中的某个图形码匹配,则可以直接对该图形码进行识别;若所开启的第一应用与这多个图形码中所有图形码均不匹配,则可通过输出提示的方式供用户选择相应的调用方式以进行识别或者基于历史扫描频率亦或基于距离拍摄的目标图像中心点距离大小智能识别二维码。不用对准单个图形码扫描,可以自动从多个图形码中搜索到与所开启的应用相匹配的二维码进行智能识别,也可避免按照从上到下或从左到右的固定顺序读取二维码而导致的识别错误;此外,当图形码只有一个时,即使第一应用与图形码不匹配,也可以基于该图形码的调用方式进行智能识别。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图10所示实施例的方法步骤,具体执行过程可以参见图1-图10所示实施例的具体说明,在此不进行赘述。

本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图10所示实施例的方法步骤,具体执行过程可以参见图1-图10所示实施例的具体说明,在此不进行赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1