基于ios手机的二维码识别系统设计说明书.doc

上传人:h**** 文档编号:101273 上传时间:2018-07-06 格式:DOC 页数:42 大小:5.37MB
下载 相关 举报
基于ios手机的二维码识别系统设计说明书.doc_第1页
第1页 / 共42页
基于ios手机的二维码识别系统设计说明书.doc_第2页
第2页 / 共42页
基于ios手机的二维码识别系统设计说明书.doc_第3页
第3页 / 共42页
基于ios手机的二维码识别系统设计说明书.doc_第4页
第4页 / 共42页
基于ios手机的二维码识别系统设计说明书.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、 专 业 论 文 基于 ios 手机的二维码识别系统设计 The design of QR code recognition based on Apples mobile phone - 0 - 目 录 1.绪论 . 1 1.1 提出问题 . 1 1.2 开发目标和意义 . 1 1.3 开发环境与语言 . 2 1.3.1 Xcode 开发工具 . 2 1.3.2 开发语言 . 2 2.系统的分析 . 2 2.1 二维码识别软件 . 2 2.2 需求分析 . 3 2.3 系统的可行性分析 . 4 3系统的设计 . 4 3.1 系统框架设计 . 4 3.2 系统实现方法 . 5 4.系统的演示 .

2、 8 4.1 设备运行效果 . 8 4.2 二维码的扫描实例 . 8 4.3 辅助功能 . 9 5.结论 . 10 6.致谢 . 10 参考文献 . 10 1 基于 ios 手机的二维码识别系统设计 摘要 二维码的应用主要出现在电子凭证,防伪,平面杂志以及数字出版等领域,在 本文中介绍了通过 ios 开发环境 xcode, objective-c 语言,利用 ios 平台下的摄像功能 对二维码的数据进行解析和编码,实现了对二维码识别的系统。 关键词 ios;二维码;识别 1.绪论 1.1 提出问题 随着手机的普及,手机上的软件也五花八门,然而现在最普遍的就是我们随处可见的二维码,走在大街上无论

3、是传单还是商铺各个都有自己的二维码, 那么问题就来了,我们能不能编一个简单的二维码 识别 app, 可以用自己的手机扫描二维码之后可以显示出它的详细信息。即使有很多二维码 app,比如我们微信上,qq 上都有自带的二维码,再比如比较热门的二维码软件我查查,那么我们也可以自己动手做一个识别二维码的软件来实现。 1.2 开发目标和意义 二维码的实用已经是很普及的事情了,我们经常喜欢看 湖南卫视的节目,每一次他们的节目一播出下面一定有一个二维码,让观众扫一扫可以参见活动之类的。再比如苹果手机已成为很多人的需求,移动广告里有位顾客拿着自己的手机对苹果上面的二维码进行扫描,便可以知道苹果的产地和摘取过程

4、以及可以辨别出是否是翻过新的。 日常生活中 二维码的应用 非常广泛,二维码 主 要出现在电子凭证,防伪,平面杂志以及数字出版等领域, 无论是电视上,生活中,二维码火车票,飞机票等均属于二维码电子 凭证。对于二维码的应用,我们应该动手去操作而不只是在广2 告中实现。 本系统结合了二维码 的 应用和苹果手机的普及,实现了 苹果手机对二维码的识别功能。 1.3 开发环境与语言 1.3.1 Xcode 开发工具 Xcode 开发工具是专门在 ios 平台 和 Mac OS X 上编程的 主要 工具。 自Xcode3.1 发布以后 xcode 就成为了 iPhone 软件开发工具包的开发环境。 Xcod

5、e可以开发 Mac OS X 和 ios的应用程序,其版本是与 SDK相互对应的。例如 Xcode6与 ios SDK 8 对应,本系统开发的 Xcode 为 6.3与 ios SDk 8.3 对应。打开 Xcode工具后的主界面主要由三个界面构成,工具栏,其中的按钮可以完成大部分工作。区域栏是代码编辑区。导航栏默认选中文件导航页面就行了。我们系统的编写主要创建一个新的 new project 来完成。 1.3.2 开发语言 ios 开发使用 Objective-c作为程序开发的标准语言。 Objective-c是一种通用,高级,面向对像的编程语言,它在 c语言主体上加入了面向对象的特性,是c

