二维码生成与识别系统设计毕业论文
2020-04-10 16:15:16
摘 要
在IT技术和多媒体技术高速发达的今天,人们对信息的传输载体要求不断提高。
一维条形码作为最早的条码技术,广泛应用于商业、邮政、工业生产等领域。但随着近年来移动设备的流行,一维条形码由于其低下的数据容量和便携性的不足,已不能满足需要。在这样的背景下,人们提出了具有双向数据存贮能力的二维码。二维码的出现不仅大幅度提高了数据容量还拓宽了编码范围,使得汉字编码变为现实。
本文在分析和研究二维码的原理后,决定以快速响应矩阵码为研究重点对象,并在此基础上构建并实现了一个基于Java的二维码生成与识别系统,完成了系统界面和功能的编程实现,最后对系统进行测试。
本文主要完成了以下工作:
(1)介绍了本论文的选题背景和国内国外研究现状以及详细地介绍了准备工作和论文的行文结构。
(2)对二维码进行了概述,重点叙述了QR码的基本结构、编码原理及其算法实现。
(3) 介绍了解码前用到的图像预处理的相关技术、解码的基本原理及其算法实现。
(4)对系统进行需求分析及可行性分析,并详细地设计了二维码生成与识别系统的架构。
(5)对最终的系统进行了系统测试及效果分析,最后则是总结了本文所做的工作和对二维码发展前景的展望。
关键词:条形码;QR码;编码;解码;Java
Abstract
Today, with the rapid development of IT and multimedia technologies, people are increasingly demanding information transmission carriers.
One-dimensional bar code as the earliest bar code technology, widely used in commercial, postal, industrial production and other fields. However, with the popularity of mobile devices in recent years, one-dimensional bar codes cannot meet their needs because of their low data capacity and portability. In this context, people have proposed two-dimensional codes with two-way data storage capabilities. The emergence of two-dimensional codes has not only greatly increased the data capacity but also broadened the coding range, making Chinese character coding a reality.
After analyzing and studying the principle of two-dimension code, this paper decided to use fast response matrix code as the research object, and built and implemented a Java-based two-dimensional code generation and recognition system based on this, and completed the system interface and function. The programming is implemented and the system is finally tested.
This article mainly completed the following work:
(1) Introduced the background of this topic and the research status at home and abroad, and introduced the preparation structure of the paper in detail.
(2) Overview of two-dimensional codes, focusing on the basic structure of the QR code, the encoding principle and its algorithm implementation
(3) Introduce the related technologies of image pre-processing used before decoding, the basic principles of decoding and their algorithm implementation
(4) Demand analysis and feasibility analysis of the system, and detailed design of the architecture of the two-dimensional code generation and identification system
(5) The final system was tested systematically and its effects were analyzed. Finally, the work done in this paper and the prospects for the development of the two-dimensional code are summarized.
Keywords: Bar code, QR code, encoding, decoding, Java
目 录
第1章 绪论 1
1.1论文选题背景及意义 1
1.2国内外研究现状 1
1.3本选题研究的主要内容 2
第2章 QR二维码的编码 3
2.1 QR码的基本机构 3
2.2 QR码的编码原理 5
2.2.1 QR码的版本与纠错等级 5
2.2.2 QR码的编码模式 5
2.2.3 QR码编码流程 6
2.2.4 QR码的纠错编码 7
2.3 QR码编码的算法实现 8
2.3.1 数据分析与模式选择 8
2.3.2 数据编码及纠错编码 9
2.3.3 构造最终序列 10
2.3.4 选择掩模 11
2.3.5版本和格式信息 12
2.4 本章小结 12
第3章 QR二维码的解码 13
3.1 QR码的图像预处理技术 13
3.1.1灰度化 13
3.1.2中值滤波 14
3.1.3二值化 15
3.1.4边缘提取 16
3.1.5 Hough变换 17
3.1.6 旋转与校正 18
3.2 QR码的解码过程 18
3.3 QR码译码算法及实现 20
3.4本章小结 21
第4章 系统需求分析及概要设计 22
4.1系统需求分析 22
4.1.1 系统总体目标 22
4.1.2 系统可行性分析 22
4.1.3 系统功能性需求 22
4.1.4 系统非功能性需求 23
4.1.5 系统开发环境及工具 23
4.2 系统概要设计 23
4.3本章小结 24
第5章:系统详细设计与实现 25
5.1系统实现相关技术 25
5.2 系统详细功能设计 25
5.3 系统功能实现 26
5.3.1 编码模块用户界面 26
5.3.2 编码模块实现 28
5.3.3 解码模块用户界面 30
5.3.4 解码模块实现 31
5.4 系统测试与性能分析 32
5.5本章小结 34
第6章 总结与展望 35
6.1 总结 35
6.2展望 35
参考文献 37
致谢 38
第1章 绪论
1.1论文选题背景及意义
条码技术是随着计算机科学与信息处理技术的快速发展而不断发展的自动识别技术。早期的一维条码技术在上世纪七八十年代被广泛运用在媒体、物流、医疗、商品标识等各个领域。一维码的出现大大方便了日常生活,其输入速度快、识别准度高,但随着IT技术的快速发展,需要携带的信息越来越多,其只能表示字母及数字、容量小、密度小,缺乏纠错能力等缺点逐渐暴露出来。为了迎合信息社会快速发展的需要,解决一维码的不足,人们提出了一种新型的信息存贮、传递、识别技术——二维码。二维码密度高、信息容量大、纠错能力强、可加密并且能表示汉字,再加上智能手机的普及,二维码逐渐引起重视,在许多领域都得到了广泛应用,比如在物流、媒体、移动互联网、物联网等领域。
QR二维码是目前民用领域最为流行的二维码,也是二维码家族中非常经典的一员。因此本文重点叙述了对QR二维码相关技术的研究和设计并实现QR二维码生成与识别系统,希望为我们国家自主研究自己的二维码技术提供自己一份小小的力量。
1.2国内外研究现状
国外最早于上世纪八十年代开始研究二维码技术,它所表达的信息蕴含在其黑白图形在平面交替排列的规律之中,编码时使用二位元码来表示相应的几何图形,因为其可以在两个方向上同时表达信息,所以在表达同样信息量的信息时其需要的面积比一维条形码小得多。
二维码已制定出多种码制,常见的有QR码、四一七码、Code One等。相关行业的委员会也制定了QR码的国际标准,起草了Code 16K、四一七码等二维码的ISO/IEC标准草案[1]。1994年日本公司研究出的QR二维码是第一种可以对汉字进行编码的二维码。
我国最早于上世纪九十年代早期开始研究二维码技术,中国物品编码中心对快速响应矩阵码、数据矩阵码、四一七码等几种常见二维码的技术标准进行了研究与翻译。在此基础上,我国还制订了两个国家标准,九七年的《四一七条码》和两千年的《快速响应矩阵码》[2][3]。进而推动了我国独立研制出自己的二维码。2005年,中国物品编制中心组织自主研制出拥有完全自主知识产权的汉信码,并发布了汉信码标准。二维码技术的身影已经在我国的物流、互联网和多媒体行业等多个行业随处可见。
1.3本选题研究的主要内容
在开始撰写本论文前本人查找并阅读了大量二维码技术的相关论文,对二维码技术及应用有了深入的了解,掌握了QR二维码的编解码理论和编码流程。与此同时,为了二维码生成与识别系统的编程实现,本人提前学习了JAVA语言,搭建了eclipse JDK的开发环境并学习了很多相关实例。通过几个月的持续学习和思考,实现了基于Java的QR二维码生成与识别系统并撰写了本论文。
以下是论文的主要研究内容:
(1)按照JAVA语言的编程规范,借助谷歌开源的ZXing库,实现了二维码的生成,二维码携带的信息类型包括数字、字母、常用符号及汉字等
(2)介绍了QR码的基本结构,重点研究了QR码的信息编码技术及实现算法
(3) 研究扫描解码前用到的图像预处理的相关技术,解码的原理及关键部分算法
(4)在完成系统的设计实现后,设计实验完成了对系统有效性和可靠性的验证。
论文的各章安排如下:
第1章:本章为绪论,主要是介绍了论文的背景及二维码技术的国内外研究现状,及简要叙述了本文的行文结构和内容。
第2章:本章详细阐述了QR二维码的编码,介绍了其基本结构、编码原理及相关算法。
第3章:本章详细阐述了二维码解码,先介绍解码前的图像处理相关技术,主要包括图像预处理、定位、图像校正,然后阐述了QR码的解码流程及相关算法。
第4章:本章是进行了对系统的需求分析及概要设计,给出了系统总体目标、可行性分析及系统的概要设计
第5章:本章是进行了对系统的详细设计实现以及效果分析,主要是给出了系统的详细设计以及各部分的实现方法,最后对完成的系统进行了系统测试。
第6章:本章是总结与展望,总结了本文所做的工作,提出了设计QR二维码生成与识别系统中的不足之处以及下一步的研究方向。
第2章 QR二维码的编码
2.1 QR码的基本机构
二维码分为矩阵式二维码和行排式二维码两种。矩阵式二维码是由黑、白方块构成的矩阵,在矩阵中黑白方块分别表示计算机能直接识别的“1”和“0”;堆积式二维码以一维条码为原型,按需堆积而成,堆积的行数根据需求决定,不过其排列规则不同与一维码[4]。
矩阵式二维码,顾名思义是以矩阵的形式构建而成,通过在矩阵中黑白方形像素块的排列规则来表示所需要传达的信息。常见的矩阵式二维码有QR 码、DM码、汉信码等[5]。
行排式二维码,别名为堆叠式二维码,其编码原理类似于但又不完全相同于一维条形码,按需堆积成多行,其暂还不具有纠错能力[6]。有代表性的行排式二维码包括四一七码、CODE 49等。
QR二维码目前使用场景随处可见,是最为典型的二维码,因此本文以QR二维码作为讨论对象。常见QR二维码形状如下图:
图2.1 常见QR二维码图
QR二维码又称快速响应矩阵码,是一种矩阵式二维码,它在二维方向上都存贮了信息。QR二维码具有信息容量大、编码范围广、错误修正水平强、全方位识别、可加密等特点,这使得QR码在东亚以及欧美快速发展,直至目前QR码已经是二维码家族中最为流行的一员。QR码的基本结构见图2.2。
图2.2 QR码基本结构图
(1)位置探测图形
在二维码图形的右上区域、左上区域和左下区域各有一个“回”字型的的图形符号,我们称之为位置探测图形。最外面的黑色方块边长为7,中间的白色方块边长为5,最里面的黑色方块边长为3,因此方块宽度比为1:1:3:1:1,以黑白间隔排列。在二维码的其他区域几乎不可能找到这样比列构成的模块,因此当识别到该类型时便可确定是位置探测符,即可确定二维码的边界。
(2)位置探测图形分隔符
围绕着位置探测图的一单位宽的白条是探测图像分隔符,用于分隔位置探测图形和编码区域。
(3)定位图形
在两个位置探测图形之间横纵方向上各有一条一个模块宽的黑白相间的条状区域称之为定位图形,用来确定二维码图形中像素块的坐标。
(4)校正图形
校正图形可看成由5x5大小的黑色模块、3x3白色模块及中间的一单位宽黑色模块组成的重叠同心正方形构成,数量随版本变化,版本越高数量越多。校正图形主要作用是对不规则的图形失真进行校正。
(5)编码区域
编码区域包括格式和版本信息、数字和纠错码字。二维码表示的数据大小跟版本号有关。
(6)格式信息
格式信息包含纠错水平等级和掩模图形等信息,会出现两次,目的是提供冗余信息,由5个数据位和10个纠错位构成。
(7)版本信息
版本信息分布在条码的两个特定位置,在译码时非常重要,故会出现两次来提供冗余的信息。18位的版本信息中前六位是数据位,剩余的纠错位由BCH(18,6)计算得到。
(8)空白区域
空白区域由二维码符号外面的4单位宽的白色区域构成。
2.2 QR码的编码原理
2.2.1 QR码的版本与纠错等级
QR二维码共40个版本,最高的版本信息容量高达3706码字。从版本1(边长为21)到版本40(边长为177),相邻版本之间增加4模块[7]。
QR二维码有4个纠错等级,错误修正水平分别为7%(L)、15%(M)、25%(Q)、30%(H)。
纠错码字的位数随纠错等级变化,错误修正水平要求越高纠错码字占据的位数越多,剩余可用于编码信息的位数自然变少,故对同版本的二维码来说,提高纠错能力就代表要减少其携带的信息。
表2.1列出版本1所容纳的信息容量:
表2.1 QR码版本1信息容量
| 数字 | 字母数字 | 8位字节 | 日本汉字 | 中国汉字 |
L | 41 | 25 | 17 | 10 | 10 |
M | 34 | 20 | 14 | 8 | 8 |
Q | 27 | 16 | 11 | 7 | 7 |
H | 17 | 10 | 7 | 4 | 4 |
例如版本号为1、纠错等级为M的二维码能容纳11个8位字节字符、7个日本汉字、7个中国汉字。
2.2.2 QR码的编码模式
QR码的编码模式主要有数字模式、混合模式、字母数字模式、8位字节模式和汉字模式,还包括扩充解释模式。每个模式把字符转换成数据位流后都要在前面添加模式指示符和字符计数指示符[8]。
(1)数字模式(指示符0001)
每3个数字划分为一组,用10位二进制数表示。若最后还剩不到三位时,剩余1位则用4bit表示,剩余2位则用7bit表示。
(2)字母数字模式(指示符0010)
包括数字0~9,大小写字母及常用指示符,两个一组用11bit表示,若还剩余一位则表示成6bit数据。
(3)混合模式(指示符1101)
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: