欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于Android二维码生成及识别系统设计及实现.doc

    • 资源ID:8955192       资源大小:34.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Android二维码生成及识别系统设计及实现.doc

    基于Android二维码生成及识别系统设计及实现 摘要:随着二维码的广泛应用和Android智能手机的进一步普及,该文介绍了一个通过Android平台下的摄像和绘图功能,利用二维码的编码和解码原理,通过Android手机对二维码的数据进行解析和编码,实现对二维码生成和识别系统。该系统内容包括两部分:二维条码的生成系统设计和二维条码的识别系统设计。生成系统完成了从输入数据到生成相应二维码的功能,识别系统完成对采集到的二维码符号进行译码还原出所携带信息的功能。 关键词:二维码;二维码生成;二维码识别;Android平台 中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)26-6353-04 Design and Realization of the QR Code Generation and Recognition System Based on Android MA Ming1, LI Hai-bo2 (Nanyang Institute of Technology, Nanyang 473004, China) Abstract: Along with the wide application of QR Code and Android smart phones further popularity. This paper introduces a camera and drawing function in the Android workbench. Using of QR Code encoding and decoding principle, through the An? droid mobile phone resolve and code planar barcode to realize the QR Code identification and generate system. The content of this project includes the design of creation and recognition. The creation system completes the process from the input data to QR Code,and the recognition system completes the process of translating QR Code to relevant information. Key words: QR Code; The generation of QR Code; The recognition of QR Code; The Android Platform 一维条码自出现以来,由于受信息容量的限制,不得不依赖数据库的存在。在没有数据库和不联网的地方,一维条码的使用受到了较大的限制。另外,要用一维条码表示汉字的场合,显得十分的不方便,且效率低下。 二维码的出现是为了解决一维条码无法解决的问题而产生。因而它具有高密度、高可靠性等特点,所以可以用它表示数据文件(包括汉字文件)、图像等。二维码是大容量、高可靠性信息实现存储、携带并自动适读的最理想的方法。手机二维码的业务类型主要有两种:一是识读,就是借助应用软件直接读出码上信息,它可以衍生出上网浏览、电子购物等多种应用;二是被读,就是由商家向手机用户发送二维码信息,通过设备识读,可作身份识别、电子凭证等之用。 1系统相关技术分析 1.1 Android系统架构 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android的系统架构采用了分层的架构。android分为四个层,分别是应用程序层、应用程序框架层、系统运行库层和 linux内核层。随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统1。 1.2开发环境 系统主要分为两个大的模块:二维码的生成和二维码的识别。二维码的生成主要就是基于 Winnows上的开发工具Netbeans开发,而同时又开发一个在Android平台下的二维码生成。而二维码的识别主要就是基于Android平台来开发,主要就是运用Android SDK和Eclipse共同开发,但是环境需要搭建。 二维码的生成主要设计的是在电脑上运行的桌面程序。通过在电脑上开发一个Java程序来生成二维码。其开发环境主要如表1。 二维码的识别和生成是在Android平台上的开发的,并使用Eclipse IDE工具进行开发的。Eclipse IDE安装ADT插件搭建了很好的Android开发平台,方便与编程。至于识别的功能要用到摄像头,虚拟机上面是没有摄像头的,这就需要有真机进行二维码的识别测试。Android平台开发环境如下表: 2系统的设计 2.1系统框架设计 本系统框架结构主要分成生成和识别两大部分。 识别功能主要就是对二维码和条形码的识别。主要就是通过手机的摄像头对二维码或者是条形码进行扫描,然后把把扫描到的二维码或者是条形码送到后台进行解析,如果解析成功后,就不再进行扫描。如果解析不成功,就会在进行扫描采集图像,在传到后台解析,直到能够识别图像为止2。 生成功能主要就是对二维码的生成。而生成这个功能可以在电脑上运行生成,也可以在手机上运行生成。二维码的生成主要支持名片、短信、文本、电子邮件及网络书签的生成。当用户选择好多要生成的对象时,就会把用户输入的信息送到后台,通过调用解析包,来生成还有相应信息的二维码。 2.2二维码的生成设计 二维码的生成,支持多种形式内容的二维码生成。所以用户要先进行选择要生成的类型,当选择类型以后,系统将转入到多选该类型的生成界面给用户,用户将相应的信息填写完成,点击生成二维码,会跳转到生成界面,显示生成的二维码3。 2.3二维码的识别设计 二维码的识别主要是通过对摄像头的调用,启用多线程,对摄像头进行快速的回调应用,当一次回调的图像没有识别出来就进行下一次的回调,直到识别出二维码为止4。同时由于对与二维码的大小不同,显示的模糊度不同等等原因,会使摄像头不能很好的采集图像,在这里要使摄像头能够进行自动对焦,从而使识别更快的实现。当识别完成以后就对用户进行提醒,对手机进行震动和播放声音,播放完成,显示识别出来的结果。 3系统的实现 3.1二维码生成的实现 二维码的生成主要是靠官方相应的编码包,将用户输入字符转换成二维数组,然后根据二维码的编码规范,使用绘图功能将二维码进行绘制。二维码的生成主要分为名片、短信、文本、电子邮件、网络书签的生成。需要有相应的框架使程序与用户进行交互,使用户有选择自己想要生成的类型,然后就是用户将自己想编辑的信息输入到系统内,系统应该提供相应的交互界面给用户输入5。该功能具体代码如下: public void QREncode(String strEncoding, int qrcodeVersion) c.swetake.util.Qrcode testQrcode = new c.swetake.util.Qrcode(); testQrcode.setQrcodeErrorCorrect(M); testQrcode.setQrcodeEncodeMode(B); testQrcode.setQrcodeVersion(qrcodeVersion); byte bytesEncoding = strEncoding.getBytes(“utf-8”); if (bytesEncoding.length > 0) boolean bEncoding = testQrcode.calQrcode(bytesEncoding); drawQRCode(bEncoding, getResources().getColor(R.drawable.black); /绘制条形码 private void drawQRCode(boolean bRect, int colorFill) int intPadding = 20; Canvas mC = mSurfaceHolder01.lockCanvas(); mC1.drawColor(getResources().getColor(R.drawable.white); Paint mP = new Paint(); mP1.setStyle(Paint.Style.FILL); mP.setColor(colorFill); mP1.setStrokeWidth(1.0F); for (int i = 0; i < bRect.length; i+) for (int j = 0; j < bRect.length; j+) if (bRectji) mC.drawRect(new Rect(intPadding + j * 3 + 2, intPadding + i * 3 + 2, intPadding + j * 3 + 2 + 3, intPadding + i * 3 + 2 + 3), mP1); mSurfaceHolder01.unlockCanvasAndPost(mC1); 3.2二维码识别的实现 系统在手机上实现图像的采集是重要的一步,在Android平台上,是使用Camera类来完成摄像头的调用和图像采集使用Camera mCamera = Camer-a. open ()获得Camera的实例,然后使用Camer-a.Parameters来设置获得图像的大小,最后通过实现Camera. PreviewCallback的接口onPreviewFrame( bytedata,Camera camera)来获得摄像头的图像数据data。 为能够较快地获得清晰的图像,提高识别速度,文中使用了自动对焦技术。另外还应该对对焦进行定时操作,这就需要设置一个定时器对自动对焦进行定时调用。 后台对摄像头传过来的图像数据data进行解码处理,如果能够解析出来,则上面的对焦调用,摄像头回传图像数据调用等将暂停。如果解析不成功,则继续轮回调用。节约解析的时间6。 后台对摄像头传过来的图像数据data进行解码处理,如果能够解析出来,则上面的对焦调用,摄像头回传图像数据调用等将暂停。如果解析不成功,则继续轮回调用。节约解析的时间。主要实现代码如下: public void handleMessage(Message message) switch (message.what) case R.id.auto_focus: if (state = State.PREVIEW) CameraManager.get().requestAutoFocus(this, R.id.auto_focus); break; case R.id.restart_preview: Log.d(TAG, “Got restart preview message”); restartPreviewAndDecode(); break; case R.id.decode_succeeded: Log.d(TAG, “Got decode succeeded message”); state = State.SUCCESS; Bundle bundle = message.getData(); Bitmap barcode = bundle = null ? null : (Bitmap) bundle .getParcelable(DecodeThread.BARCODE_BITMAP); activity.handleDecode(Result) message.obj, barcode); break; case R.id.decode_failed: state = State.PREVIEW; CameraManager.get().requestPreviewFrame(decodeThread.getHandler(), R.id.decode); break; case R.id.return_scan_result: Log.d(TAG, “Got return scan result message”); activity.setResult(Activity.RESULT_OK, (Intent) message.obj); activity.finish(); break; case R.id.launch_product_query: Log.d(TAG, “Got product query message”); String url = (String) message.obj; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); activity.startActivity(intent); break; 4结束语 本课题的研究目的是实现二维条码的生成与识别系统设计,设计内容包括两部分:二维条码的生成系统设计和二维条码的识别系统设计。生成系统完成了从输入数据到生成相应二维码的功能,识别系统完成对图像的自动采集和数据编码解析。 参考文献: 1杨丰盛.Android应用开发揭秘M.北京:机械工业出版社,2010:48-50. 2刘宁钟,杨静宇.基于傅里叶变换的二维条码识别J.中国图像图形学报,2011,18(2):45-46. 3肖翔,刘晓明,王云柯. QR码图像的矫正与定位方法研究J.计算机科学,2007,23(2):18-20. 4谷晓琳,黄明,戚海英.基于遗传算法的二维QR码图像识别J.大连铁道学院学报,2005,12(3):35-38. 5王文豪,张亚红,全银,等.QRCode二维条码的图形识别技术J.计算机技术与发展,2009,8(2):40-43. 6梁凤梅.快速识读QRCode码J.电脑开发与应用,2002,12(2):50-55.11

    注意事项

    本文(基于Android二维码生成及识别系统设计及实现.doc)为本站会员(rrsccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开