论文部分内容阅读
摘要:在研究Android识别技术以及二维码的基础上,设计并实现了在Android平台下的智能手机的二维码扫描识别功能系统。介绍了二维码在智能手机终端扫描识别功能的详细设计,以及调用二维码对应的数据的功能。
关键词:Android;二维码;二维码扫描;二维码识别
中图分类号:TP311.52 文献识别码:A 文章编号:1001-828X(2016)007-000-02
引言
随着科技的不断发展条码技术得到了越来越广泛的应用。条码技术是物流管理现代化的重要技术手段。如今Android智能手机的普遍使用以及手机应用程序的大量涌现,使得条码技术持续发展。虽然一维的条形码提高了信息录入的速度,而且出错几率小。但是一维的条形码只能包含数字和字母,不能够存储记录大量数据信息,受损后便不能够识别。于是二维码便随之发展起来。作为一种新型的条码技术,二维码是通过利用构成计算机内部逻辑基础的“0”、“1”比特流的概念来实现代码的编制,同时使用与二进制相对应的黑白相间的几何图片记录数据信息,通过扫描设备等自动处理数据信息。二维码编码密度高,数据容量大;编码范围也不在局限于数字和字母;有纠错功能;译码出错几率小;防伪性、保密性、持久性好;制作成本低,容易生成。二维条码技术的推广,将会促进我国信息产业的发展和现代化经济建设的发展。
一、条码识别系统的设计
1.系统框架设计
本文的设计是在Android平台下的智能手机的二维码扫描识别功能系统。本系统主要框架结构为二维码的识别。通过智能手机端的摄像头对二维码进行扫描,实现对二维码的识别。具体操作是把扫描的二维码送到后台进行解析,如果解析成功,就停止扫描。如果解析不成功,对二维码进行再扫描采集图像,再解析,如此循环,直到能够识别图像为止。
2.二维码的识别设计
二维码的识别主要是通过调用摄像头,启动多线程,快速回调摄像头。当一次回调的图像没有被后台解析出来,则进行下一次的回调,如此循环,直到解析识别出二维码为止。同时使摄像头进行自动对焦来解决由二维码的大小不同,显示的模糊程度不同等原因,而引起的摄像头不能很好的采集图像的问题。当后台解析识别完成后对用户进行提醒,并显示识别出来的结果(即商品信息)。将二维码识别系统分为如下四个部分:图像采集、图像处理、图像定位、数据纠错解码。
(1)图像采集的设计
Android系统提供了相机的应用接口,将手机摄像头与之联系起来。Android提供了相应的相机的调用类。用该类可以设置初始化图像捕捉,能够拍摄图像,开启和关闭图像预览。在使用相机前需要在应用中声明相机权限,来获得访问相机的权限。另外需要声明系统所需要用到的相机功能,如自动对焦等。
(2)图像预处理设计
由于二维码解码计算不能够直接使用智能手机摄像头采集到的图像,而是需要经过必要的图像预处理,使得图像信息达到适合解码的程度,与此同时同时应该解决图像噪声、光照不均等问题,从而减少对系统解码的干扰。本系统主要采用了图像灰度化、图像二值化和图像去噪的图像预处理方法。
(3)图像定位与校正的设计
智能手机摄像头采集得到的图像会因为外界的干扰而导致采集到的二维码图像变形,使得图像不能满足处理要求。本系统采用图像校正和图像定位的方法进行处理,对图像进行一些初步处理,使其恢复成可以处理的图像。用图像定位的方法来获取二维码图像的四个顶点坐标,通过图像校正将原图像映射到规则的正方形图形中。
(4)数据纠错解码的设计
识别解码系统首先要确定二维码的解码尺寸,通过从校正过的图像中计算出二维码的版本信息和格式。其次根据二维码的版本和格式,建立采样模块,利用相应的方法建立采样模块,帮助系统更便捷的获取二维码各部分的信息,方便解码计算。将解码完成的各字段,按照顺序排列并输出,从而完成解码过程。
二、识别系统的实现
二维码识别的实现
通过对二维码图形的采集、识别、预处理、矫正和纠错等一系列行为的解码处理。将捕获的图形转换成数据格式。通过调用第三方库,将二维码图片作为参数,调用decode方法即能得到解析出来的字符串数据,最后对字符串数据已经设定的信息类型标准进行比较判断是哪种信息格式再给用户对应的操作。
1.图像采集模块的设计
图像采集模块由前端CMOS图像传感器和后端图像信号处理器共同组成。前端CMOS图像传感器将采集到的模拟图像信号进行模数(AD)转换后通过符合SMIA标准的接口传输到后端图像信号处理器。后端图像信号处理器同样通过SMIA接口对前端CMOS图像传感器进行控制并对接收到的图像信号进行一定的处理,最后通过CAMIF将数字图像信号传递给核心控制单元。
2.图像预处理模块设计
图像预处理是使二维码被准确识别关键的一步。首先我们需要将图片进行图像灰度化处理,然后进行二值化,采集的图像是编码在RGB空间里形成一个三维矩阵的,当R=G=B时就是此点像素的灰度值,常见的灰度化处理方法有:最大值法、平均值法和加权平均值法。根据人眼对颜色的敏感度,我们采用加权平均值法对图像进行灰度化处理。接着我们采用Bemsen算法进行图像二值化处理,Bemsen算法以图像中任意一个像素为中心,在其邻域内找出最大的和最小的灰度值,以两者的平均值作为该像素的阈值,然后对此像素进行二值化。可以解决光照不均带来的图像空白丢失的问题。最后为解决由于QR码存在孤立点噪音、边沿毛刺等变形问题,我们对QR码图像进行图像滤波,对目标图像产生的噪声进行抑制。我们采用中值滤波的算法,在消除噪声的同时可以较好的保留图像边缘信息,使图像产生较少的模糊。以每个像素点为中心,取邻域,对邻域内的所有像素点进行排序,选择中间的那个值作为该像素点的灰度值。 3.图像定位与校正
图像定位采用Hough变换基本原理:利用图像二维空间和hough参数极坐标空间的点-线对偶关,能够获得四条外围直线,从而实现对QR码的定位。我们通过探测QR码定位模块来实现二维码的定位问题,系统把图像检测问题从二维空间转换到极坐标参数空间,把在二维空间中对x轴和y轴两个方面的图像扫描转换成在极坐标空间下的图像扫描。将得到的结果再进行简单的累加统计,通过在hough参数空间寻找累加器最大值的方法来检测二维空间中图像的直线。Hough变换的优点是:受噪声和曲线间断的影响较小,对于形状为正方形的QR码,尤其具有一定的优势。本文对图像进行几何校正采用了双线性变换法,利用图像定位中获得的二维码图像的四个顶点坐标,以及通过图像校正后映射到新坐标的四个顶点坐标组成两个线性方程组,求得其变换参数,从而实现对图像校正。
4.数据纠错解码模块的设计
QR二维码通过采用Reed-Solomon纠错码的纠错方法来保证网络传输或者解码过程中数据的完整性。RS纠错码是一种非二进制的BCH码,能够纠正每个码字最多达16个Red-Solomon编码错误。译码模块流程为:对格式信息译码;对版本信息译码,各模式下的数据译码。QR解码过程是编码过程的逆过程,数字模式的解码过程如下:(1)首先得到数字个数n(即得到5-15位的数据);(2)取10位数据流,转换成10进制得到3个数字;(3)若n=2,取接下来的7为数据流,转换成10进制得到2个数字,若n=1,取接下来的4为数据流,转换成10进制得到1个数字。数字解码后得到的有多种信息,如:链接地址、后台应用程序、产品信息显示等。
三、结语
本文设计并实现了基于Android智能手机二维码识别系统。考虑到智能手机存在的利弊和不足,同时结合了先进的智能手机应用和现代软件工程理论,二维码作为物联网产业中的一个环节,因为其可以存储大量信息和数据,同时保密性能好,与智能手机等移动终端能够很好地相结合,增强了与用户之间的互动性,用户体验效果好。二维码的成本较低,形成了自己独有的优势,具有更好地应用前景。
参考文献:
[1]王文豪,张亚红,全银,等.QRCode二维条码的图形识别技术[J].计算机技术与发展,2009,8(2):40-43.
[2]马鸣,李海波.基于Android的二维码的生成与识别系统的设计与实现[J].电脑知识与技术,2012,8(16):6353-6356.
[3]徐玲,蒋欣志,张杰.手机二维码识别系统的设计与实现[J].计算机应用,2012,32(5):1474-1476.
关键词:Android;二维码;二维码扫描;二维码识别
中图分类号:TP311.52 文献识别码:A 文章编号:1001-828X(2016)007-000-02
引言
随着科技的不断发展条码技术得到了越来越广泛的应用。条码技术是物流管理现代化的重要技术手段。如今Android智能手机的普遍使用以及手机应用程序的大量涌现,使得条码技术持续发展。虽然一维的条形码提高了信息录入的速度,而且出错几率小。但是一维的条形码只能包含数字和字母,不能够存储记录大量数据信息,受损后便不能够识别。于是二维码便随之发展起来。作为一种新型的条码技术,二维码是通过利用构成计算机内部逻辑基础的“0”、“1”比特流的概念来实现代码的编制,同时使用与二进制相对应的黑白相间的几何图片记录数据信息,通过扫描设备等自动处理数据信息。二维码编码密度高,数据容量大;编码范围也不在局限于数字和字母;有纠错功能;译码出错几率小;防伪性、保密性、持久性好;制作成本低,容易生成。二维条码技术的推广,将会促进我国信息产业的发展和现代化经济建设的发展。
一、条码识别系统的设计
1.系统框架设计
本文的设计是在Android平台下的智能手机的二维码扫描识别功能系统。本系统主要框架结构为二维码的识别。通过智能手机端的摄像头对二维码进行扫描,实现对二维码的识别。具体操作是把扫描的二维码送到后台进行解析,如果解析成功,就停止扫描。如果解析不成功,对二维码进行再扫描采集图像,再解析,如此循环,直到能够识别图像为止。
2.二维码的识别设计
二维码的识别主要是通过调用摄像头,启动多线程,快速回调摄像头。当一次回调的图像没有被后台解析出来,则进行下一次的回调,如此循环,直到解析识别出二维码为止。同时使摄像头进行自动对焦来解决由二维码的大小不同,显示的模糊程度不同等原因,而引起的摄像头不能很好的采集图像的问题。当后台解析识别完成后对用户进行提醒,并显示识别出来的结果(即商品信息)。将二维码识别系统分为如下四个部分:图像采集、图像处理、图像定位、数据纠错解码。
(1)图像采集的设计
Android系统提供了相机的应用接口,将手机摄像头与之联系起来。Android提供了相应的相机的调用类。用该类可以设置初始化图像捕捉,能够拍摄图像,开启和关闭图像预览。在使用相机前需要在应用中声明相机权限,来获得访问相机的权限。另外需要声明系统所需要用到的相机功能,如自动对焦等。
(2)图像预处理设计
由于二维码解码计算不能够直接使用智能手机摄像头采集到的图像,而是需要经过必要的图像预处理,使得图像信息达到适合解码的程度,与此同时同时应该解决图像噪声、光照不均等问题,从而减少对系统解码的干扰。本系统主要采用了图像灰度化、图像二值化和图像去噪的图像预处理方法。
(3)图像定位与校正的设计
智能手机摄像头采集得到的图像会因为外界的干扰而导致采集到的二维码图像变形,使得图像不能满足处理要求。本系统采用图像校正和图像定位的方法进行处理,对图像进行一些初步处理,使其恢复成可以处理的图像。用图像定位的方法来获取二维码图像的四个顶点坐标,通过图像校正将原图像映射到规则的正方形图形中。
(4)数据纠错解码的设计
识别解码系统首先要确定二维码的解码尺寸,通过从校正过的图像中计算出二维码的版本信息和格式。其次根据二维码的版本和格式,建立采样模块,利用相应的方法建立采样模块,帮助系统更便捷的获取二维码各部分的信息,方便解码计算。将解码完成的各字段,按照顺序排列并输出,从而完成解码过程。
二、识别系统的实现
二维码识别的实现
通过对二维码图形的采集、识别、预处理、矫正和纠错等一系列行为的解码处理。将捕获的图形转换成数据格式。通过调用第三方库,将二维码图片作为参数,调用decode方法即能得到解析出来的字符串数据,最后对字符串数据已经设定的信息类型标准进行比较判断是哪种信息格式再给用户对应的操作。
1.图像采集模块的设计
图像采集模块由前端CMOS图像传感器和后端图像信号处理器共同组成。前端CMOS图像传感器将采集到的模拟图像信号进行模数(AD)转换后通过符合SMIA标准的接口传输到后端图像信号处理器。后端图像信号处理器同样通过SMIA接口对前端CMOS图像传感器进行控制并对接收到的图像信号进行一定的处理,最后通过CAMIF将数字图像信号传递给核心控制单元。
2.图像预处理模块设计
图像预处理是使二维码被准确识别关键的一步。首先我们需要将图片进行图像灰度化处理,然后进行二值化,采集的图像是编码在RGB空间里形成一个三维矩阵的,当R=G=B时就是此点像素的灰度值,常见的灰度化处理方法有:最大值法、平均值法和加权平均值法。根据人眼对颜色的敏感度,我们采用加权平均值法对图像进行灰度化处理。接着我们采用Bemsen算法进行图像二值化处理,Bemsen算法以图像中任意一个像素为中心,在其邻域内找出最大的和最小的灰度值,以两者的平均值作为该像素的阈值,然后对此像素进行二值化。可以解决光照不均带来的图像空白丢失的问题。最后为解决由于QR码存在孤立点噪音、边沿毛刺等变形问题,我们对QR码图像进行图像滤波,对目标图像产生的噪声进行抑制。我们采用中值滤波的算法,在消除噪声的同时可以较好的保留图像边缘信息,使图像产生较少的模糊。以每个像素点为中心,取邻域,对邻域内的所有像素点进行排序,选择中间的那个值作为该像素点的灰度值。 3.图像定位与校正
图像定位采用Hough变换基本原理:利用图像二维空间和hough参数极坐标空间的点-线对偶关,能够获得四条外围直线,从而实现对QR码的定位。我们通过探测QR码定位模块来实现二维码的定位问题,系统把图像检测问题从二维空间转换到极坐标参数空间,把在二维空间中对x轴和y轴两个方面的图像扫描转换成在极坐标空间下的图像扫描。将得到的结果再进行简单的累加统计,通过在hough参数空间寻找累加器最大值的方法来检测二维空间中图像的直线。Hough变换的优点是:受噪声和曲线间断的影响较小,对于形状为正方形的QR码,尤其具有一定的优势。本文对图像进行几何校正采用了双线性变换法,利用图像定位中获得的二维码图像的四个顶点坐标,以及通过图像校正后映射到新坐标的四个顶点坐标组成两个线性方程组,求得其变换参数,从而实现对图像校正。
4.数据纠错解码模块的设计
QR二维码通过采用Reed-Solomon纠错码的纠错方法来保证网络传输或者解码过程中数据的完整性。RS纠错码是一种非二进制的BCH码,能够纠正每个码字最多达16个Red-Solomon编码错误。译码模块流程为:对格式信息译码;对版本信息译码,各模式下的数据译码。QR解码过程是编码过程的逆过程,数字模式的解码过程如下:(1)首先得到数字个数n(即得到5-15位的数据);(2)取10位数据流,转换成10进制得到3个数字;(3)若n=2,取接下来的7为数据流,转换成10进制得到2个数字,若n=1,取接下来的4为数据流,转换成10进制得到1个数字。数字解码后得到的有多种信息,如:链接地址、后台应用程序、产品信息显示等。
三、结语
本文设计并实现了基于Android智能手机二维码识别系统。考虑到智能手机存在的利弊和不足,同时结合了先进的智能手机应用和现代软件工程理论,二维码作为物联网产业中的一个环节,因为其可以存储大量信息和数据,同时保密性能好,与智能手机等移动终端能够很好地相结合,增强了与用户之间的互动性,用户体验效果好。二维码的成本较低,形成了自己独有的优势,具有更好地应用前景。
参考文献:
[1]王文豪,张亚红,全银,等.QRCode二维条码的图形识别技术[J].计算机技术与发展,2009,8(2):40-43.
[2]马鸣,李海波.基于Android的二维码的生成与识别系统的设计与实现[J].电脑知识与技术,2012,8(16):6353-6356.
[3]徐玲,蒋欣志,张杰.手机二维码识别系统的设计与实现[J].计算机应用,2012,32(5):1474-1476.