




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 太原理工大学毕业设计(论文)用纸 绪论1.1 论文研究的背景及意义1.1.1 论文研究的背景条形码技术起源于二次大战以后。在40年代后期,美国JoewoodLand工程师就开始研究用条码表示食品项目及相应的自动识别设备,并于1949年获得了环形条码的专利。1970年,美国开始在超市中推广使用UPC码。直到1973年,UCC (美国统一编码协会)实现了UPC码制的标准化并建立UPC条码系统。1974年,美国国防部采用Interme公司推出的39码作为军用条形码码制。由于39码是第一个字母、数字式的条形码,所以被广泛应用于工业领域。1977年,欧洲共同体基于UPC-12码,制定出EAN码,将其用
2、于欧洲物品编码。并正式成立了EAN (欧洲物品编码协会),后来发展为IAN (国际物品编码协会)。条码技术的发源地是在美国,然而应用最广泛的确是在欧洲。条码技术在亚洲的兴起比较晚,相比较而言,日本是亚洲最早使用条码的国家,应用和发展也是最快的。早在1978年,日本加入EAN,然而10年后,日本已成为EAN组织的最大用户。在我国,直到1988年底,成立“中国物品编码中心”。“中国物品编码中心”于1991年7月1日代表中国加入IAN。推动了条码技术开发和推广应用工作的发展。在曰常生活中最常见的是条形一维码,而随着计算机的发展,针对一维码存储容量不足等缺点,产生了二维码,并广泛运用于生活。1.1.2
3、 课题研究的意义目前,很难在实际应用中找到一套比较完善的、适合中国实际需要的二维码应用系统。很多公司在应用二维码系统时,都存在“硬件投入较大、系统过于庞大、系统架构复杂,不适合修改调整或稳定性及实用性不强”等问题。目前,识别二维码的设备基本上采用专用设备,即使采用手持识别设备带来了便捷性,但仍需要专用的计算机设备完成数据采集和处理,这种方式已经成了阻碍二维码应用系统的推广的重要因素。其中本系统的研究意义:1、通过分析二维码编码、解码和纠错步骤,提出适合中国应用的二维码应用系统的架构方案。 2、设计符合实际需求的系统内部功能模块,使该系统的友善度、稳定性、使用度、识别率以及识别速度都达到一个比较
4、不错的水平,适合中国市场。 3、本系统直接将识别系统内置在智能手机进行条码的识别处理,极大地节省系统成本,且由于手机可随时、随地、随身携带,给用户提供极大的便捷性。 4、通过 3G 网络,进行数据传输和数据采集,节省了传统条码识别系统采用专用计算机进行数据处理的开销,使得系统的运行更加方便和有效。5、由于现代社会当中对于手机以及其他电子设备的依赖性,以及二维码信息传递的便捷性,android手机的普及率,还有社会发展的快速性,制作一款简单实用的android app,对于市场以及时代发展都有很重要的意义。1.2 课题主要目的本文讲述了“针对中国汉字编码,将一种符合 QR CODE 标准的二维码
5、软件识别系统,在智能手机上的设计和实现”。该二维码软件系统,在能完成基本采集识别功能的同时,增加了纠错处理、图像矫正、多国语转换、网络传输等功能,满足各种用户的需求。该产品可以应用在多种商务应用中,只要让该系统链接不同的网络服务器就可以实现不同的业务处理,使得其市场使用范围增加。1.3 本系统的开发环境本系统开发环境和工具:开发平台:Microsoft Windows 7 开发环境:eclipse android专版开发工具:android 4.4 SDK 开发语言:java,android 1.4 本课题的主要成果及论文结构1.4.1 主要成果本系统主要是基于zxing二维码扫描系统为基础,
6、设计属于我们自己的二维码识别与生成系统,功能上实现了二维码的生成与解码,并可以在真机上正常运行。功能简单实用。1.4.2 论文的主要结构 本文主要结构是综述,设计总体概述,系统结构详解,成果展示,结论,致谢,外文文献等部分。综述主要内容是介绍国内外二维码发展的现状以及本系统的发展现状;系统的结构主要是配置安卓虚拟机环境,导入zxing二维码识别的源码,配置相关类库,调试,以及修改源码简化zxing类库的整个部分,还有增加二维码生成的部分文件;成果展示是展示本系统完成的结果,以及可以接下来升级下一版本的需求或者功能;致谢,有关对于完成本论文整个部分给予我支持和帮助的工作机构以及个人致以感谢;参考
7、文献是完成本次论文一毕业设计所参考的各种图书和论文等文献资料;外文文献是相关文献的翻译。其中还有有关测试的部分,测试和运维是一个长期的部分,伴随着一个系统的很长时间,据统计一个系统的整个生命周期有80%的时间都是维护,成本也是相当高的,几乎是整个系统预算的一半以上。1.5 本章小结 本章简要描述了本课题研究的目的、意义,以及论文的总体组织。下面会结合系统需求分析提出总体设计。2 相关技术分析2.1 android技术Android是一种以linux为基础的开放源码操作系统,主要用于编写手持设备.目前尚未有统一的中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)的名称.Android草
8、纸系统最初由Andy Rubin 开发,最初主要支持手持设备.2005年由google收购注资,并联合多家制造商组成开发手机联盟开发改良后,逐渐扩展到平板电脑及其他领域上.2010年末数据显示,仅正式推出两年的Android操作系统已经超越称霸十年的诺基亚symbian系统,粤剧最受欢迎的智能手机平台.Android的主要竞争对手是同处于手持设备市场的苹果IOS,微软的WP7以及RIM的Blackberry OS. 2007年11月5日,google与其他33家手机制造商(包括摩托罗拉,HTC,三星,LG)、手机晶片供应商、软硬件供应商、电信业者联合组成的开放手持装置联盟(简称Open Han
9、dset Alliance),发布了名为Android的开放手机软硬件平台。现今,OHA是由65间企业组成的商业联盟,以为移动装置开放自由标准。在Android平台公布一周后,google随即发布了供开发者免费自由下载,能在Windows、Mac OS X、 Linux多平台上使用的Android软件开发工具(Software Development Kit 简称SDK)与相关文件。间隔数天,又在发布作业系统核心(kernel),与部分硬件驱动程式的原始码,充分展示了google欲将手机这个现代人不可或缺的工具推向开放的平台,让开发者可以自由修改创造出符合用户需求的手机应用的决心。2008年9
10、月24日,T-Mobile收地公布第一台Android手机(G1)。同日google放出了Android SDK 1.0 rc1。此版本的推出代表了开发者可以放心的使用API,而不必担心会有太大的变动。2009 年 10 月 26 日,又一个主要版本升级以创纪录的速度放出。这次,大版本升级到了Android 2.1 “Eclair.” 2011年2月3日凌晨,谷歌正式发布了专用于平板电脑的Android 3.0 Honeycomb系统。这是首个基于Android的平板电脑专用操作。首款采用Android3.0系统的是MOTO XOOM 。该机是摩托罗拉移动在2011年1月5日,在美国拉斯维加斯
11、 CES电子消费展推出的旗下首款平板电脑。可以从版本看出android的系统在手机市场以很短的时间迅速崛起。也迅速得到众厂商的认可加盟,最后android 3.0推出很明显的标示的android系统进入MID市场可以看出android将来一段时间的市场主要在手机和平板电脑市场。但是2010年5月19日,在2010 Google I/O大会上Google公司发布了它最新的产品Google TV。Google TV就是要将网络和电视结合在一起,成为一套新的全家娱乐系统。 Android手机可以当作Google tv的遥控器使用。 这说明google将全面进军物联网时代,android可能成为物联网
12、时代的主导系统。 未来Android会进入各行各业,发展前景无限光明。2.2 二维码2.2.1 什么是二维码 二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上) 分布的黑白相间的图形记录数据符号信息的。 在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。 1.堆叠式/行排式二维条码,如,Code 16K、Code 49、PDF417(如下图)等。 图2.1 行排式二维码图2
13、.1 行排式二维码 2.矩阵式二维码,最流行莫过于QR CODE 二维码的名称是相对与一维码来说的,比如以前的条形码就是一个“一维码”,它的优点有:二维码存储的数据量更大;可以包含数字、字符,及中文文本等混合内容;有一定的容错性(在部分损坏以后可以正常读取);空间利用率高等。2.2.2 国外研究发展现状国外对二维码技术的研究开始于二十世纪八十年代。在二维码符号表示技术研究方面,已研制出多种码制,常见的有 PDF417,QR 码,Code 49,Code 16K,Code One 等。这些二维码的密度都比传统的一维条码有了较大的提高。 在二维码设备开发研制、生产各个方面,国外的设备制造商生产的识
14、读设备、符号生成设备,已广泛应用于各类二维码应用系统。二维码作为一种全新的信息存储、传递和识别技术,自诞生之日起就得到了世界上许多国家的关注。2.2.3 国内研究发展现状1993 年,国内开始对二维码技术进行研究。中国物品编码中心对几种常用的二维码 PDF417,QR 码,Data Matrix,Maxi Code,Code 49,Code 16K,Code One的技术规范进行了翻译和跟踪研究。随着我国经济和信息科技技术的不断发展,国内对二维码这一新技术的需求与日俱增。 中国物品编码中心在国家有关部门的大力支持下,对二维要码技术的研究不断深入。在消化国外相关技术资料的基础上,制定了 GB/T
15、 17172-1997四一七条码和 GB/T 18284-2000快速响应矩阵码。为了使二维码技术能够在证照管理 领域得到广泛应用,在国外应用软件平台的基础上,中国物品编码中心率先开发了人像照片和指纹数据压缩软件。 随着时间的推移、互联网的迅猛发展,手机将成为人们获取信息用的必备工具。2010 年,按官方统计数字,中国的手机用户将达到 7.4 亿,我国移动电话用户的庞大规模,为移动增值服务的发展提供了坚实的市场基础。近年来我国移动增值市场年成长率高于 60%,规模不断扩大。与如此大的市场相比移动增值业务种类较少,目前的业务远远满足不了广大消费者的需求,扩大增值业务的覆盖面已经成为当务之急。 鉴
16、于此二维码技术就可在移动增值业务领域中发挥出不可替代的重要作用。2.2.4 国内外发展对比分析对比国内外二维码产品,不难发现:大部分二维码系统,都使用专用识别设备进行数据采集。在这种情况下,要使产品有更广阔的市场,必须在功能的多元化、操作简单、识别速度快、可靠性强等方面做改进。 本产品对传统二维码系统做了以下扩展: 采用智能手机摄像头采集二维码图像,采用摄像模式,可动态连续采集、识别,加快解码速度。 智能手机直接通过 3G 网络,与服务器进行数据交互,无需采用专用计算机与专用条码采集设备进行数据处理。 针对手机摄像头的特性,加入图像矫正算法,提高识别率。2.3 QR码的结构与编码理论2.3.1
17、 什么是QR CODE QR码呈正方形,只有黑白两色。在3个角落,印有较小,像回字的的正方图案。这三个是帮助解码软件定位的图案,使用者不需要对准,无论以任何角度拍摄,内容仍可正确被读取。 日本QR码的标准JISX 0510在1999年1月发布,而其对应的ISO国际标准ISO/IEC18004,在2000年6月获得批准。根据Denso Wave公司的资料,QR码是属于开放式的标准,QR码虽然由Denso Wave公司持有的专利,但不会被执行。QR(Quick-Response) code是被广泛使用的一种二维码,解码速度快。 它可以存储多用类型。 图2.2 QR 码结构图图2.2 QR 码结构图
18、1. 位置探测图形、位置探测图形分隔符:用于对二维码的定位,对每个QR码来说,位置都是固定存在的,只是大小规格会有所差异;这些黑白间隔的矩形块很容易进行图像处理的检测。2. 校正图形:根据尺寸的不同,矫正图形的个数也不同。矫正图形主要用于QR码形状的矫正,尤其是当QR码印刷在不平坦的面上,或者拍照时候发生畸变等。3. 定位图形:这些小的黑白相间的格子就好像坐标轴,在二维码上定义了网格。4. 格式信息:表示该二维码的纠错级别,分为L、M、Q、H;5. 数据区域:使用黑白的二进制网格编码内容。8个格子可以编码一个字节。6. 版本信息:即二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),
19、从21x21(版本1),到177x177(版本40),每一版本符号比前一版本 每边增加4个模块。7. 纠错码字:用于修正二维码损坏带来的错误。2.4 QR码的编码技术1. 数据分析:确定编码的字符类型,按相应的字符集转换成符号字符; 选择纠错等级,在规格一定的条件下,纠错等级越高其真实数据的容量越小。2. 数据编码:将数据字符转换为位流,每8位一个码字,整体构成一个数据的码字序列。其实知道这个数据码字序列就知道了二维码的数据内容。图 2.3 二维码资料容量图 2.3 二维码资料容量图2.4 二维码提示符 图2.4 二维码提示符数据可以按照一种模式进行编码,以便进行更高效的解码,例如:对数据:0
20、1234567编码(版本1-H), 1)分组:012 345 67 2)转成二进制:0120000001100 3450101011001 67 1000011 3)转成序列:0000001100 0101011001 1000011 4)字符数 转成二进制:80000001000 5)加入模式指示符(上图数字)0001:0001 0000001000 0000001100 0101011001 1000011 对于字母、中文、日文等只是分组的方式、模式等内容有所区别。基本方法是一致的3. 纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码
21、字序列后面,成为一个新的序列。在二维码规格和纠错等级确定的情况下,其实它所能容纳的码字总数和纠错码字数也就确定了,比如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。 就是说二维码区域中大约1/3的码字时冗余的。对于这224个纠错码字,它能够纠正112个替代错误(如黑白颠倒)或者224个据读错误(无法读到或者无法译码), 这样纠错容量为:112/346=32.4%4. 构造最终数据信息:在规格确定的条件下,将上面产生的序列按次序放如分块中 按规定把数据分块,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块 按顺序构成一个序列,添加到原先的数据码字序列后面。
22、 如:D1, D12, D23, D35, D2, D13, D24, D36, . D11, D22, D33, D45, D34, D46, E1, E23,E45, E67, E2, E24, E46, E68,.5. 构造矩阵:将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中。把上面的完整序列填充到相应规格的二维码矩阵的区域中6. 掩摸:将掩摸图形用于符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布。 一个算法,不研究了,有兴趣的同学可以继续。7. 格式和版本信息:生成格式和版本信息放入相应区域内。 版本7-40都包含了版本信息,没有版本信息的
23、全为0。二维码上两个位置包含了版本信息,它们是冗余的。 版本信息共18位,6X3的矩阵,其中6位时数据为,如版本号8,数据位的信息时 001000,后面的12位是纠错位。 图 2.5 QR二维码 图 2.5 QR二维码2.5. 本章小结本章主要介绍了本课题所涉及的各项技术,分析了各技术的起源、历史、现状以及发展前景,有些分析比较了国内外相关技术的差距,很有时代与实际意义。3 二维码android手机识别系统设计3.1 需求分析3.1.1 概述 基于无线互联网的发展,为提高智能手机用户输入的便捷性,而进行基于智能手机二维码识别系统的研发,从而提高用户上网效率。为该系统设计提供依据,特做此需求分析
24、。 本章基于智能手机二维码识别系统的可能应用场景,提取并分析出本系统的基本用户需求,确定了本系统的功能性需求和非功能性需求,从而也决定了该系统运行的软、硬件环境,以便下一阶段对本系统进行系统设计。 课题相关信息: 1. 待开发系统名称:基于智能手机二维码识别系统 2. 本项目的任务提出者:项目经理 3. 开发者:基于智能手机二维码识别系统研发组 4. 预期用户:具有智能手机的所有用户 为方便阅读,本课题对相关术语的定义进行描述: 1.二维码:QR code二维码等主流二维编码都可以,利用水平方向和垂直方向图像单元存储数据的图形图像。 2.智能手机:Smart Phone,具有开放接口的、就是一
25、台可以随意安装和卸载应用软件的手机,通过开放接口开发并安装的软件,可以扩展智能手机的功能。 3. 摄像头:Camera。本文所指摄像头皆为智能手机所内置的摄像头。 3.1.2 任务概述 (1)任务目标: 开发本系统目的是为了智能手机用户更加快捷地上网,本系统利用了智能手机所具有的摄像头结合二维码进行网址解析,从而减轻了用户记忆大量网址的记忆量,也节约了用户输入网址的时间。 用户特点: 本系统最终用户使用的智能手机具有摄像头并且建议摄像头分辨率在一百万像素以上最好具有自动对焦功能,微距功能更佳,以便能获取更加清晰的二维码,使得识别成功率增加,缩短识别时间;另外,该用户有上网需求。 (2)运行环境
26、: 本系统客户端,运行在android智能手机设备中,本系统测试手机具体为魅族mx2手机。 假设和依赖: 本系统要正常运行,必须保证对应的网址已经编码成二维条形码、并打印在相关媒介上,所采用的编码格式与本系统解码格式及版本一致,条形码的污损率不能低于相应编码所规定的污损率,否则将会影响解码纠错效果,直接导致降低识别率。另外,使用本系统正确解码上网,必须保证识别二维码的场景光线效果比较好,至少保证二维条码各部分颜色比较均匀,明暗对比度不能太强烈,否则也会影响识别率。使用本系统,需要保证智能手机摄像头分辨率最好在一百万像素以上,最好具备自动对焦或微距功能。使用本系统,必须保证手机具有足够的电量。3
27、.1.3 需求规定 系统的功能需求描述如下表所示:表 3.1 系统功能需求表序号功能点 描述 输入 处理 输出功能 1用户界面 通过本界面实现人机交互用 户 菜 单 操作响应用户操作根 据 用 户 输入 菜 单 命 令做处理 功能 2视频采集 在本系统客户端内具有视频采集功能,完成二维码图像拍摄功能二 维 码 原 始图像将摄像头获取到二维码图像转换成识别模块需要的位图信息 位图信息 功能 3图像处理模块 将视频采集模块采集的二维码图像,进行黑白二值化处理 二 维 码 位 图信息根据 RGB 图转 换 成 灰 度图,然后转换成黑白二值图黑白二值图功能 4图像识别(定位点识别)通过二维码定位点的特
28、征,采用模式识别的方法将二维码从背景图中截取出来黑白二值图 依据QR标准,利用识别算法确定定位点位置与个数,从而判定是否存在对应的二维码,如果存在则将其从背景图中截取其数据识 别 后 处 理后 的 点 阵 数据 功能 5数据解码 将二维码点阵数 据 通 过 处理,解析出其中数据,识别出对应的网址图 形 识 别 部分 确 定 的 定位 点 等 特 征信息按照定位点位置,根据编码标准,获取版本号,从而构建采样网格,从而解析数据内容 编 码 在 二 维码 中 的 网 址信息 功能6二维码生成模块写入数据,然后依据内置算法,生成二维码图像,并分享要生成的字符,网址等内置算法,生成二维码二维码图像系统的
29、外部接口需求包括用户界面、硬件接口、软件接口、通信接口。 用户界面: 为方便用户使用本软件,本系统所采用的用户界面风格简约,符合智能手机用户使用习惯。主界面只包括一个摄像头获取界面,启动后,用户只需要将摄像头对准二维码,即可在主界面直接预览到二维码图片内容,如果解码成功,则直接转到浏览器界面上网;若解码失败,则提示用户重新调整手机摄像头位置,开始重新获取二维码图片内容并重复解析识别。 硬件接口: 本系统需要的硬件主要包括摄像头,安装本软件的智能手机必须内置摄像头,摄像头分辨率必须在一百万像素以上,否则将会延长识别时间、降低识别率,从而影响识别效果 软件接口: 摄像头具有软件接口,操作系统能提供
30、接口,直接从摄像头获取视频或者拍照模式的照片位图信息,方便本系统的客户端应用程序调用。 通信接口: 本系统所在的手机具备上网功能,能支持 Wap 等协议上网。 系统的非功能性需求包括识别率、时间性能要求、输入输出要求。 识别率: 要求识别率越高用户体验越好,如果低于 50%,则用户体验下降。可以采用提高摄像头分辨率,优化图像矫正算法来提高识别率。 时间性能要求: 本系统软件启动:无特殊时间要求,与手机硬件设备相关。 识别结果响应时间:识别成功与失败,都应该控制在 1 秒钟以内。 输入输出要求: (1)输入: 要求被识别的二维码图像尽可能完整,污损率在国标范围内;拍摄识别场景,尽量光线比较好,使
31、得颜色均匀;摄像头分辨率尽量大于一百万像素,能获取 1024768 尺寸图片。 (2)输出: 采用浏览器输出对应网站数据内容,需要手机内置浏览器并可以通过本系统软件启动;输出提示信息简洁明了。3.2 系统设计3.2.1 概述 针对基于智能手机二维码识别系统的需求分析,对系统进行了总体设计和规划,划分了系统架构及功能模块,为后续各个功能模块的设计做好准备。 3.2.2 编写目的 本章根据用户需求分析的结果,从系统全局出发,进行了总体设计,确定了本系统的总体架构,并划分了各个功能实现的具体模块,为后续模块设计和编码实现提供了指导和依据。 3.2.3 定义 (1)模式识别 Pattern Recog
32、nition。计算机运用数学方法来研究模式的自动处理和判读。把环境和客体统统称之为“模式”。计算机技术不断的发展,人们研究复杂的信息处理过程成为了可能。信息处理过程的一个重要形式是生命体对环境及客体的识别。对人类而言,最为重要的是对光学信息和声学信息的识别。这是模式识别的两个重要方面。 (2)图像矫正 Image Correction。通过摄像头获取到的图像,可能与真实图像之间存在一些偏差,对于本系统的二维码而言,主要是产生了形变,本文所指图像矫正,是对通过摄像头获取的二维码进行形状纠正的算法及过程。 3.2.4 总体设计 首先分析了基于智能手机的二维码识别系统的基本操作流程,然后根据本系统的
33、需求分析的结果,进行总体设计。 (1)基本设计概念与处理流程 启动智能手机中安装的本系统时,摄像头获取图像并显示在手机屏幕中部,视点处于屏幕中部,若用户对准了二维条形码,则自动开始进行识别处理,若识别成功并且所含编码为有效的网络地址 URL,则启动手机浏览器连接该网站进行网络浏览;若识别失败或者编码内容无效,则提示用户。 若距离二维条形码较远或者智能手机摄像头镜面和二维条形码所在平面不平行时,可能导致识别失败,则用户需要调整识别角度,重新进行识别。 (2)基本物理对象 从上面的操作需求而已得出本系统需要处理的数据,包括以下两方面。 (3) 二维条形码原始图像 由摄像头获取二维条形码原始图像,并
34、显示在智能手机屏幕上,以便用户进行距离及位置的调整。 (4)二维条形码的几何数据 由于摄像头与二维条形码平面不一定绝对平行,所以拍摄的二维条形码的形状,可能为正方形、菱形或者梯形,距离较远或者二维条形码有污损的情况下,还可能出现拍摄的原始图像为其它形状的情况。 (5)系统层次划分 图3.1 系统层次图3.1 系统层次整个系统共分为 5 层,分别为:物理硬件层、android系统层、图像捕获和处理层、QR Code 解码生成层以及用户界面。(a)物理硬件层 本层是智能手机物理硬件。硬件层,提供了包括支持整个系统所必需的硬件模块,包括:摄像头、网络数据收发装置、手机操作系统运行环境等。 (b)an
35、droid系统层 提供了对底层硬件模块访问的封装,它向上层应用程序提供了访问底层模块的接口和整个系统运行所必需的软件环境。 (c)图像捕获和处理模块层 图像捕获模块,完成对 QR Code 图形的获取,包括通过摄像头拍照和摄像两种方式,并且将所捕获的图形转换成 QR Code 解码层所能处理的数据格式。 网络处理模块,负责将解码后的数据还原后,获取其中的网址,并通过网络协议链接对应网站获取数据。 (d)QR Code 数据解码层 完成对 QR Code 图形的解码操作,包括:图像采集、图像识别、图像预处理、图形矫正、纠错的解码处理,二维码生成。 (e)用户操作界面 为直接面向移动用户的操作界面
36、,用户可以通过界面操作完成对整个系统的控制。 (6)子系统划分 需要从摄像头获取二维码图像数据,但是我们采用的智能手机已经具备摄像头,并且可以利用手机厂商公开在开发包 SDK 中的接口类来获取数据,所以该部分,直接有驱动层和硬件层实现,本系统设计中,不需要做过多处理。 所以本系统主要功能模块划分为三个部分:用户操作界面,图像捕获和网络处理模块层以及数据解码层。 另外,为了用户使用本系统简捷方便,所以用户界面比较简单,用户界面模块显示从摄像头获取到的预览数据,调用图像处理模块进行图像识别处理,成功后,再调用数据解密模块完成二维码图像的解析,最后通过解析出的网址启动手机内置浏览器直接上网。 本系统
37、核心功能模块在于:图像处理模块和数据解码生成模块。 (7)模块功能和处理流程 下表对本系统各个功能模块进行了描述: 表 3.2 系统功能模块表 序号功能点 输入 处理 输出备注 1用户界面 用户菜单 调用其他模块提示信息或解码或生成信息 2图像采集摄像头数据获取摄像头数据转换成位图像素数据位图信息 3图像预处理二维码图像数据矫正处理二维码位图数据 4图像识别(定位点识别)二维码二值化图像数据 根 据 QR标准寻找图像中定位点,将QR 图 从背景图中截取二维码有效区域数据 5核心解码二维码有效区域数据根据定位点和版本信息,依据 QR 标准,构建采样网格 二维码有效数据 6纠错二维码有效数据根据相
38、关算法进行纠错处理编码时输入的信息 7图像分享分享信息调用android虚拟机分享分享 8二维码生成模块要生成的字符,网址等内置算法,生成二维码二维码图像以上模块中,核心算法集中在以下两大模块中: (1)图像处理模块 该模块主要功能是实现将摄像头获取的二维码图像数据,经过图像预处理、定位点识别,识别出所拍摄图像中,是否含有而为码图像。如果含有,则将二维码原图根据三个定位点所围成区域截取出来,将数据发送给数据解码模块进行数据解析。 (2)数据解码模块 该模块接收图像处理模块发送到二维码数据,通过定位点构建采样网格,经过核心解码部分处理后,得到二维码中的编码信息;然后将编码信息经过纠错模块处理,本
39、编码采用的是里德所罗门纠错算法。 功能需求与系统模块的关系 功能功能名称 模块1模块2模块3模块4模块5模块6模块7 模块81用户界面2视频采集3图像处理4图像识别5数据解码6二维码生成表 3.3 功能需求与系统模块关系表因为手机需要手持,所以在识别二维码过程中,手持的智能手机摄像头与二维码所在的平面,不一定保证平行。当两个平面夹角较小的时候,可以通过矫正算法将拍摄的图像进行矫正,但是,如果偏角比较大,拍摄的二维码图像形变比较严重时,即使通过矫正算法,也很难将所有图像矫正并识别成功,所以,这时需要人工将手机角度矫正,尽量保持与二维码所在平面平行。 尚未解决的问题 1. 当手机摄像头与二维码平面
40、夹角过大时,通过现有矫正算法很难矫正,并识别成功; 2. 当待识别的二维码印刷面积过小时,每个模块所占的像素过小,则可能导致识别失败; 3.2.5 运行设计 运行模块组合 本系统所运行的智能手机操作系统是 android,开发平台是魅族mx2,并且具备摄像头。 (1)检测到二维码且成功解码 当用户手持安装有本系统的手机,启动后,即开始进行设想模式的识别和解码,如果检测到被拍摄平面有二维码的定位点,且三个定位点位置符合编码规范的位置关系,则开始进行图像预处理、纠错和解码,解码成功,则启动浏览器访问该二维码中的网站。 (2)检测到二维码且解码失败 当拍摄区域检测到了二维码存在,但是由于角度偏差太大
41、,光线不均匀,或者二维码无损太严重,则都可能导致解码失败,本客户端系统会提示用户调整角度重新拍摄二维码图片。 (3)未检测到二维码 当连续扫描图像无任何定位点存在,或者存在定位点但是个数不为 3 个,或者有三个或多个定位点但是定位点位置关系与标准不相符合,则提示用户调整位置,重新识别。 运行控制 手机用户启动本系统客户端后,通过手机摄像头对准二维码进行识别解码,提供了两种方式进行拍摄解码: 视频摄像模式:该模式可以连续获取图片并进行识别解码。该模式优点在于,可以连续拍摄识别,在较短时间内可以实现多次扫描并识别解码的过程;不足之处在于,摄像模式分辨率往往比拍摄模式要低,而分辨率会降低识别率影响识
42、别效果。拍摄模式:该模式是拍摄静止图像,然后开始解码识别。该模式的优点在于:对于同一款固定机型而言,拍摄模式获取的图片分辨率一般要高于摄像模式所获取的图像分辨率,这样,识别率必定会相应提高;不足在于,拍摄模式获取图像的时间往往比较长,一般在一秒钟甚至更长时间,才能拍摄一张图片,直接导致识别解码整体流程时间延长数倍至数十倍以上,会影响用户体验。所以,一般情况下,可以采用摄像模式进行识别解码,只有当识别不了或者二维码版本过高,印刷像素过小的情况下,才采用拍照模式进行识别解码。 运行时间 启动本系统手机客户端时间:没有特殊时间要求,具体时间,与所安装的手机硬件配置相关。配置越高启动速度越快。 识别解
43、码时间:在光线、水平角度合理的范围内,一般在 100 毫秒左右可以完成一次识别过程。 3.2.6 系统出错处理 出错信息 本软件为了用户操作方便,用户接口很简单,而且大部分解码识别功能都用算法实现,用户决定部分,只限制在摄像头获取到的数据,所以出错提示信息较少。 补救措施 如果客户端运行过程中,图像采集模块需要消耗较多内存,内存大小根据拍摄模式不同而有差异,可能会出现内存不够的情况,此时可以提示用户关掉其他程序,重新启动机器,再尝试识别解码。 3.3 基于android的二维码识别系统概要设计3.3.1 本系统包含模块图3.2 主要模块及其关系系统包含两个模块,分别为二维码的生成模块,二维码的
44、解码模块,如图3.2. 图3.2 主要模块及其关系其中二维码的生成模块单独建立一个类实现,解码部分使用国际上流行的zxing二维码开源代码,由于这部分代码很成熟,而且实现的功能繁多,有好多不太实用,我们基于这个源码进行简化处理,最终实现本系统的主要功能。本系统主要有两个模块,分别是二维码的生成模块,这个模块主要是二维码的生成,以及生成的二维码分享功能.二维码的解码模块是由扫描部分和扫描历史组成,扫描过的二维码都会记录在历史中,如果是有关电话,网站的二维码可以点击拨打电话或者是进入网页浏览信息,下载等,扫描模块借鉴开源代码zxing,这是个很成熟的集成模块,是当今开发与二维码相关app必备的一个
45、模块.3.3.2 系统主要模块 本部分包含部分模块的主要内容。(一) 用户界面模块(1)功能 本模块提供用户操作的接口,主界面是拍摄窗口,显示预览到的二维码图像信息。 (2)性能 在光线正常的情况下,解码成功时间不能太长,拍摄模式在 1 秒钟以内;摄像模式在 100 毫秒以内识别解码完成,如果失败,则继续获取下一帧图片进行识别解码。 (3)输入项目 输入项是手机用户通过用户界面进行的输入,用户界面模块是通过菜单输入选择。 (4)输出项目 主界面显示二维码图像信息。 (5)限制条件 预览和拍摄的速度,取决于手机硬件配置。 (6)测试要点 摄像头对准二维码,能显示预览图片。 其余的相关内容,可以详
46、细的参考论文的其他部分.(二) 图像采集模块(1)功能 图像捕获的主要功能是通过手机摄像头,采集 QR 码图像数据,将图像数据转换成计算机可以识别的二进制数据格式,以便系统对图像进行分析,解码 QR 码的相关信息。图像捕获模块是系统与外部进行数据交互的接口模块。 图像捕获模块可以以两种方式进行工作:手机摄像模式(动态采集)和拍照模式(静态图片捕获)。 手机摄像头数据采集,主要是利用目前智能手机上带有的高清晰拍照摄像头来完成的。在本系统中采用的手机是 Nokia 7610,它的摄像头具有 100 万像素采集功能,但是由于其不支持近距离拍照功能以及不能进行白平衡调整等缺陷,因此对系统的解码功能带来
47、了一定的影响。一般的摄像头都支持两种功能的图像捕获:视频采集模式和拍照模式,本机采用拍照模式。(2)性能 时间:在光线正常的情况下,解码成功时间不能太长,拍摄模式在 1 秒钟以内;摄像模式在 100 毫秒以内识别解码完成,如果失败,则继续获取下一帧图片进行识别解码。(3) 输入项目 拍照模式下支持 4 种分辨率,分别为 1152*864、640*480、320*240 和 160*120。综合考虑解码速度和图像处理量,本系统采用 640*480 模式进行拍照。 (4) 输出项目 视频采集模式和拍摄模式,输出项都转换成了位图对象,便于后续模块进行处理。 (5)限制条件 由于手机硬件配置高低,直接
48、决定了图像采集的速度,所以可以根据本系统所安装的真实手机配置,选择适合的采集模式和分辨率。 (6) 测试要点 分别通过摄像模式、拍照模式采集图像,传送给图像处理模块。首先要判断图像是否能采集成功;另外,要判断图像颜色是否有失真现象。 (三) 图像处理模块 (1)功能 图像处理模块的主要功能是获得图像捕获模块的图像数据,然后针对相应的算法对图像进行预处理操作,包括将彩色图像进行二值化操作,将彩色图像转换为黑白图像,以及完成对 QR 码图形的定位点识别,获得图形的版本信息,构建采样网络对图像进行采样,将图形从以像素为单位转换为以 QR 码符号模块为单位,方便核心解码模块的处理。该模块将摄像头采集的
49、图片进行二值化处理,以便传输给核心解码模块进行解码。 (2) 性能 时间:要求在摄像模式,二值化时间小于 100 毫秒;在拍摄模式,不能超过 1秒钟。 精度:二值化后,不能使得二维码边界模糊,不能让黑白方块颜色区分度降低。 (3)输入项目 图像采集模块所采集的二维码图像位图数据。注意此图像包括了二维码和所在的背景图像。 (4)输出项目 二值化后的二维码图像数据。注意此图像包括了二维码和所在的背景图像。(5)限制条件 必须保证光线基本均匀,否则二值化后,可能导致部分图片不清晰,最终降低识别率。3.3.3 系统流程图图3.3 程序流程图图3.3 程序流程图3.4 导入项目系统的先期工作,首先是将z
50、xing二维码的源码导入系统,然后根据实际的使用情况加以个性化的定制.导入系统,首先打开Eclipse 导入源码中的 Android 项目,然后右击项目选择“Build path” Add External Archives 把核心库 core.jar文件加入到项目中。此时编译一下项目,会发现报错,“ Multiple substitutions specified in non-positional format; did you mean to add the formatted=false attribute?”之类的。打开raw 下的Values 发现错误是在一个上。这里把 “pref
51、erences_custom_product_search_summary” 里的 %s %f 全部都改成 %1$s %1$f(因为我们用不到多国语言,建议只保留默认的Value ,其他全部删除)。原因:由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本messages.In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your
52、 application.“经过以上步骤后项目应该就可以运行了。但是ZXing的HYPERLINK t _blankandroid项目东西太多了,有很多是我们不需要的,得新建另一个项目简化它最终实现程序的开发。3.4.1 简化过程接下来大致介绍一下简化ZXing需要用到各个包、类的职责。CaptureActivity这个是启动Activity 也就是扫描器(如果是第一安装,它还会跳转到帮助界面)。CaptureActivityHandler 解码处理类,负责调用另外的线程进行解码。可以看到在XML里面用到了 ViewfinderView 自定义view 。所以新建一个View 的包,然后把:V
53、iewfinderView 和 ViewfinderResultPointCallback 靠到里面(记得对应修改XML里面的包)。打开 CaptureActivity 覆盖 onCreate 方法:Overridepublicvoid onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);inactivityTimer =new InactivityTimer(this);这里调用到的 CameraManager 类是控制摄像头的包里的类。新建一
54、个camera要是修改正包结构。(整个简化的流程都是如此:“根据错误提示,修改代码”)。 图3.4 CameraManager包文件图3.4 CameraManager包文件在修改的过程中,有很多是关于R 资源的问题,在此将Values 里面的两个xml资源文件拷入项目中:colos.xml 和ids.xml 。 ctrl+b 一下看看error 是不是少了很多。tyHandler(this, decodeFormats,characterSet) 用于进行扫描解码处理。3.4.2 解码原理解码是本系统的核心技术,我们详细的介绍一下本系统的解码原理.其中,上面的步骤主要都是用于对摄像头的控制,
55、而解码的真正工作入口是在CaptureActivityHandler 里面的。新建一个Decoding包把以下文件拷入包中:CaptureActivityHandler、DecodeFormatManager、InactivityTimer、Intents由于我们的包结构和Zxing 项目的有所不同所以需要注意一下类的可访问性同样开始ctrl+B 编译一下,然后开始修正错误。在CaptureActivityHandler 里把 handleMessage 里的部分方法先注释掉如:“decode_succeeded ”分支,这是解码成功时调用 CaptureActivity 展示解码的结果。在D
56、ecodeThread 类里,修改部分涉及Preference配置的代码:功能代码如下:import com.google.zxing.BarcodeFormat;import com.google.zxing.BinaryBitmap;import com.google.zxing.ChecksumException;import com.google.zxing.qrcode.decoder.Decoder;import com.google.zxing.qrcode.detector.Detector;import java.util.Hashtable;/* * 实现可以检测和解码图像
57、中的QR码 */publicclass QRCodeReader implements Reader /* * 定位和解码图像中的QR码 *返回一个String,代表QR码编码的内容 * 如果QR码可以不被发现抛出NotFoundException *抛出FormatException,如果不能被解码的QR代码 *抛出ChecksumException的纠错失败 */public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException return decode
58、(image, null); public Result decode(BinaryBitmap image, Hashtable hints)throws NotFoundException, ChecksumException, FormatException points = detectorResult.getPoints(); Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.QR_CODE);if (decoderResult.
59、getByteSegments() != null) result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, decoderResult.getByteSegments(); publicvoid reset() /待定 /* * 检测条码一个“纯粹”的形象 - 纯黑白图像 * 其中包含只有一个旋转的,unskewed条码,图像与一些白色边框 */publicstatic BitMatrix extractPureBits(BitMatrix image) throws NotFoundException iint leftTopBlack =
60、 image.getTopLeftOnBit();if (leftTopBlack = null) throw NotFoundException.getNotFoundInstance(); int x = leftTopBlack0; int moduleSize = x - leftTopBlack0;if (moduleSize = 0) throw NotFoundException.getNotFoundInstance(); / 发现第一排最右边的黑色模块结束int rowEndOfSymbol = width - 1;while (rowEndOfSymbol x & !ima
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中数学九年级下册统编教案 7.2正弦、正弦(第1课时)
- 乡镇事业编试题及答案
- 物业暗访试题及答案
- 广西名校联盟2024-2025学年高三下学期考前押题联合考试英语试卷(原卷版)
- 安徽省亳州市2025届九年级下学期中考三模数学试卷(含详解)
- 2025年湖北省武汉市中考数学模拟试卷(含部分答案)
- 2025合同范本家政联盟合作协议书
- 2025年中国苏打水饮水系统行业市场前景预测及投资价值评估分析报告
- Pimonidazole-hydrochloride-Standard-生命科学试剂-MCE
- Mc-PEG4-Val-Ala-PAB-Exatecan-生命科学试剂-MCE
- 急救知识试题+参考答案
- 2025年国家知识产权局商标审查协作中心招聘60人高频重点提升(共500题)附带答案详解
- 电力设备交接和预防性试验规程
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 2024年高考政治总复习必修三《政治与法治》 综合测试题及答案
- 2025年注册安全工程师考试道路运输和其他安全(初级)安全生产实务试题及解答参考
- 2025年湖南省高中学业水平合格性考试数学试卷(含答案)
- 气压传动课件 项目二任务二 压力控制回路的组装与调试
- 《环境保护产品技术要求 工业废气吸附净化装置》HJT 386-2007
- 中国文化概况chapter-1
- 事业单位公开招聘报名表
评论
0/150
提交评论