二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx

上传人:b****5 文档编号:19204620 上传时间:2023-01-04 格式:DOCX 页数:42 大小:2.50MB
下载 相关 举报
二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx_第1页
第1页 / 共42页
二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx_第2页
第2页 / 共42页
二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx_第3页
第3页 / 共42页
二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx_第4页
第4页 / 共42页
二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx

《二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx》由会员分享,可在线阅读,更多相关《二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx(42页珍藏版)》请在冰豆网上搜索。

二维码生成与识别系统的设计与实现二维码的解码器文档格式.docx

1.1研究背景与意义

一维条码是由一组粗细不同,黑白相同的,条,空及相对应的字符(数字字母)组成的条形符号,只是在一个方向(一般是水平方向)表达信息,在垂直方向不表达任何信息,其一定的高度一般是为了便于阅读器的对准。

但是一维条形码存储的数据容量较小(30个字符左右),只能包含字母和数字,条码尺寸较大(空间利用率很低)并且一旦损坏就不能识别。

二维条形码是在一维条形码的基础上发展起来的,是用某种特定的几何图形按一定的规律在平面上分布的条,空相见的图形来记录数据符号信息,克服了一维码的缺点。

并且由于二维码的信息密度高,存储量大,纠错能力强,而且其本身具有一定的防伪功能而得到迅速发展。

国外的二维码技术已经处于应用阶段,并且已研制了性能较好的二维码识别系统。

而我国虽也研制出了用于识别二维码的系统,但和国外相比还是有一定的差距的。

由于二维码这种新兴的自动识别技术有其他自动识别技术无法比拟的优势,它一出现就受到的很高的重视。

本文研究的解码技术主要针对的是QR码。

QR码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它除具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点外,还具有如下主要特点:

普通的一维条码只能在横向位置表示大约 

20 

为的字母或数字信息,无纠错功能,使用时候需要后台数据库的支持,而二维条码是横向纵向都存有信息,可以放入字母、数字、汉字、照片、指纹等大量信息,相当一个可移动的数据库。

如果用一维条码与二维条码表示同样的信息,QR 

二维码占用的空间只是条码1/11 

的面积。

二维码已广泛应用与社会的各个系统,如商品信息获取,网站跳转,广告推送,手机电商,防伪追溯,优惠促销,会员管理,手机支付等,因此研究二维码的识别系统具有很重要的意义。

1.2二维码识别技术的当前研究现状

二维码的识别系统主要包括两类:

专用二维码扫描器和安装有二维码解码软件的智能平台.下面主要介绍基于软件的二维码识别的发展现状。

二维码扫描器的生产商主要有ARGOX公司Symbol讯宝公司(2004年被摩托罗拉公司收购)CIPherlab公司以及国内的福建新大陆公司ARGOX公司的AS一950影像式二维码扫描器具备绿光指引功能。

快拍(QuickMark)二维码是目前移动终端上最快的一维码二维码解码软件之一,支持Apple105AndroidWindowsphone和symbian560四种智能手机平台,具有快速识别自动解码等功能并针对互联网应用,增加一维码产品信息查询联网搜索信息二维码生成分享网址URL直接访问等功能。

我查查是一款基于图形传感器和移动互联网的商品条形码比价的生活实用类手机应用。

条码扫描支持一维EAN码、QR码(二维码)、二维WEPC码和快递单号(code128码)等。

通过我查查,照一照商品条码,哪家店有卖、售价多少、店家的电话地址、营业时间、网址等等信息,马上会显示在手机屏幕上。

QR扫描器为iPhone及iPodTouch而设的一个便携式QR码扫描器。

快速及有效的实时自动检测模式。

有以下特点-实时扫描模式-通过电邮、FaceBook或Twitter分享出去-综合网页浏览器-综合地图浏览-新的界面设计-创建属于您的QR码-MECARD支持-网膜图形-用电邮发送扫描的照片。

此外,微信、QQ也有二维码解码功能。

二维码解码软件的实现依赖于二维码解码算法,但是二维码解码算法过程复杂,而且使用的相关技术繁多,所以目前的解码算法的研究主要是对解码算法过程中关键技术的研究。

二维码扫描器采用硬件解码,具有识别效率高可识别多种二维码适应能力强等优点,但是技术封闭且价格昂贵;

而二维码解码软件采用软件解码,具有成本低技术开放等优点,但是识别效率一般,对运行平台要求较高,而且目前仅能识别QR码。

此外,可以通过对二维码进行改造来提高识别效率MicrosoftTag,即彩色条码可以利用较低的分辨率条码图像来提供较高的数据容量,与传统二维码相比,彩色条码降低了对采集图像分辨率的需求。

AnkitMohan等结合光学原理和二维码技术,设计了一种新的载体形式,取名为Bokode,基本原理为在二维码上添加透镜(或者是具有小孔的隔光片),实现对Bokode的远距离识别。

1.3研究内容

本文主要围绕二维码的解码的关键技术进行研究,主要研究基于图像处理的二维码解码关键技术。

主要介绍了图像预处理,二维码定位技术以及数据译码过程中的关键算法。

并在此基础上详细设计了基于图像处理的QR码解码算法,主要对二维码的二值化算法和QR码定位算法进行改进。

本文的主要工作包括:

分析基于图像处理的二维码解码算法中的关键技术;

详细设计基于图像处理的QR码解码算法,对二维码图像的二值化算法和QR码定位算法进行改进。

1.4论文组织结构

本文一共分为六章,各章的大致内容如下:

第一章,绪论。

本章首先介绍了本文课题的背景和意义,然后介绍了二维码识别的研究现状。

最后介绍本文的研究内容和组织结构。

第二章,二维码的编码规则。

本章主要从QRCode的数据编码,数据纠错,和图像掩码三个方面介绍QRCode。

第三章,二维码识别系统的总体框架。

本章主要介绍了二维码识别系统的目标,功能需求,总体流程和开发条件。

第四章,二维码图像预处理模块的设计和实现。

本章主要介绍了二维码图像的灰度化,图像的去噪和图像的二值化。

并对二值化算法进行了改进。

第五章,二维码解码模块的设计与实现。

本章在第四章的基础上进行解码。

主要介绍了二维码的定位算法,二维码格式信息和版本信息的实现方法,二维码模块的采样方法。

二维码解码信息的设计与实现。

第六章,系统的调试,运行和测试。

本章主要介绍设计本系统遇到的问题和功能测试。

第2章QR码编码规则

2.1QR码符号结构

每个QR码由名义上的正方形模块构成,组成正方形阵列,它由编码区域和包括寻像图形、分隔符、定位图形在内的功能图形组成,功能图形不能用于数据编码。

符号的四周由空区包围。

如图2.1所示。

图2.1QR码符号结构

(1)符号版本和规格

QR码符号共有40种规格,分别是版本l搬本40,版本1的规格为21x21个模块,版本2为25x25模块。

以此类推,版本N的规格每行每列为21+4(N一1)个模块。

(2)寻像圈形

寻像图形包括3个位置相同的位置探测图形,分别位于符号的左上角、右上角、和左下角,如图2-1所示。

每个位置探测图形可以看作是由3个重叠的同心的正方形组成,他们分别为7×

7个深色模块、5x5个浅色模块、3X3个深色模块。

位置探测图形的模块宽度比为1:

1:

3:

l。

符号中其它地方遇到类似图形的可能性极小。

因此,识别组成寻像图形的3个位置探测图形,可以明确地确定视场中符号的位置和方向。

(3)分隔符

每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,如图2-1所示。

全部由浅色模块组成。

(4)定位图形

定位图形是垂直和水平方向一个模块宽的一列和一行,由深色浅色模块交替组成,其开始和结尾都是深色模块,如图2-1所示。

(5)校正图形

每个校正图形可看作是3个重叠的同心正方形,由5×

5个深色模块、3×

3个浅色模块以及位于中心的一个深色模块组成。