6、 语言的严格目集合。作为面向对象编程语言, Objective-c 具有类的封装与继承,多态等面向对象的语言特性。 2.系统的分析 2.1 二维码 识别 软件 二维码是用特定的几何图形按一定的规律,以黑白相间的矩形方阵在平面 分布的一种新的条码技术 。二维码是由一个二维码矩形图和一个二维码号构成的。用户运用设备的摄像头对二维码进行扫描,便可以进入相关的网页查询。二维码具有信息量大,识别速度快,等各种优点。二维码可以在报纸,杂志,宣传单,图书,产品,名片,图片,网址, app 等各种载体上。 二维码实际上是一个跨媒体的通道,任何人、任何东西都可以让它说话, 可以很快速的浏览网页信息,下3 载图文

7、,音乐视频,网上购物,网上支付,获取优惠卷,参与抽奖, 了解企业信息,等提供了方便的入口,省去了在设备上输入一大堆关键词 等过程,实现了一键上网。 2.2 需求分析 从二维码的广泛应用很多人也越来越对二维码产生感兴趣 。 出于 对二维码的好奇, 很多人都开始研究二维码,二维码到底是怎么生成和识别的,在本文中 主要介绍 了的 二维码的识别 和实现 。系统总体需求如图 1 所示: 图 1 系统用例 图 把此系统命名为“爱扫码”这个二维码软件是基于苹果手机上面的摄像头来对二维码识别的,所以要使用二维码识别功能便需要苹果手机或者平板,带有摄像头的来进行二维码识别。 二维码生成 二维码识别 文本 网址

8、图片 文件 活码 用户 APP 4 2.3 系统的可行性分析 我们进入超市买完东西要结账的时候总是能看到收银员用像机器一样的东西在扫每一个商品的条码,便能扫到商品的价格,而二维码如同条形码的姐妹一样一样,我们可以用手机扫描显示出扫描的信息。我们在信息的时代,手机的发展毋庸置疑是 发展最快的,我们中国人平均每人就有一部手机,而 ios 系统的 手机 是使用最广泛的, 如果让 ios 系统的手机和二维码识别系统结合起来,利用 ios系统的手机 摄像头 ,实现二维码识别功能会更完美。这么看来 ios 系统手机上的二维码识别系统实现 是可行的,而且很有市场需求。 3 系统 的 设计 3.1 系统框架设

9、计 进入 系统时候有个 logo, logo 的设计 来源于我是内蒙古师范大学的学生,而二维码是由黑白相间的矩形框组成,在 二维码中间插入了内蒙古师范大学的logo,显现出我是内蒙古师大的一份子和对大学的 一个 纪念 。 系统由三个部分组成第一部分是欢迎界面 ,欢迎界面由一个 image 控件插入进去 ,第二部分 是 爱扫码界面这个部分 用 Rootviewcontroller 来实现, 在这个部分主要由一个网页显示界面和两个按钮组成, 分别写入实现功能的方法和代码。 第三个部分是扫描界面 用 Viewcontroller 来实现 。 这个界面主要由一个取消按钮和一个 扫描框组成,在扫描框里面

10、写入实现调用设备摄像头的方法和代码。扫描 成功 后在回到网页显示界面显示出扫描到的内容。 系统流程设计如 图 2 所示 :5 图 2 系统流程图 3.2 系统 实现方法 开发 ios 系统需要在 xcode 开发环境下编程,而每一个 project 都由一个声明文件和实现文件组成 ,声明文件后缀是 .m,实现文件后缀是 .h。首先先对Rootviewcontroller 和 Viewcontroller 定义,处理头 文件导入系统,定义的代码为: #import “RootViewController.h“ #import “ViewController.h“ 在创建 app 进去根的控制器定

