

免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专 业 论 文基于ios手机的二维码识别系统设计the design of qr code recognition based on apples mobile phone2目 录1.绪论11.1 提出问题11.2 开发目标和意义11.3开发环境与语言21.3.1 xcode开发工具21.3.2开发语言22.系统的分析22.1 二维码识别软件22.2 需求分析32.3 系统的可行性分析43系统的设计43.1系统框架设计43.2系统实现方法54.系统的演示84.1设备运行效果84.2二维码的扫描实例94.3辅助功能105.结论116.致谢11参考文献11基于ios手机的二维码识别系统设计摘要 二维码的应用主要出现在电子凭证,防伪,平面杂志以及数字出版等领域,在本文中介绍了通过ios开发环境xcode,objective-c语言,利用ios平台下的摄像功能对二维码的数据进行解析和编码,实现了对二维码识别的系统。关键词 ios;二维码;识别1.绪论1.1 提出问题随着手机的普及,手机上的软件也五花八门,然而现在最普遍的就是我们随处可见的二维码,走在大街上无论是传单还是商铺各个都有自己的二维码,那么问题就来了,我们能不能编一个简单的二维码识别app,可以用自己的手机扫描二维码之后可以显示出它的详细信息。即使有很多二维码app,比如我们微信上,qq上都有自带的二维码,再比如比较热门的二维码软件我查查,那么我们也可以自己动手做一个识别二维码的软件来实现。1.2 开发目标和意义二维码的实用已经是很普及的事情了,我们经常喜欢看湖南卫视的节目,每一次他们的节目一播出下面一定有一个二维码,让观众扫一扫可以参见活动之类的。再比如苹果手机已成为很多人的需求,移动广告里有位顾客拿着自己的手机对苹果上面的二维码进行扫描,便可以知道苹果的产地和摘取过程以及可以辨别出是否是翻过新的。日常生活中二维码的应用非常广泛,二维码主要出现在电子凭证,防伪,平面杂志以及数字出版等领域,无论是电视上,生活中,二维码火车票,飞机票等均属于二维码电子凭证。对于二维码的应用,我们应该动手去操作而不只是在广告中实现。本系统结合了二维码的应用和苹果手机的普及,实现了苹果手机对二维码的识别功能。1.3开发环境与语言1.3.1 xcode开发工具xcode开发工具是专门在ios平台和mac os x 上编程的主要工具。自xcode3.1发布以后xcode 就成为了iphone软件开发工具包的开发环境。xcode可以开发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语言的严格目集合。作为面向对象编程语言,objective-c具有类的封装与继承,多态等面向对象的语言特性。2.系统的分析2.1 二维码识别软件二维码是用特定的几何图形按一定的规律,以黑白相间的矩形方阵在平面分布的一种新的条码技术。二维码是由一个二维码矩形图和一个二维码号构成的。用户运用设备的摄像头对二维码进行扫描,便可以进入相关的网页查询。二维码具有信息量大,识别速度快,等各种优点。二维码可以在报纸,杂志,宣传单,图书,产品,名片,图片,网址,app等各种载体上。二维码实际上是一个跨媒体的通道,任何人、任何东西都可以让它说话,可以很快速的浏览网页信息,下载图文,音乐视频,网上购物,网上支付,获取优惠卷,参与抽奖,了解企业信息,等提供了方便的入口,省去了在设备上输入一大堆关键词等过程,实现了一键上网。2.2 需求分析从二维码的广泛应用很多人也越来越对二维码产生感兴趣。出于对二维码的好奇,很多人都开始研究二维码,二维码到底是怎么生成和识别的,在本文中主要介绍了的二维码的识别和实现。系统总体需求如图1所示:二维码生成二维码识别文本网址图片文件活码用户app 图1系统用例图把此系统命名为“爱扫码”这个二维码软件是基于苹果手机上面的摄像头来对二维码识别的,所以要使用二维码识别功能便需要苹果手机或者平板,带有摄像头的来进行二维码识别。2.3 系统的可行性分析我们进入超市买完东西要结账的时候总是能看到收银员用像机器一样的东西在扫每一个商品的条码,便能扫到商品的价格,而二维码如同条形码的姐妹一样一样,我们可以用手机扫描显示出扫描的信息。我们在信息的时代,手机的发展毋庸置疑是发展最快的,我们中国人平均每人就有一部手机,而ios系统的手机是使用最广泛的,如果让ios系统的手机和二维码识别系统结合起来,利用ios系统的手机摄像头,实现二维码识别功能会更完美。这么看来ios系统手机上的二维码识别系统实现是可行的,而且很有市场需求。3系统的设计3.1系统框架设计进入系统时候有个logo,logo的设计来源于我是内蒙古师范大学的学生,而二维码是由黑白相间的矩形框组成,在二维码中间插入了内蒙古师范大学的logo,显现出我是内蒙古师大的一份子和对大学的一个纪念。系统由三个部分组成第一部分是欢迎界面,欢迎界面由一个image控件插入进去,第二部分是爱扫码界面这个部分用rootviewcontroller来实现,在这个部分主要由一个网页显示界面和两个按钮组成,分别写入实现功能的方法和代码。第三个部分是扫描界面用viewcontroller来实现。这个界面主要由一个取消按钮和一个扫描框组成,在扫描框里面写入实现调用设备摄像头的方法和代码。扫描成功后在回到网页显示界面显示出扫描到的内容。系统流程设计如图2所示:开始结束欢迎界面扫一扫取消识别功能浏览器打开文本显示 图2系统流程图3.2系统实现方法开发ios系统需要在xcode开发环境下编程,而每一个project都由一个声明文件和实现文件组成,声明文件后缀是.m,实现文件后缀是.h。首先先对rootviewcontroller和viewcontroller定义,处理头文件导入系统,定义的代码为:#importrootviewcontroller.h#importviewcontroller.h在创建app进去根的控制器定义一个viewcontroller类,定义一个指针*rt,给指针分配空间初始化,在定义uinavigationcontroller类,定义一个指针*nav给指针分配空间初始化。代码为:viewcontroller* rt = viewcontrollerallocinit;uinavigationcontroller*nav=uinavigationcontrollerallocinitwithrootviewcontroller:rt;再把定义的指针nav赋给子类self,对子类进行属性设置。在系统的实现文件里面需要用到button控件,label控件,image控件,在rootviewcontroller的实现文件里需要定义一个uiwebview类,创建一个网页来显示扫描到的内容,在对对象属性设置。标题栏的显示文字代码 self.title=爱扫码; 创建网页显示的代码为:uiwebview*webview=uiwebviewallocinitwithframe:cgrectmake(10,40,self.view.frame.size.width-20,self.view.frame.size.height-194);这是对网页显示的指针分配空间和初始化,在对网页显示的页面定义位置。属性设置代码为:webview.delegate= self; webview.layersetborderwidth:0.5; webview.layersetbordercolor:colorref; webview.layer.cornerradius=5;在用两个button控件创建两个按钮设置连接跳到另一个界面。在浏览器按钮调用的方法中用到uiapplicationsharedapplication主要由uiapplication类控制及协调程序的运行,在后续中可以使用sharedapplication静态方法来获取程序的句柄,在对浏览器按钮匹配一个接口。代码为:uiapplicationsharedapplicationopenurl:nsurlurlwithstring:self.str;而扫一扫按钮需要扫描完之后回到起初的网页所以在把扫描到的内容赋给rt,来实现跳转到二维码扫描的页面。代码为: rootviewcontroller* rt = rootviewcontrollerallocinit;rt.delegate= self;selfpresentviewcontroller:rtanimated:yescompletion: ;在viewcontroller实现文件的主要工作就是扫描,所以需要调用设备摄像头来进行扫描,把扫描到的内容显示在刚定义的网页上。ios平台上二维码的识别主要就是调用设备自带的摄像头,启用多线程,对摄像头进行快速的回调应用。使用setupcamera类来完成摄像头的调用。在看看对设备的定义可以通过 avcapturedevice 的类的方法用defaultdevicewithmediatype去获取全部或者局部设备列表。调用ios设备自带摄像头之后对扫描到的内容输入和输出定义对 avcapturedeviceinput,avcapturemetadataoutput的类进行初始化和创建空间。我们用alloc方法创建空间在用init方法初始化。在input和output都通过一个avcapturesession来控制进行传输。也就是capturedevice适配avcapturedeviceinput,通过session来输入到avcapturemetadataoutput。_device=avcapturedevicedefaultdevicewithmediatype:avmediatypevideo;用来调用设备的摄像头。_input=avcapturedeviceinputdeviceinputwithdevice:self.deviceerror:nil;_output= avcapturemetadataoutputallocinit;用来对扫描到的内容输入和输出。_session= avcapturesessionallocinit;用session控制输入输出之间的传输。扫描结果执行后用定义metadataobjects 类用count计数,如果大于0的话,让页面跳转回去并且传值,在输出。nsstring*stringvalue;定义指针类字符串。if (metadataobjectscount 0) avmetadatamachinereadablecodeobject*metadataobject=metadataobjectsobjectatindex:0; stringvalue = metadataobject.stringvalue;计数大于0跳转到之前的页面传值。在用nslog(%,stringvalue);输出出来。 4.系统的演示4.1设备运行效果通过上面的对系统的设计以及编码之后系统基本已经完成了,我们在ios设备运行的效果如图4所示: 4.2二维码的扫描实例利用草科二维码生成器对法国卢浮宫的图片生成了相应的二维码并且有卢浮宫的简述,也就是只要扫一下二维码就会在页面出现相应的链接,点击浏览器打开之后就看到了卢浮宫的图片及简介,并且还可以对图片进行保存。卢浮宫的图片,生成的二维码: 用设备扫描后的结果: 4.3辅助功能 二维码识别系统已经成功完成了,可以对任何一个二维码进行识别,显示其相应的详细信息。用二维码扫描到信息以后可以通过草科二维码生成器的连接进行对扫描到的内容分享(二维码,分享到朋友圈,发送邮件,发送短信),收藏(个人收藏,社区交友等等),还有更多的功能。5.结论通过对二维码系统的设计,首先对ios这个开发平台做了详细的了解,并且对二维码的识别有了一定的认识,刚开始自己都不知道怎么下手然后先是百度弄懂开发工具,然后再学习objective-c语言,然后才慢慢的进入了编程的这个状态虽然有太多的不懂,但是通过各种渠道终于完成了一个小程序。同时也体会到了自己所要了解的理论知识还有很多。6.致谢在毕业设计和写论文的整个过程中朝力萌老师给予了我很大的帮助对我全面的指导,帮我找到存在的问题指出不足之处让我及时改正。在此对老师表示衷心的感谢。参考文献1 王毅.二维码技术应用及标准化状况介绍j.2006年2 高峰.二维码手机识别系统的设计与实践j. 北京邮电大学.2008年3孙明,傅隆生,杨延信.用于qr码自动识别的图像分析方法j.电子科技大学学报.2009年4 极客学院.objective-c教程 /5 源码开发网
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 氧化铝脱硫剂项目规划设计方案
- 水泥磨节能改造建设项目实施方案(范文)
- 年产20万吨生物基纤维项目实施方案(模板)
- 化妆品数字化转型升级项目可行性研究报告(范文)
- 土地使用兑换协议书
- 夫妻婚姻年限协议书
- 天然气保证金协议书
- 多方党建联建协议书
- 团长佣金结算协议书
- 失事人员赔偿协议书
- kpu鞋面工艺流程
- 图形设计方法同构、替构、解构、重构
- 中华民族共同体建设实践探索
- 民法典之婚姻家庭编案例解读课件
- SCA涂胶机内部培训资料课件
- 部编人教版3三年级《道德与法治》下册电子课本课件
- 新课标人教版六年级数学上册教材分析课件
- 税务会计学(第 14版)习题参考答案
- 海康产品及公司介绍全系列
- 《人体解剖生理学》全套课件
- 哈尔滨工业大学《信号与系统》2020-2021学年期末考试试卷
评论
0/150
提交评论