校正图形的数量由QV,码的版本号决定,版本2及以上的符号均有校正图形。

(6)编码区域

编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。

(7)空白区

空白区为环绕在符号四周的4个模块宽的区域,其反射率与浅色模块相同。

2.2QR码编码方法

国家质量技术监督局发布的QR码标准中编码步骤如图2.2所示

图2.2QR码编码步骤

1.数据编码

将输入的数据转换为一个位流,如果ECI是缺省的,那么一个数据流将包括模式指示符、字符计数指示符、数据,最后以4位终止符0000表示。

其结构如图2.3所示。

图2.4定义了每个模式的模式指示符,图2.5定义了采用不同版本的字符计数指示符的长度。

下面介绍几种常用的编码模式。

图2.3数据编码结构

图2.4模式指示符

图2.5字符计数指示符

(1)数字模式

数字模式下,将输入的数据每三位分为一组转化为10位二进制数,剩余位转化为7位或4位二进制数。

最后将二进制数据连接起来并在前面加上模式指示符和数字计数指示符。

(2)字母模式

在字母模式下,将输入的数据以两个字符为一组,将前面字符的值乘以45与第二个字符的值相加,结果转化为11位二进制数,若剩余一位,则将其转化为6位二进制数。

最后将二进制数据连接并在前面加上模式指示符和数字计数指示符。

(3)8位字节模式

在8位字节模式模式下,直接将二进制数连接起来并在前面加上模式指示符和字符指示符。

(4)中国汉字模式

在中国汉字模式下,每个汉字符由两个字节表示,字符值为GB2312图形字符的内码值。

将数据字符两个字节为一组转化为13位二进制数,然后二进制数连接起来并在前面加上模式指示符和字符指示符。

2.纠错编码

QR码采用纠错算法生成一系列纠错码字,添加在数据码字序列后面,使得符号在遇到损坏时不致丢失数据。

纠错共有4个纠错等级,分别是:

L级纠错容量:

7%;

M级纠错容量:

15%;

Q级纠错容量:

25%;

H级纠错容量30%。

3.掩膜

掩模的目的是均衡地安排深色与浅色模块,以及尽可能地避免位置探测图形的位图101l101出现在符号的其他区域。

掩模不用于功能图形,用多个矩阵图形连续地对已知的编码区域的模块图形(格式信息和版本信息除外)进行XOR操作。

对不同掩模图形的结果计分,选择得分最低的掩模方案。

第3章二维码识别系统的总体框架

3.1二维码识别系统的目标

QR码的主要应用的项目可分成四类:

1.自动化文字传输:

通常应用在文字的传输,利用快速方便的模式,让人可以轻松输入如地址、电话号码、行事历等,进行名片、进程数据等的快速交换。

2.数字内容下载:

通常应用在电信公司游戏及影音的下载,在帐单中打印相关的QR码信息供消费者下载,消费者通过QR码的解码,就能轻易连接到下载的网页,下载需要的数字内容。

3.网址快速链接:

以提供用户进行网址快速链接、电话快速调用等。

4.身分鉴别与商务交易:

许多公司现在正在推行QR码防伪机制,利用商品提供的QR码链接至交易网站,付款完成后系统发回QR码当成购买身分鉴别,应用于购买票券、贩卖机等。

在消费者端,也开始有企业提供了商品品牌确认的服务,通过QR码链接至统一验证中心,去核对商品数据是否正确,并提供生产履历供消费者查询,消费者能够更明白商品的信息,除了能够杜绝仿冒品,对消费者的购物更是多了一层保护。

3.2二维码识别系统的功能需求

本系统是实现二维码的编码与译码。

首先根据二维码的编码规则生成二维码,然后采集二维码,将采集的二维码图像郊游解码器进行解码。

二维码可以包含许多信息,最常见的是一些产品信息。

当然还可以包含一个链接地址;

一个短信内容;

一个后台应用程序等。

本解码器主要实现下面几个功能:

1.显示产品信息

如果二维码包含的是这一类信息,就直接显示出来。

2.跳转链接地址