11、义一个 Viewcontroller 类,定义一个指针 *rt,给指针分配空间初始化,在定义 UINavigationcontroller 类,定义一个指针 *nav给指针分配空间初始化。 代码为: ViewController * rt = ViewController allocinit; 开始 结束 欢迎界面 扫一扫 取消 识别功能 浏览器打开 文本显示 6 UINavigationController *nav=UINavigationController alloc initWithRootViewController:rt; 再把定义的指针 nav 赋给子类 self,对子类进行属

12、性设置。在系统的实现文件里面需要用到 button 控件, label 控件, image 控件,在 Rootviewcontroller的 实现文件里需要定义一个 UIwebview 类,创建一个网页来显示扫描到的内容,在对对象属性设置 。 标题栏的显示文字代码 self.title = “爱扫码 “; 创建网页显示的代码为: UIWebView *webView=UIWebView alloc initWithFrame:CGRectMake(10,40, self.view.frame.size.width-20, self.view.frame.size.height-194);这是对

13、网页显示的指针分配空间和初始化,在对网页显示的页面定义位置。属性设置代码为: webView.delegate = self; webView.layer setBorderWidth:0.5; webView.layer setBorderColor:colorref; webView.layer.cornerRadius = 5; 在用两个 button 控件创建两个按钮设置连接跳到另一个界面。在浏览器按钮调用的方法中用到 UIApplication sharedApplication 主要由 UIApplication 类控制及协调程序的运行,在后续中可以使用 sharedApplica

14、tion 静态方法来获取程序的句柄,在对浏览器按钮匹配一个接口。 代码为: UIApplication sharedApplication openURL:NSURL URLWithString:self.str; 而扫一扫按钮需要扫描完之后回到起初的网页所以 在把扫描到的内容 赋给 rt,来实现跳转到二维码扫描的页面。 代码为: RootViewController * rt = RootViewController allocinit; rt.delegate = self; self presentViewController:rt animated:YES completion: ;

15、在 Viewcontroller 实现文件的主要工作就是扫描,所以需要调用设备摄像头来进行扫描,把扫描到的内容显示在刚定义的网页上。 ios平台上二维码的识别主要就是调用设备自带的摄像头,启用多线程,对摄像头进行快速的回调应用。使7 用 setupCamera 类来完成摄像头的调用。在看看对设备的定义可以通过 AVCaptureDevice 的类的方法用 defaultDeviceWithMediaType 去获取全部或者局部设备列表。调用 ios设备自带摄像头之后对扫描到的内容输入和输出定义对 AVCaptureDeviceInput , AVCaptureMetadataOutput 的类

16、进行初始化和创建空间。我们用 alloc方法创建空间在用 init 方法初始化。在 input和 output 都通过一个 AVCaptureSession 来控制进行传输。也就是 CaptureDevice 适配AVCaptureDeviceInput,通过 session 来输入到 AVCaptureMetadataOutput。 _device =AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo;用来调用设备的 摄像头。 _input =AVCaptureDeviceInput deviceInputWithDevic

17、e:self.device error:nil; _output = AVCaptureMetadataOutput allocinit;用来对扫描到的内容输入和输出。 _session = AVCaptureSession allocinit;用 session控制输入输出之间的传输。 扫描结果执行后用 定义 metadataObjects 类用 count 计数,如果大于 0 的话,让页面跳 转回去并且传值,在输出。 NSString *stringValue;定义指针类字符串。 if (metadataObjects count 0) AVMetadataMachineReadableC

18、odeObject *metadataObject=metadataObjects objectAtIndex:0; stringValue = metadataObject.stringValue; 计数大于 0 跳转到之前的页面传值。在用 NSLog(“%“,stringValue);输出出来。 8 4.系统的演示 4.1 设备运行效果 通过上面的对系统的 设计以及编码之后系统基本已经完成了,我们在 ios设备运行的效果如图 4所示 : 4.2 二维码的扫描实例 利用草科二维码生成器对法国卢浮宫的图片生成了相应的二维码并且有卢浮宫的简述,也就是只要扫一下二维码就会在页面出现相应的链接,点击浏览器打开之后就看到了卢浮宫的图片及简介,并且还可以对图片进行保存。 卢浮宫的图片 , 生成的二维码:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。