具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
首先对本申请实施例涉及的概念,例如平直性进行解释。
(1)平直性
在本申请实施例中,平直性指,二维码的边缘线段、以及二维码中黑色像素块与白色像素块的边缘线段经过电子设备扫描处理后,仍然是直线。且,二维码中黑色像素块与白色像素块的多条边缘线段的相对位置保持不变。
(2)边缘线段
本申请实施例中二维码的边缘线段,以及二维码中黑色像素块与白色像素块的边缘线段均称为边缘线段。如图1B所示,线段10a和线段10c均为二维码的边缘线段。线段10b为黑色像素块与白色像素块的边缘线段。
(3)位置信息
本申请实施例中,二维码图像中每个格子的位置信息是指,每个格子的四个顶点在二维码图像中的位置。可以理解的是,二维码图像由n*m个格子构成。在本申请实施例中,n和m可以相等。在本申请实施例中,一个像素块就是二维码图像n*m格子中的一个格子。一个像素块可以包括一个黑色像素块或者一个白色像素块。
二维码常用的码制有:快速反应(quick response,QR)码、数据矩阵(datamatrix,DM)、阿兹特克(AZTEC)等。每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能及处理图形旋转变化等特点。二维码可以按照不同的码制分成多种类型的二维码,例如QR码、DM码、AZTEC码等等。下面以QR码为例,介绍二维码的识别过程。
1、QR码构成
图2示例性地示出了的QR码的结构示意图。如图2所示,QR码由位置探测图像201、位置探测图像202、位置探测图像203、格式信息204、格式信息205、格式信息206、版本信息207、版本信息208、定位图形209、定位图形210、校正图形211、校正图形212、校正图形213、校正图形214、校正图形215、校正图形216、位置探测图形分隔符217、以及一些数据(未示出)和纠错码字(未示出)等符号构成。
其中,位置探测图像201、位置探测图像202、位置探测图像203用来确定二维码所在的矩形区域。
定位图形209和定位图形210用于确定二维码坐标。
位置探测图形分隔符217用于将位置探测图像201、位置探测图像202、位置探测图像203与其他符号分开。
校正图形211、校正图形212、校正图形213、校正图形214、校正图形215、校正图形216用于对齐二维码图形,对二维码进行矫正。
格式信息204、格式信息205、格式信息206用于存放二维码的格式信息,例如二维码的编码格式。
版本信息207、版本信息208包含版本信息和纠错相关信息。不同版本二维码的区别主要是存储数据的模块不同(每一黑/白块就是一个模块)。
2、QR码识别过程
(1)图像预处理
电子设备获取包含二维码的第一图像后,对第一图像进行预处理。预处理可以包括灰度化处理、去噪处理、二值化处理、膨胀处理和腐蚀处理中的一项或多项。
灰度化处理和去噪处理的具体过程可以参考现有技术,此处不再赘述。
二值化处理是一种将图像中的每个像素块的灰度值设置为第一数值或第二数值(第一数值和第二数值可以相差较大,便于区分)的处理方式。图像在经过二值化处理后,仅包括两种灰度值相差较大的像素块。示例性地,电子设备在进行二值化处理时,电子设备可以判断二值化图像中的每个像素块的灰度值是否大于预设阈值。当电子设备确定某个像素块的灰度值大于或等于预设阈值时,电子设备可以将该像素块设置为白色(在256级灰度中白色的灰度值为255)。当电子设备确定某个像素块的灰度值小于预设阈值时,电子设备可以将该像素块设置为黑色(在256级灰度中黑色的灰度值为0)。直至电子设备完成对图像中每个像素块的处理。经过二值化处理过的图像可以称为二值化图像。
膨胀处理的具体操作是用一个结构元素(一般是3×3的大小)扫描二值化图像中的每一个元素,用结构元素的每一个像素与其覆盖的像素卷积,如果都为0,则像素为0,否则为1。换句话说,结构元素遍历到二值化图像中某个位置时,其周围全部是黑色,保留黑色,否则变为白色。
腐蚀处理的具体操作是用一个结构元素(一般是3×3的大小)扫描二值化图像中的每一个元素,用结构元素的每一个像素与其覆盖的像素卷积,如果都为1,则该像素为1,否则为0。换句话说,结构元素遍历到二值化图像中某个位置时,其周围全部是白色,保留白色,否则变为黑色。
电子设备可以对二值化图像先做膨胀处理,后做腐蚀处理。这样可以填充图像中物体内细小的空洞,并平滑物体边界。电子设备也可以对二值化图像先做腐蚀处理,后做膨胀处理。这样可以消除图像中细小的噪声,并平滑物体边界。
电子设备对第一图像进行预处理可以提高第一图像的质量和减少环境中噪声(例如光照)的影响。
(2)定位
电子设备对预处理后的第一图像中二维码进行定位。首先,电子设备定位出二维码的位置探测图形(例如图2中示出的位置探测图像201、位置探测图像202、位置探测图像203)。电子设备根据位置探测图形可以确定二维码在第一图像中区域。
(3)解码
电子设备根据二维码的编码格式信息(例如,图2中示出的格式信息204、格式信息205、格式信息中存放的格式信息)和纠错码,对数据进行解读后得到解码结果(例如网址、个人名片、商品价格等等)。
当电子设备扫描到的二维码无法保持平直性时,电子设备无法识别出二维码中各个模块(例如,黑色像素块、白色像素块)和符号(例如位置探测图形、格式信息、校正图形、定位图形等等)。从而,导致电子设备不能对二维码正确解码。
在现有技术的一种可能的实现方式中,现有技术中提供的基于透视原理的二维码识别方法可以包括:电子设备首先对第一图像进行预处理,第一图像中包含二维码。然后,电子设备根据二维码边框特征对第一图像中的二维码定位和旋转校正。电子设备对二维码进行分割,获取二维码采样信息后对二维码进行解码。该方法具体可以参见图3中示出的二维码识别的方法流程图。如图3所示,以DM码为例,电子设备对第一图像的预处理可包括:1、灰度化,2、滤波,3、二值化,4、边缘提取。上述图像预处理方法均可参考现有技术,此处不再赘述。电子设备对第一图像定位可以包括:5、初定位,即电子设备定位出DM码在第一图像中的位置。6、直线检测,即电子设备检测出DM码中的直线。电子设备对DM码分割具体可以是电子设备对DM码进行水平方向和垂直方向分别投影,分别获取水平分割线和垂直分割线,然后利用水平分割线和垂直分割线对DM码进行分割。
上述现有技术中的方法仅适用于二维码图像能够保持平直性的场景。当二维码变形、弯曲时,二维码中的边框线段或者黑色像素块与白色像素块的边缘线段弯曲或变形,无法保持平直性。电子设备无法正确判断出二维码每一个像素块是黑色像素块或白色像素块,从而会导致电子设备无法正确识别二维码。
针对现有技术中电子设备无法正确识别不具有平直性的二维码的问题,本申请实施例提出一种二维码识别的方法。该方法包括:电子设备获取待识别图像,待识别图像中包含不平直的第一二维码图像;第一二维码由n*m个格子构成;电子设备检测出第一二维码图像中的边缘线段;边缘线段包括第一方向的第一边缘线段和第二方向的第二边缘线段,第一方向和第二方向垂直;电子设备根据第一边缘线段构建(n+1)条第一方向折线,根据第二边缘线段构建(m+1)条第二方向折线;电子设备根据(n+1)条第一方向折线和(m+1)条第二方向折线确定构成第一二维码图像的n*m个格子的位置信息和编码信息;电子设备根据n*m个格子的位置信息和所述编码信息构建二维码图像,二维码图像为具有平直性的二维码图像;电子设备对二维码图像进行解码并显示解码结果。
下面结合附图介绍本申请实施例提供的一种二维码识别的方法。请参见图4,图4示出了本申请实施例提供的一种二维码识别的方法流程示意图。如图4所示,以AZTEC码为例,本申请实施例提供的一种二维码识别的方法可以包括:
S101、电子设备获取包含二维码图像的第一图像。
电子设备可以获取到包含二维码的第一图像。电子设备可以通过摄像头获取第一图像,也可以在电子设备的图库中获取第一图像。第一图像中包含二维码图像。
可以理解的是,本申请实施例中的待识别图像可以包括第一图像。第一图像中包含的二维码图像可以称为第一二维码图像。
在一种可能的实现方式中,电子设备可以接收到用户触发二维码识别的操作,响应于该操作,电子设备获取包含二维码的第一图像。用户触发二维码识别的操作可以有多种,例如,用户触发二维码识别的操作可以是用户点击电子设备中二维码识别按键。该二维码识别按键可以包括各种应用中的扫一扫按键。用户触发二维码识别的操作可以是用户向电子设备输入识别二维码的语音命令。此处不作限定。电子设备响应于该用户操作,电子设备可以进入如图5所示的二维码识别界面200。电子设备可以通过摄像头持续获取第一图像,并可以在二维码识别界面中显示第一图像。
图5为电子设备100在二维码扫描界面200获取图像的示意图。如图5所示,图5中示出的二维码扫描界面200可以包括控件201、扫描框202、图库图标203、手电筒图标204。其中,控件201用于返回扫描二维码/条码界面的上一级界面。扫描框202用于显示摄像头扫描的图像,例如图10中示出的图像205。该图像205可以是本申请实施例中的第一图像。图库图标203用于用户在电子设备100的图库中选择图像。用户可以点击图库图标203,响应于该操作,电子设备100可以显示图库中保存的图像。用户可以选择图库中保存的图像进行扫描。手电筒图标204用户打开电子设备100的手电筒。当电子设备获取图像的环境比较暗,摄像头无法清晰地获取到图像时,用户可以点击手电筒图标204打开手电筒。
一般地,二维码由n*m个格子(每个格子可以为圆形、正方形等)组成。n可以与m相等,此处对n和m具体的取值不作限定。本申请实施例以n与m相等为例进行阐述。例如,本申请实施例中图5示出的图像205中的AZTEC码由27*27个正方形的格子组成。即,电子设备有27排格子,每排27个格子堆叠而成。当二维码保持平直性时,二维码中水平方向每一排格子都应该在一条直线上,垂直方向上的每一排格子也在一条直线上。每一个格子为一个像素块。若格子二进制编码信息为0,则格子的颜色为黑色,本申请实施例将颜色为黑色的格子称为黑色像素块。若格子二进制编码信息为1,则格子的颜色为白色,本申请实施例将颜色为白色的格子称为白色像素块。
可以理解的是,二维码中的编码信息不限于0或1,编码信息可以是第一预设数字和第二预设数字。当格子的编码信息为第一预设数字时,格子的颜色为第一颜色(例如白色)。当格子的编码信息为第二预设数字时,格子的颜色为第二颜色(例如黑色)。
在一种场景中,该二维码为弯曲、变形或者褶皱的二维码,即二维码中黑色像素块和白色像素块的边缘线段不具有平直性。当二维码弯曲、变形或者褶皱时,二维码中位于同一排的格子可能不在一条直线上。
S102、电子设备对第一图像进行预处理。
电子设备可以对第一图像的预处理包括对第一图像进行二值化处理、灰度化处理、膨胀处理、腐蚀处理中的一项或多项。具体可以参考上文中对预处理的描述,此处不再赘述。电子设备通过预处理可以提取出第一图像中包含的二维码图像。例如,图5中示出的图像205经过预处理后,可以提取出如图6所示的二维码图像。图6示出的二维码图像可以是本申请实施例中的第一二维码图像。如图6所示,第一二维码图像中黑色像素块和白色像素块的边缘线段弯曲、变形、且变形方向不一致,不具有平直性。
在一种可能的实现方式中,电子设备第一图像进行预处理还包括对第一图像进行滤波和放大。电子设备对第一图像进行滤波的方法可以有多种,例如双边滤波方法,具体可以参考现有技术中,此处不再赘述。电子设备对第一图像进行放大的方法也可以有多种,例如,最邻近插值算法,具体可以参考现有技术,此处不再赘述。这样,可以减少噪声对二维码图像的干扰,以及可以增强二维码的边缘信息(例如边缘线段)。
在一种可能的实现方式中,电子设备对第一图像进行预处理之后,对第一图像中的二维码图像进行解码,若解码成功,则显示解码结果。若解码失败,则执行步骤S103-步骤S106。
在本申请实施例,也可以不执行步骤S102,即电子设备不执行对第一图像进行预处理的操作。
S103、电子设备在二维码中构建折线。
电子设备可以将二维码分割成多个区域。当二维码失真(如变形、弯曲、褶皱等等)时,电子设备能够更准确地确定出二维码中失真的区域。便于后续电子设备对二维码中失真的区域进行校正。
在一种可能的实现方式中,电子设备分割二维码可以包括如下步骤:
1、电子设备检测出二维码中边缘线段(黑色像素块和白色像素块的边缘线段、二维码的边缘线段),从二维码的边缘线段中确定出目标线段,目标线段为满足预设条件的边缘线段。
图7示例性的展示了二维码图像中水平方向的目标线段。如图7所示,图中的黑色线段即为电子设备检测出二维码图像中水平方向的目标线段。图8示例性的展示了二维码图像中垂直方向的目标线段。如图8所示,图8中的黑色线段即为电子设备检测出二维码图像中垂直方向的目标线段。图7和图8示出的二维码为AZTEC码。在本申请实施例中,水平方向可以称为第一方向,垂直方向可以称为第二方向。第一方向可以是水平方向,也可以是其他方向。第二方向可以是垂直方向,也可以是其他方向。第一方向与第二方向垂直,本申请实施例对第一方向和第二方向的具体方向不作限定。水平方向的边缘线段可以称为第一边缘线段。垂直方向的边缘线段可以称为第二边缘线段。水平方向的目标线段可以称为第一方向目标线段,垂直方向的目标线段可以称为第二方向目标线段。
在一种可能的实现方式中,预设条件可以为边缘线段的斜率小于预设阈值。即,电子设备可以通过直线检测算法检测出二维码图像中水平方向和垂直方向中所有的边缘线段,然后将边缘线段的斜率小于预设阈值的线段作为目标线段。可以理解的是,电子设备可以预先配置预设阈值。在本申请实施例中,水平方向的边缘线段的预设阈值可以称为第一预设阈值,垂直方向的边缘线段的预设阈值可以称为第二预设阈值。第一预设阈值可以与第二预设阈值相等。本申请实施例对第一预设阈值和第二预设阈值的具体取值不作限定。电子设备可以检测出二维码图像中水平方向和垂直方向中所有的边缘线段的斜率。一般地,具有平直性的二维码,二维码中线段的斜率趋近0。当边缘线段的斜率超过预设阈值时,该边缘线段为电子设备检测出来的错误线段。即该线段可能不是二维码图像中正确的边缘线段。这样,电子设备只将线段的斜率小于预设阈值的线段作为目标线段,可以排除一些错误线段。
进一步地,电子设备可以将两条距离小于距离阈值,和斜率之差的绝对值小于第一阈值的目标线段合并为一条线段。这样,可以减少重复线段。
2、电子设备将目标线段聚类成折线。
电子设备将水平方向的目标线段聚类为水平方向的折线,可以称为第一方向折线。电子设备将垂直方向的目标线段聚类为垂直方向的折线,可以称为第二方向折线。
在一种可能的实现方式中,电子设备将第一二维码图像分为R个第一区间和L个第二区间;R、L为正整数,R小于所述n,L小于所述m;电子设备根据每个第一区间中的第一方向目标线段构建一条或多条第一方向折线,R个第一区间中的第一方向折线数量之和为(n+1);根据每个第二区间中的第二方向目标线段构建一条或多条第二方向折线,L个第二区间中的第二方向折线数量之和为(m+1)。R和L可以相等。
例如,以R和L等于2为例。图9A示例性地示出了R=2时第一二维码图像中的水平区间示意图。R=2时,第一二维码图像被划分为两个第一区间。每个第一区间中包括多条目标线段。图9B示例性地示出了L=2时第一二维码图像中的垂直区间示意图。L=2时,第一二维码被划分为两个第二区间。每个第二区间中包括多条目标线段。例如,图9A示出的二维码为27*27个格子组成,即n=m=27,那么,R个水平区间中目标线段可以构建的折线条数为28。当R=2,2个第一区间中的目标线段可以分别构建14条折线。
其中,R和L的取值与二维码图像的像素值和目标线段的数量有关。在一种可能的实现方式中,二维码图像的像素值越大、目标线段的数量越多,R和L的值越大。在一种可能的实现方式中,R和L为电子设备配置的固定值,例如R、L可以等于12。此处不做限定。
可以理解的是,R的值越大,第一区间越多,每一个第一区间中目标线段的变形、弯曲或褶皱的方向一致。
以电子设备将水平方向的目标线段聚类为水平方向的折线为例,电子设备将目标线段聚类成折线具体可以包括:
(1)、划分区间。
如上所述,在27*27个格子组成的第一二维码中,可以将该二维码划分为12(即R=12)个第一区间。每个第一区间范围(例如高度和宽度)可以根据目标线段的端点坐标确定。
在一个可行的例子中,目标线段可以用线段的端点坐标表示。示例性地,图9A中示出的水平方向的一个目标线段,即目标线段L2可以表示为[(x0,y0),(x1,y1)]。(x0,y0)表示目标线段L2的左端点(即图9A中的A点),(x1,y1)表示目标线段L2的右端点(即图9A中的B点)。以水平方向的目标线段为例,电子设备可以将二维码划分为R个第一区间,其中R为正整数。如图9A所示,图中有两个第一区间。电子设备将每个第一区间内的目标线段聚类为折线。这样,每个第一区间内目标线段的变形、弯曲或褶皱的方向一致,电子设备可以更准确地根据第一区间内的折线重构二维码。
在一种可能的实现方式中,电子设备可以根据目标线段划分第一区间。每个第一区间的高度可以是水平方向目标线段端点的y坐标的最大值与最小值之差除以第一区间的个数(即除以R)。例如,若水平方向上的目标线段分别为[(60.98,23.16),(71.08,23.95)],[(155,36.46),(263.04,46.04)],[(68.01,47.72),(100,48.9)]...[(336.99,645.35),(406.99,648.64)]。y坐标的最大值和最小值分别为648.64、23.16。那么,第一区间的高度可以是(648.64-23.16)/R。第一区间的长度是水平方向目标线段端点的x坐标的最大值与最小值之差。电子设备将每个第一区间内的目标线段聚类为折线。
可以理解的是,上述电子设备划分区间的方式是将所有的目标线段划分成多个集合。电子设备以两个端点坐标确定一条目标线段。电子设备可以获取到所有目标线段的端点坐标。然后电子设备可以将这些端点坐标划分成多个区间,每个区间中包括一条或多条目标线段。
可以理解的是,电子设备划分区间也可以直接将原始二维码图像进行平均划分得到区间,本申请对划分区间的具体方式不作限定。
(2)、将每个区间内的目标线段聚类为折线。
进一步地,在一种可能的实现方式中,电子设备将每个区间(第一区间或第二区间)内的目标线段聚类为折线可以包括如下步骤:
A、电子设备根据每个线段的长度以及倾斜角度得到加权平均角度α,并得到相应的单位向量v=sinα+cosα。
举例来说,假设一个第一区间内有3条目标线段L1、目标线段L2和目标线段L3。如图9C所示,目标线段L1的长度为d1,倾斜角度为α1。目标线段L2的长度为d2,倾斜角度为α2。目标线段L3的长度为d3,倾斜角度为α3。那么加权平均角度α=(d1α1+d2α2+d3α3)/(d1+d2+d3)。然后,电子设备根据第一区间的加权平均角度可以确定第一区间的单位向量v=sinα+cosα。第一区间中的每两条目标线段之间的投影距离可以根据单位向量v计算。
图9C中示出的目标线段L1可以是图9A中的目标线段L1。图9C中示出的目标线段L2可以是图9A中的目标线段L2。图9C中示出的目标线段L3可以是图9A中的目标线段L3。
B、电子设备计算第一区间内任意两条目标线段中点连线在单位向量v的法向量上的投影距离d。
图9D示例性示出了目标线段中点连线在单位向量v的法向量上的投影距离d。如图9D所示,图9D中包括目标线段L2和目标线段L3,以及第一区间中的单位向量v。中心点连线m为连接目标线段L2的中点与目标线段L3的中点构成的线段。电子设备可以获得中心点连线m到单位向量v的法向量的投影距离d。图9D示出的目标线段L2和目标线段L3即为图9A中示出的目标线段L2和目标线段L3。
C、电子设备将投影距离d小于预设距离的两条目标线段聚类为折线。
电子设备中可以配置有预设距离。若d小于预设距离,则电子设备可以将图9D中目标线段L2和目标线段L3聚类为折线。例如,图9D中的目标线段L2和目标线段L3可以聚类为如图9C示出的折线C2。即目标线段L2的右端点和目标线段L3的左端点连接形成折线。
在一种可能的实现方式中,电子设备将第一区间中第一投影距离小于第一预设距离的两条或多条第一方向目标线段构建第一方向折线;第一投影距离为第一区间中两条相邻的第一方向目标线段的中心点连线在第一向量上的投影,第一向量为第一单位向量的法向量;第一单位向量根据第一区间中第一方向目标线段的线段长度和倾斜角度确定;电子设备将第二区间中第二投影距离小于第二预设距离的两条或多条第二方向目标线段构建第二方向折线;第二投影距离为第二区间中两条相邻的第二方向目标线段的中心点连线在第二向量上的投影,第二向量为第二单位向量的法向量;第二单位向量根据第二区间中第二方向目标线段的线段长度和倾斜角度确定。
在本申请实施例中,第一预设距离可以和第二预设距离相等。本申请实施例对第一预设距离和第二预设距离的具体取值不作限定。
可以理解的是,目标线段L2和左边相邻的目标线段L1的投影距离小于预设距离,目标线段L2和目标线段L1可以构成折线C1。目标线段L2和右边相邻的目标线段L3的投影距离小于预设距离,目标线段L2和目标线段L3可以构成折线C2。折线C1和折线C2可以构成一条连续的折线C(如图10中示出的折线C)。
按照上述方法,电子设备可以将所有水平方向和垂直方向上的目标线段聚类为折线。可以理解的是,一般二维码中同一排格子中检测出的目标线段被聚类为一条折线。图10示例性地示出了二维码中水平方向的折线。图10中示出的折线为图7中示出的目标线段构成。具体,电子设备可以按照上述将目标线段聚类成折线的方法将图7中示出的目标线段聚类成图10中示出的折线。图11示例性地示出了二维码垂直方向的折线。图11中示出的折线为图8中示出的目标线段构成。具体,电子设备可以按照上述将目标线段聚类成折线的方法将图8中示出的目标线段聚类成图11中示出的折线。
电子设备构建出水平折线和垂直折线。在电子设备构建的水平折线和垂直折线没有出现错误的情况下,电子设备可以根据两条相邻的水平折线和两条相邻的垂直折线可以确定出二维码中的一个格子。这样,电子设备可以根据折线确定出二维码中的每一个格子。然后电子设备将确定出的每一个格子重构成具有平直性的二维码。这里,具体可以参考步骤S105中的描述,此处先不赘述。
但是,若电子设备在将目标线段构建成折线时,一些目标线段归类有误或遗漏,会导致二维码中有的区域中构建的折线错误或缺失。电子设备为了减少二维码中有的区域中构建的折线错误或缺失的情况出现,会对二维码中构建的折线进行校正,即电子设备执行步骤S104。
S104、电子设备校正二维码中构建的折线。
在一种可能实现的方式中,电子设备校正二维码中构建的折线可以包括如下步骤:
1、查找二维码中错误折线和/或缺失折线的区域。
电子设备可以计算出水平方向上和垂直方向上所有折线与相邻折线的距离。以水平方向上的折线为例。电子设备计算出水平方向上的第一折线与第二折线的距离t1。第二折线与第三折线的距离t2。第N折线与第N+1折线的距离tw。电子设备根据折线间的距离t1,t2,…,tw确定正确折线间的距离区间[T1,T2]。其中,第一折线与第二折线相邻,第二折线与第三折线相邻,第N折线与第N+1折线相邻。若折线与所有相邻折线的距离均在距离区间[T1,T2]内,电子设备确定该折线为正确折线。若折线与任一相邻折线的距离不在距离区间[T1,T2]内,电子设备确定该折线为错误折线。可以理解的是,当水平方向上的两条相邻的折线的距离小于T1时,说明这两条折线可能重叠或者相交。当水平方向上的两条相邻的折线的距离大于T2时,说明两条折线之间应该有缺失的折线。举例来说,若第一折线与第二折线的距离t1不在距离区间[T1,T2]内,电子设备确定第一折线为错误折线。若第二折线与第一折线的距离t1,以及第二折线与第三折线的距离t2均在距离区间[T1,T2]内,则电子设备确定第二折线为正确折线。若第二折线与第一折线的距离t1,和/或第二折线与第三折线的距离t2不在距离区间[T1,T2]内,则电子设备确定第二折线为错误折线。
在一种可能的实现方式中,T1=0.7ts,T2=1.3ts,ts为t1,t2,…,tw中的中位数。利用中位数确定距离区间,这样不易受折线间的距离数据中极端数值的影响。
电子设备按照上述方式查找到所有水平方向上的错误折线,和缺失折线的区域。同样地,电子设备可以按照上述方式查找到所有垂直方向上的错误折线,和缺失折线的区域。图12示例性地展示了二维码中水平方向的错误折线。如图12所示,图中虚线部分表示错误折线。图13示例性地展示了二维码中垂直方向的错误折线。如图13所示,图中虚线部分表示错误折线。
2、纠正错误折线和/或补齐缺失折线。
在一种可能的实现方式中,电子设备确定出第一方向折线和第二方向折线中不满足预设条件的第一错误折线和第二错误折线;电子设备根据第一目标线段的第一平均倾斜角度将第二目标线段构建第一方向折线,根据第三目标线段的第二平均倾斜角度将第四目标线段构建第二方向折线。
其中,第一目标线段为构建第一折线的第一方向目标线段,第一折线为与第一错误折线相邻的第一方向折线,第二目标线段包括第一错误折线所在第一区间中多条第一边缘线段。
其中,第三目标线段为构建第二折线的第二方向目标线段,第二折线为与第二错误折线相邻的第二方向折线,第四目标线段为构建包括第二错误折线所在第二区间中多条第二边缘线段。
在一种可能的实现方式中,电子设备根据第一目标线段的第一平均倾斜角度将第二目标线段构建成所述第一方向折线,具体包括:电子设备根据第一平均倾斜角度将第二目标线段上中心点的第一坐标进行坐标变换,得到第二坐标;电子设备将第二坐标的纵坐标差值属于所述第一距离区间的两条或多条第二目标线段构建成第一方向折线。
结合第一方面,在一种可能的实现方式中,所述电子设备根据第三目标线段的第二平均倾斜角度将第四目标线段构建成所述第二方向折线,具体包括:电子设备根据第二平均角度将第四目标线段上中心点的第三坐标进行坐标变换,得到第四坐标;电子设备将第四坐标的纵坐标差值属于第二距离区间的两条或多条第四目标线段构建成第二方向折线。
在一种可能的实现方式中,电子设备纠正错误折线和/或补齐缺失折线具体包括:确定错误折线相邻的正确折线的平均倾斜角度β;根据平均倾斜角度β,将二维码中错误折线,和缺失折线的区域的目标线段旋转投影得到投影直方图;根据投影直方图对错误折线以及缺失折线区域的目标线段重新聚类成折线。
示例性地,以水平方向上的折线为例,若电子设备确定第一折线和第二折线为错误折线,第三折线为正确折线。则电子设备可以根据第三折线中所有目标线段的倾斜角度得到平均倾斜角度β。然后将二维码中所有的目标线段的中心点坐标进行旋转投影,即若中心点坐标为(x,y),旋转投影后的坐标为(x2,y2)。x2=xcosβ+ysinβ,y2=xsin(-β)+ycosβ。对于水平方向上错误区域的目标线段,电子设备根据错误区域的所有目标线段的中心点坐标旋转投影后的坐标得到投影直方图。投影直方图中的横轴表示目标线段的中心点旋转投影后的纵坐标y2,纵轴表示中心点旋转投影后的纵坐标为y2的目标线段数量。图14示例性地示出了水平方向上目标线段的投影直方图。如图14所示,图14中横轴表示目标线段中心点旋转投影后的纵坐标y1。纵轴表示目标线段数量。例如,y2=12时,目标线段数量为1。y2=78时,目标线段数量为2。电子设备确定投影直方图中峰值位置,以峰值位置为中心,将其邻域内的目标线段聚类形成折线。这样,电子设备利用上述方法可以纠正水平方向和垂直方向的错误折线,以及补齐水平方向和垂直方向的缺失的折线。
二维码中水平方向上校正后的折线可以如图15所示。图15示例性地示出了二维码中水平方向校正后的折线示意图。二维码中垂直方向上校正后的折线可以如图16所示。图16示例性地示出了二维码中垂直方向校正后的折线示意图。
S105、电子设备根据校正后的折线重建二维码。
电子设备根据第一方向折线和第二方向折线的交点确定二维码中格子的坐标;然后根据确定的格子在二维码中位置确定格子的编码信息,该编码信息为第一预设数字或者第二预设数字;最后根据格子的个数和每个格子的编码信息重建二维码。
其中,第一预设数字可以为0,第二预设数字可以是1。
具体地,第一条水平方向的折线与第一条垂直方向的折线的交点即为二维码中第一个格子左上顶点。第一条水平方向的折线与第二条垂直方向的折线的交点即为二维码中第一个格子右上顶点。第二条水平方向的折线与第一条垂直方向的折线的交点即为二维码中第一个格子左下顶点。第二条水平方向的折线与第二条垂直方向的折线的交点即为二维码中第一个格子右下顶点。这样,电子设备可以通过两条第一方向折线和两条第二方向折线确定二维码中一个格子。这样,电子设备可以根据折线确定出二维码中的每一个格子。第一方向折线和第二方向折线形成的格子可以如图17所示。图17示例性地示出了二维码的栅格图。图17中的格子有第一方向折线和第二方向折线构成。电子设备根据第一方向折线和第二方向折线交点即可确定一个格子的四个顶点坐标。依次地,电子设备可以确定出所有格子的顶点。电子设备确定的二维码中格子顶点可以如图18所示。图18示例性地展示了二维码中格子顶点示意图。电子设备将每一个格子拿到二维码中进行裁剪,若裁剪出的像素块对应像素的比例大于或等于预设比例,则确定该格子的编码信息为第一预设数字(例如0)。若剪出的像素块对应像素的比例低于预设比例,则确定该格子的编码信息为第二预设数字(例如1)。这样,电子设备可以获得所有格子的编码信息。然后电子设备根据格子的个数、大小(可以理解的是,二维码中每一个格子的大小相同)、坐标以及每个格子的编码信息重新绘制出二维码,即为重建后的二维码。重建后的二维码为具有平直性的二维码。其中,预设比例可以为50%,也可以是其他值,例如60%,此处不作限制。像素块对应的像素可以是黑色像素,也可以是其他颜色的像素,此处不作限制。
在一种可能的实现方式中,电子设备确定第一格子的坐标可以包括:电子设备根据(n+1)条第一方向折线和(m+1)条第二方向折线确定构成第一二维码图像的n*m个格子的位置信息和编码信息;具体包括:电子设备根据第一折线、第二折线分别与第三折线、第四折线的交点确定出第一格子的位置信息;第一方向折线包括第一折线和第二折线,第一折线和第二折线相邻;第二方向折线包括第三折线和所述第四折线;第三折线和第四折线相邻;n*m个格子包括第一格子;第一格子的位置信息包括第一格子四个顶点的坐标;电子设备根据第一二维码图像中第一格子处像素的比例确定第一格子的编码信息。如图17所示,图17中示出了水平方向相邻的第一折线和第二折线。图17中还包括垂直方向相邻的第三折线和第四折线。第一折线、第二折线分别与第三折线和第四折线的交点构成了第一格子。
电子设备确定一条第一方向折线和一条第二方向折线的交点坐标的过程可以参考图19。图19示例性地示出了第一方向折线L3和第二方向折线C5示意图。如图19所示,第一方向折线L3由目标线段AB、目标线段BC、目标线段CD、目标线段DE、目标线段EF构成。电子设备可以获取到目标线段端点A点、B点、C点、D点、E点、F点坐标。水平矩形2401的左上顶点Q1的横坐标等于端点A点、B点、C点、D点、E点、F点中横坐标最小值,即等于A点的横坐标。Q1的纵坐标等于端点A点、B点、C点、D点、E点、F点中纵坐标最小值,即等于F点的纵坐标。可以理解的是,在图24中,横坐标从左往右逐渐增大,纵坐标从上往下逐渐增大。水平矩形2401的右下顶点Q3的横坐标等于端点A点、B点、C点、D点、E点、F点中横坐标最大值,即等于F点的横坐标。Q3的纵坐标等于端点A点、B点、C点、D点、E点、F点中纵坐标最大值,即等于E点的纵坐标。电子设备确定了水平矩形2401的左上顶点Q1和右下顶点Q3后,可以根据Q1和Q3确定出左下顶点Q2和右上顶点F。这样,电子设备根据四个顶点Q1点、Q2点、Q3点和F点可以确定出水平矩形2401。
图19中的第二方向折线C5可以由目标线段GH、目标线段HI、目标线段IJ、目标线段JK、目标线段KM、目标线段MN构成。电子设备可以获取到目标线段端点H点、I点、J点、K点、M点、N点的坐标。垂直矩形2402的左上顶点Q4的横坐标等于端点H点、I点、J点、K点、M点、N点中横坐标最小值,即等于H点的横坐标。Q4的纵坐标等于端点H点、I点、J点、K点、M点、N点中纵坐标最小值,即等于G点的纵坐标。垂直矩形2402的右下顶点N,N点的横坐标为端点H点、I点、J点、K点、M点、N点中横坐标最大值。N点的纵坐标为端点H点、I点、J点、K点、M点、N点中纵坐标最大值。电子设备根据左上顶点Q4和右下顶点N的坐标,可以确定出垂直矩形2402的左下顶点Q6和右上顶点Q5的坐标。这样,电子设备可以根据四个顶点坐标确定出垂直矩形2402。
图19中P1点、P2点、P3点、P4点为水平矩形2401和垂直矩形2402相交矩形的四个顶点。电子设备确定出相交矩形P1P2P3P4,然后根据相交矩形内第一方向折线L3和第二方向折线C5内相交的目标线段分别为第一方向目标线段CD和第二方向目标线段IJ,最后根据第一方向目标线段CD和第二方向目标线段IJ确定出交点P点坐标。由于第一方向目标线段CD的两个端点坐标已知,根据两个端点坐标可以得到第一方向目标线段CD所在直线的第一直线方程。同样地,第二方向目标线段IJ的两个端点坐标已知,根据两个端点坐标可以得到第二方向目标线段所在直线的第二直线方程。电子设备对第一直线方程和第二直线方程求解可以得到交点P的坐标。这样,电子设备可以按照上述方法依次确定出入图23中所示的所有第一方向折线和第二方向折线的交点。
结合第一方面,在一种可能的实现方式中,电子设备根据第一折线、第二折线分别与第三折线、第四折线的交点确定出第一格子的位置信息,具体包括:电子设备确定第一折线和第三折线的第一交点的坐标;电子设备确定第一折线和第四折线的第二交点的坐标;电子设备确定第二折线和第三折线的第三交点的坐标;电子设备确定第二折线和第四折线的第四交点的坐标;其中,第一交点、第二交点、第三交点、第四交点为所述第一格子的四个顶点。
结合第一方面,在一种可能的实现方式中,电子设备确定第一折线和第三折线的第一交点的坐标,具体包括:电子设备将第一折线转换为第一矩形,第三折线转换为第二矩形;电子设备确定第一矩形和第二矩形的相交矩形;电子设备确定第一折线上和第三折线上在相交矩形内的一个或多个第一坐标点;电子设备根据所述一个或多个第一坐标点确定第一折线和第三折线的第一交点的坐标。
其中第一水平矩形的左上顶点横坐标为第一折线上所有点的横坐标最小值,第一水平矩形的左上顶点纵坐标为第一折线上所有点的纵坐标最小值;第一水平矩形的右下顶点坐标为第一折线上所有点的横坐标最大值,第一水平矩形的右下顶点纵坐标为第一折线所有点的纵坐标最大值;第一垂直矩形的左上顶点横坐标为第二折线上所有点的横坐标最小值,第一垂直矩形的左上顶点纵坐标为第二折线上所有点的纵坐标最小值;第一垂直矩形的右下顶点横坐标为第二折线上所有点的横坐标最大值,第一垂直矩形的右下顶点纵坐标为第二折线上所有点的纵坐标最大值。这里,水平坐标轴正方向向右,垂直坐标轴正方向向下。
电子设备确定所有交点中,四个交点可以确定一个二维码的格子。如图20所示,图20中的格子2501由四个交点确定。电子设备可以确定出格子2501在二维码中的位置以及大小。电子设备可以用格子2501在第一二维码图形中的相同位置进行裁剪。当格子2501中的黑色像素值所占比例大于或等于50%时,格子2501的编码信息为0。即电子设备重建出的二维码中格子2501所在位置为黑色像素块。
电子设备重建好的二维码图像可以如图21所示。图21中示出的二维码图像具有平直性。
S106、电子设备对重建的二维码进行解码,并显示解码结果。
电子设备对重建的二维码进行解码。电子设备可以读取中二维码中每一个格子的编码信息。最后电子设备根据每一个格子的编码信息得到解码结果。具体可以参考现有技术,此处不再赘述。
示例性地,电子设备对二维码的解码结果可以如图22所示。图22示出了电子设备解码结果示意图。如图22所示,图22示出了展示电子设备解码结果的用户界面300。用户界面300中可以包括控件301。控件301用于返回上一级界面。文字提示符302用于提示用户当前界面展示的内容(例如“扫码结果”即表示当前界面展示电子设备扫码后对二维码解码的结果)。解码结果303用于展示具体解码结果,例如网址“http://xxx.com”。
这样,当电子设备扫描到的二维码图像出现变形、弯曲、褶皱等失真时,电子设备无法直接对二维码进行识别得到解码结果。本申请实施例提供一种二维码识别的方法,首先,电子设备给二维码图像构建第一方向折线和第二方向折线,第一方向折线和第二方向折线将二维码图像构建成栅格图。电子设备通过栅格图将二维码分成多个格子并获取每个格子之间的拓扑关系(即一个格子与其他格子的位置关系,例如相邻)。电子设备根据获取到的多个格子的拓扑关系将多个格子重建成具有平直性的二维码,后对该二维码进行解码。这样,电子设备能够准确对发生变形、弯曲、褶皱等失真的二维码进行解码。从而提升了用户体验。
在一种场景中,电子设备获取到的二维码图像时弯曲的。图23示例性地展示出电子设备对弯曲的二维码的重建过程。如图23所示,电子设备获取到二维码图像(即图中示出的原始图像)是弯曲的,不具有平直性。图23中示出的二维码识别过程具体可以包括:电子设备获取待识别图像,待识别图像中包含不平直的第一二维码图像;第一二维码由n*m个格子构成;电子设备检测出第一二维码图像中的边缘线段;边缘线段包括第一方向的第一边缘线段和第二方向的第二边缘线段,第一方向和第二方向垂直;电子设备根据第一边缘线段构建(n+1)条第一方向折线,根据第二边缘线段构建(m+1)条第二方向折线;电子设备根据(n+1)条第一方向折线和(m+1)条第二方向折线确定构成第一二维码图像的n*m个格子的位置信息和编码信息;电子设备根据n*m个格子的位置信息和所述编码信息构建二维码图像,二维码图像为具有平直性的二维码图像;电子设备对二维码图像进行解码并显示解码结果。具体可以参考上述步骤S101-步骤S106的描述,此处不再赘述。
在另一种场景中,电子设备获取到的二维码图像是褶皱的。图24示例性地展示出电子设备对褶皱的二维码的重建过程。如图24所示,电子设备获取到的二维码图像(即图中示出的原始图像)是褶皱的,不具有平直性。图24中示出的二维码识别过程具体可以包括:电子设备获取待识别图像,待识别图像中包含不平直的第一二维码图像;第一二维码由n*m个格子构成;电子设备检测出第一二维码图像中的边缘线段;边缘线段包括第一方向的第一边缘线段和第二方向的第二边缘线段,第一方向和第二方向垂直;电子设备根据第一边缘线段构建(n+1)条第一方向折线,根据第二边缘线段构建(m+1)条第二方向折线;电子设备根据(n+1)条第一方向折线和(m+1)条第二方向折线确定构成第一二维码图像的n*m个格子的位置信息和编码信息;电子设备根据n*m个格子的位置信息和所述编码信息构建二维码图像,二维码图像为具有平直性的二维码图像;电子设备对二维码图像进行解码并显示解码结果。具体可以参考上述步骤S101-步骤S106的描述,此处不再赘述。
图25示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,图25所示电子设备100仅是一个范例,并且电子设备100可以具有比图25中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备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可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器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可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。I2S接口可以用于音频通信。PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。UART接口是一种通用串行数据总线,用于异步通信。MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等***器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
在一种可能的实现方式中,在本申请实施例中,摄像头193拍摄的包含二维码的待识别图像可以经过CSI接口传输到处理器110中。处理器110对待识别图像进行处理后经过DSI接口传输到显示屏194。这样,用户可以在显示屏194上看到待识别图像。
在一种可能的实现方式中,处理器110对待识别图像中的二维码进行解码,得到解码结果。解码结果经过DSI接口传输到显示屏194。这样,用户可以在显示屏194上看到二维码的解码结果(例如,网址,个人名片、商品价格等等)。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器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通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。在本申请实施例中,显示屏194可以显示包含二维码的待识别图像、以及显示待识别图像中二维码的解码结果。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像(例如包含二维码的待识别图像)。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。在本申请实施例中,ISP可以对待识别图像进行预处理,预处理过程可以参考上文中的描述,此处不再赘述。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。在本申请实施例中,摄像头193可以用于捕获包含二维码的待识别图像。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobileterminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellulartelecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过***SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时***多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。