如果二维码的信息是一个链接地址,那么本软件就调用相应的浏览器去打开这个链接地址。

3.发送短信

如果二维码的信息是一跳短信息,那么本软件就调用发短信的程序去发送这个短信。

系统的功能需求流程图如3.1下所示。

图3.1系统功能图

3.3二维码解码功能的设计

3.3.1二维码识别系统总体流程实现规划

二维码识别系统模块之间以及系统总体算法的实现规划,各模块之间以及系统总体算法的流程,如图3.2所示。

图3.2二维码识别系统框架图

首先对拍摄的图像进行图像预处理,预处理的步骤将在下一小节介绍。

然后对预处理的图像根据二维码探测图形的特点进行定位。

定位之后对图像进行旋转校正得到方形的二维码图像。

根据二维码的四个坐标对二维码进行模块采集得到二维码的数据流。

然后根据相应的纠错算法进行纠错,纠错之后就可进行译码。

3.3.2图像预处理模块流程

图像预处理如图3.3,步骤如下:

(1)对采样的图像进行灰度化处理

(2)对步骤一处理的图像进行去噪处理

(3)对步骤二处理的图像二值化处理

图3.3图像预处理流程

3.3.3二维码译码模块流程

译码模块流程如图3.4,步骤如下:

(1)对格式信息译码

根据采集得到的二维码模块得到二维码的信息数据,对格式进行纠错和译码。

(2)对版本信息译码

根据采集得到的二维码黑白模块和版本信息在二维码中的位置得到二维码的版本信息,对版本信息进行纠错和译码。

(3)各模式下的数据译码

根据得到的数据流就可以对二维码进行模式译码。

针对各模式的编码规则对各模式下的二维码数据流尽心数据译码。

图3.4二维码译码模块流程

3.4.软件开发平台

本系统是针对android系统的,所以开发语言必须是java。

由于二维码识别属于图像处理方面的,用到了许多图像处理技术,本系统调用了一些图像处理的第三方jar包。

至于开发平台,本系统选用的是eclipse。

第4章图像预处理模块的设计与实现

二维码图像预处理可以分为3个部分:

彩色图像的灰度化利用中值滤波进行图像平滑以及利用灰度图像二值化技术分割图像。

4.1彩色图像灰度化

实际情况下,通常直接采集到的是彩色图像,每个像素有RGB三个颜色分量,每个颜色分量的取值范围为0到255。

而二维码是以黑白模块构成,而颜色不包含任何信息(这里指的是传统二维码,彩色条码除外),所以首先要对采集到得彩色图像进行灰度化处理,通常采用式4.1进行灰度化处理。

其中Cr,Cg,Cb分别为R,G,B分量的权值,且满足Cr+Cg+Cb=1。

W=Cr*R+Cg*G+Cb*B.(4.1)

但实际上按上述的公式灰度化得到的灰度图像对光照均匀下拍摄的图像效果较好,但对光照不均匀的图像处理效果就不是太好。

本文采用另一种方法灰度化图像。

首先将原始RGB三通道图像分离成HSV图像,然后针对色相,饱和度,亮度进行处理。

将色相控制在紫色区,饱和度控制在中间区,亮度控制在中间区。

消除过亮过暗的区域,消除低饱和度区域。

这样得到的图像效果较好。

如图4.1.1是源图像,图4.1.2是根据公式4.1灰度化结果,图4.1.3是根据分离HVS得到的结果。

图4.1.1原图片图4.1.2式(4.1)得到图像图4.1.3由HVS得到的图像

4.2图像去噪

设备采集到的图像一般都因受到干扰而含有噪声。

条码图像的噪声主要来自两个方面。

首先是条码表面的各种形式的污损,这方面噪声只能凭借条码本身的纠错算法进行纠错。

噪声的另外一个来源是来自光学采集系统,这部分的噪声是满足泊松分布的盐粒噪声,用适当大小的矩形窗口的中值滤波非常适于条码图像。

