具体实施方式
目前,在实践中,用户当需要使用自己的移动设备扫描业务场景中的条码时,会触发移动设备调用镜头进行条码扫描,得到扫描图像。
需要说明的是,本文所述的扫描图像,是指通过镜头对条码进行扫描后得到的图像。一般而言,对条码进行扫描时,镜头的取景范围不仅包括条码本身,还包括条码周围的环境。因此,扫描图像并不是条码图像,而是显示有条码的图像,条码图像只是扫描图像的一部分。在扫描图像中,通常不仅显示有条码,还显示有条码周边的环境。
还需要说明的是,用户的移动设备如果只装配有一个镜头,那么该镜头一般是标准焦距镜头;用户的移动设备如果装配有不止一个镜头,那么移动设备当需要进行条码扫描时,一般也会默认打开标准焦距镜头(相当于主镜头)。
然而,在有的业务场景下,用户的移动设备与待解析的条码之间的距离较远,导致移动设备针对条码扫描所获得的扫描图像中显示的条码的尺寸过小,难以识别。即便对扫描图像中显示条码进行放大处理,放大处理得到的条码图片也会包含过多的噪点信息,无法解析。
而在本说明书实施例中,为移动设备增加长焦距镜头,由于长焦距镜头的焦距大于标准焦距镜头的焦距,因此,移动设备可以通过长焦距镜头实现对远处物体的清晰拍摄,使得针对远处的条码进行扫描得到的扫描图像中显示的条码的尺寸足够大。移动设备当需要针对业务场景中的条码进行扫描时,需要判断当前待解析的条码与自身之间的距离是否过远,如果过远,就选择调用长焦距镜头进行扫描。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1是本说明书实施例提供的一种条码解析方法的流程示意图,包括以下步骤:
S100:当需要进行条码解析时,判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离,若判断结果为是,则执行步骤S102,若判断结果为否,则执行步骤S104。
本方法的执行主体是移动设备,具体是安装于移动设备的条码解析程序。
本说明书实施例中的移动设备不仅装配有标准焦距镜头,也装配有长焦距镜头。其中,标准焦距镜头的焦距小于长焦距镜头的焦距。
此外,移动设备上还可以装配其他镜头,如广角镜头、黑白镜头等,这并不是本方案讨论的重点,对此不作具体限制。
在本说明书实施例中,移动设备的用户可以向移动设备发出条码解析指令,以触发移动设备执行图1所示的方法流程。例如,用户可以启动移动设备上安装的支付应用程序,点击支付应用程序界面中的“扫一扫”按钮,即向移动设备发出条码解析指令。
应当理解,用户在向移动设备发出条码解析指令的同时,也会将移动设备的镜头的拍摄方向(一般而言,移动设备的各镜头是拍摄方向都是一致的)调整为朝向业务场景中展示的条码,以便移动设备通过镜头针对业务场景中的条码进行扫描。
在本说明书实施例中,移动设备在接收到条码解析指令之后,可以暂不调用任一镜头进行扫描,而是先判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离,并根据判断结果来选择合适的镜头进行条码扫描。
其中,预设距离可以根据需要指定,距离大于预设距离,说明业务场景中的条码的位置距离移动设备的位置较远,使用标准焦距镜头进行扫描得到的扫描图像中条码的尺寸过小,难以解析出相应的条码信息;距离不大于预设距离,说明业务场景中的条码的位置距离移动设备的位置不算远,使用标准焦距镜头进行扫描得到的扫描图像中条码的尺寸足够大,能够解析出相应的条码信息。
在本说明书实施例中,判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离的方式可以有多种。
例如,可以基于三角定位原理,通过所述移动设备上的任意两个镜头(具体可以是标准焦距镜头与长焦距镜头)对业务场景中展示的条码进行三角定位,可以确定出所述条码与所述移动设备之间的距离,据此可以判断所述条码与所述移动设备之间的距离是否大于预设距离。
S102:通过所述长焦距镜头对所述条码进行扫描,并根据得到的长焦距扫描图像进行条码解析。
众所周知,针对与镜头相距固定距离的目标物而言,镜头的焦距越长,在成像时就可将目标物拉得越近,也即得到的图像中显示的目标物的尺寸越大。
在本说明书实施例中,利用长焦距镜头适合拍摄远处物体的优势,如果业务场景中展示的条码与所述移动设备之间的距离大于预设距离,则调用长焦距镜头对所述条码进行扫描,如此得到的扫描图像中显示的条码的尺寸足够大,不会出现无法解析的情况。
S104:通过所述标准焦距镜头对所述条码进行扫描,并根据得到的标准焦距扫描图像进行条码解析。
通过图1所示的方法,移动设备可以自动判断业务场景中展示的条码是否距离移动设备较远,如果是,则移动设备可以自动选择通过长焦距镜头(而不是标准焦距镜头)进行条码扫描,从而可以提升单次条码解析的成功率。
此外需要说明的是,在现有技术中,装配有不止一个镜头的移动设备当需要进行条码解析时,会默认调用主镜头(往往是标准焦距镜头)进行条码扫描,如此,倘若当前业务场景中展示的条码距离移动设备较远,则会出现移动设备解析条码失败的情况,用户不得不手动将移动设备的主镜头切换成长焦距镜头再次进行条码扫描,这导致不好的用户体验。
而在本说明书实施例中,移动设备会自动判断自身与待扫描的条码之间的距离远近,并根据判断结果确定调用标准焦距镜头还是调用长焦距镜头,此判断过程对用户而言是无感知的。在用户看来,不论待扫描的条码距离远近,都可以使用移动设备一次解析成功。
图2是本说明书实施例提供的另一种条码解析方法的流程示意图,包括以下步骤:
S200:当需要进行条码解析时,通过所述标准焦距镜头对业务场景中展示的条码进行扫描,并根据得到的标准焦距扫描图像进行条码解析。
在本说明书实施例中,移动设备在接收到条码解析指令之后,可以首先调用标准焦距镜头尝试进行条码扫描,并进行条码解析。如果根据得到的标准焦距扫描图像进行条码解析成功,则无需执行后续流程。
S202:若确定无法根据标准焦距扫描图像进行条码解析,则判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离,若判断结果为是,则执行步骤S204,若判断结果为否,则执行步骤S206。
在本说明书实施例中,如果根据得到的标准焦距扫描图像进行条码解析失败,可以确定无法根据得到的标准焦距扫描图像进行条码。
此外,也可以通过如下方式判断是否无法根据标准焦距扫描图像进行条码解析:
若根据得到的标准焦距扫描图像进行条码解析失败,则判断得到的标准焦距扫描图像中显示的条码是否位于得到的标准焦距扫描图像的解析区域内;
若得到的标准焦距扫描图像中显示的条码位于得到的标准焦距扫描图像的解析区域内,则确定无法根据得到的标准焦距扫描图像进行条码解析;
若得到的标准焦距扫描图像中显示的条码不位于得到的标准焦距扫描图像的解析区域内,则重新得到标准焦距扫描图像,以使重新得到的标准焦距扫描图像中显示的条码位于重新得到的标准焦距扫描图像的解析区域内;并且,根据重新得到的标准焦距扫描图像进行条码解析;
若根据重新得到的标准焦距扫描图像进行条码解析成功,则确定可根据得到的标准焦距扫描图像进行条码解析;
若根据重新得到的标准焦距扫描图像进行条码解析失败,则确定无法根据得到的标准焦距扫描图像进行条码解析。
在实践中,根据得到的标准焦距扫描图像进行条码解析失败的原因不一定是待解析的条码距离过远,也可能是用户未将移动设备的镜头的拍摄方向对准待解析的条码,导致待解析的条码未落入镜头取景范围的中央区域。镜头取景范围的中央区域对应于扫描图像的解析区域,条码解析程序一般会默认扫描图像的解析区域内显示有条码,仅会针对解析区域内的图像进行条码解析。如果用户未将移动设备的镜头的拍摄方向对准待解析的条码,同样会导致条码解析失败。
为此,在本说明书实施例中,如果移动设备根据通过标准焦距镜头扫描得到的扫描图像进行条码解析失败,则需要首先排除用户未将移动设备的镜头的拍摄方向对准条码的原因。
如果扫描图像中显示的条码位于解析区域内,则排除该原因,认定确实无法根据得到的标准焦距扫描图像进行条码解析。
如果扫描图像中显示的条码不位于解析区域内,则需要重新得到标准焦距扫描图像,使得重新得到的标准焦距扫描图像中显示的条码位于解析区域内。具体而言,条码解析程序可以提示用户调整镜头的拍摄方向,使镜头的拍摄方向尽可能对准业务场景中展示的条码,然后重新对条码进行扫描;条码解析程序也可以将位于解析区域外的条码图像裁剪到解析区域内,重新得到标准焦距扫描图像。
如果根据重新得到的标准焦距扫描图像进行条码解析失败,则可以确定无法根据得到的标准焦距扫描图像进行条码解析。如此,需要进一步判断原因是否为待解析的条码距离过远。
具体而言,可以计算所述标准焦距扫描图像中显示的条码的尺寸大小与所述标准焦距扫码图像的尺寸大小的比值;然后判断计算得到的比值是否小于预设比值。其中,计算得到的比值越小,表征业务场景中显示的条码与所述移动设备之间的距离越大。
S204:通过所述长焦距镜头对所述条码进行扫描,并根据得到的长焦距扫描图像进行条码解析。
S206:确定条码解析失败。
如果利用标准焦距镜头无法进行条码解析,并且待解析的条码与移动设备之间的距离也不大于预设距离,则可能由于其他未知原因(如设备故障、条码被损坏等)导致条码解析失败,对于用户而言,条码解析失败。
图3是本说明书实施例提供的一种条码解析装置的结构示意图,所述装置装配有标准焦距镜头与长焦距镜头,所述长焦距镜头的焦距大于所述标准焦距镜头的焦距,所述装置包括:
判断模块301,当需要进行条码解析时,判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离;
第一处理模块302,若判断结果为是,则通过所述长焦距镜头对所述条码进行扫描,并根据得到的长焦距扫描图像进行条码解析。
所述装置还包括:第二处理模块303,若判断结果为否,则通过所述标准焦距镜头对所述条码进行扫描,并根据得到的标准焦距扫描图像进行条码解析。
所述装置还包括:第三处理模块304,在接收到条码解析指令之后、在判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离之前,通过所述标准焦距镜头对业务场景中展示的条码进行扫描,并根据得到的标准焦距扫描图像进行条码解析;
所述判断模块301,判断是否无法根据标准焦距扫描图像进行条码解析;若确定无法根据得到的标准焦距扫描图像进行条码解析,则判断业务场景中展示的条码与所述移动设备之间的距离是否大于预设距离。
所述判断模块301,若根据得到的标准焦距扫描图像进行条码解析失败,则判断得到的标准焦距扫描图像中显示的条码是否位于得到的标准焦距扫描图像的解析区域内;若得到的标准焦距扫描图像中显示的条码位于得到的标准焦距扫描图像的解析区域内,则确定无法根据得到的标准焦距扫描图像进行条码解析;若得到的标准焦距扫描图像中显示的条码不位于得到的标准焦距扫描图像的解析区域内,则重新得到标准焦距扫描图像,以使重新得到的标准焦距扫描图像中显示的条码位于重新得到的标准焦距扫描图像的解析区域内;并且,根据重新得到的标准焦距扫描图像进行条码解析;若根据重新得到的标准焦距扫描图像进行条码解析成功,则确定可根据得到的标准焦距扫描图像进行条码解析;若根据重新得到的标准焦距扫描图像进行条码解析失败,则确定无法根据得到的标准焦距扫描图像进行条码解析。
所述判断模块301,计算所述标准焦距扫描图像中显示的条码的尺寸大小与所述标准焦距扫码图像的尺寸大小的比值;判断计算得到的比值是否小于预设比值;其中,计算得到的比值越小,表征业务场景中显示的条码与所述移动设备之间的距离越大。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图1或2所示的方法。
图4示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图1或图2所示的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务设备,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。