当然,由于当前各种设备的硬件性能比较好,这方面的噪声还不是很严重,对于OR这样的块状的条码,可以对每一块区域统计黑白点数,确定是黑、白块的时候直接就会去掉了盐粒噪声的影响,但是对于成像质量不是很高,而条码图像本身比较小的情况下(即最小模块宽度没有超过3个象素点),对图像进行滤波去掉噪声就显得比较重要了。

中值滤波是抑制噪声的非线性处理方法。

对于给定的n个数,将它们按大小有序排列。

当n为奇数时,处于中间位置的那个数值称为这n个数的中值。

当n为偶数时,位于中间位置的两个数值的平均值称为这n个数的中值。

中值滤波的方法运算简单,易于实现,而且能较好地保护边界但有时会失掉图像中的细线和小块的目标区域。

邻域的大小决定在多少个数值中求中值,窗口的形状决定在什么样的几何空问中取元素计算中值。

对二维图像,窗口的形状可以是矩形、十字形等,它的中心一般位于被处理点上。

窗口的大小及形状对滤波效果影响很大。

一般是5×

5窗口,过大和过小都会对条码图像产生较大的副作用。

本系统直接调用OpenCV的cvSoomth()函数即可实现。

4.3图像二值化

因为二维码是由黑白模块组成的,本身分割较为明显,所以二维码的图像分割通常采用二值化方法,二值化方法具有速度快,容易实现等优点。

二值化方法是通过选取阈值,然后用阈值来对图像中每个像素进行判断,如果灰度值大于该阈值,则用灰度值的最大值替换该像素值;

相反,若果灰度值小于阈值,则用灰度值的最小值替换该像素值。

二值化算法过程就是求解阈值的过程,根据阈值值选取范围的不同二值化算法又可以分为全局阈值值算法和局部阈值算法。

全局阈值算法是选用唯一且固定的阈值对整幅图像进行二值化处理,当图像的灰度直方图具有明显双峰时全局阂值算法处理结果较好;

局部阈值算法是通过将图像划分为若干局部窗口,然后对每个窗口分别计算阈值并进行二值化处理,局部阈值算法对于复杂图像(亮度不均,有噪声或是背景灰度变化比较大)二值处理效果好,但是增加算的复杂度。

本文采用的是局部阈值进行图像二值化,算法思想是:

将以当前像素为中心的一个邻域内,灰度值的最大值和最小值的平均值做为该像素的阈值,然后用该阈值对当这个像素进行二值化,每个像素的闭值单独计算,所以算法的复杂度较高。

设当前像素坐标为(x,y),邻域窗口选用以当前像素为中心的正方形,正方形边长为2w+1.算法流程如下:

(1)计算图像中各点(x,y)的阈值w(x,y):

(4.1)

(2)对图像中的各像素点(x,y)用w(x,y)的值逐点二值化

全局阈值算法复杂度最小,但是对于图像光照不均时处理效果不好;

局部的阈值算法改进了全局阈值算法对光照不均时的处理效果,但是相应增加了算法复杂度,而且会在分块边缘产生边缘效应;

上述算法对光照不均的图像处理效果最好,但是算法复杂度最大。

下面对上述算法进行比较,其中N为图像的像素个数,W为上述算法的正方形窗口边长。

表4.1二值化算法比较

算法

全局阈值算法

局部阈值算法

光照不均匀处理效果

较差

较好

时间复杂度

O(N)

O(NW^2)

第5章二维码解码模块的设计与实现

5.1二维码解码流程

QR码解码模块的功能架构如图5.1所示。

图5.1QR码解码模块功能架构图

QR码解码过程是编码过程的逆过程,图5.2是该过程的流程。

5.2探测图像识别的设计与实现

5.2.1寻找探测图形

QR条码符号是由一系列的正方形模块构成的一个二维条码阵列,已知QR码探测图形依次以1:

l:

l深浅交替变换,且这种性质在图像变形不是太严重和任意旋转的情况下稳定存在。

本文根据QR码的位置探测图形特点,采用了边缘信息拟合直线的方法得到QR码符号的四个顶点。

假设源

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1