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

上传人:rrsccc 文档编号:8955192 上传时间:2021-01-27 格式:DOC 页数:11 大小:34.50KB
返回 下载 相关 举报
基于Android二维码生成及识别系统设计及实现.doc_第1页
第1页 / 共11页
基于Android二维码生成及识别系统设计及实现.doc_第2页
第2页 / 共11页
基于Android二维码生成及识别系统设计及实现.doc_第3页
第3页 / 共11页
基于Android二维码生成及识别系统设计及实现.doc_第4页
第4页 / 共11页
基于Android二维码生成及识别系统设计及实现.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于Android二维码生成及识别系统设计及实现.doc》由会员分享,可在线阅读,更多相关《基于Android二维码生成及识别系统设计及实现.doc(11页珍藏版)》请在三一文库上搜索。

1、基于Android二维码生成及识别系统设计及实现 摘要:随着二维码的广泛应用和Android智能手机的进一步普及,该文介绍了一个通过Android平台下的摄像和绘图功能,利用二维码的编码和解码原理,通过Android手机对二维码的数据进行解析和编码,实现对二维码生成和识别系统。该系统内容包括两部分:二维条码的生成系统设计和二维条码的识别系统设计。生成系统完成了从输入数据到生成相应二维码的功能,识别系统完成对采集到的二维码符号进行译码还原出所携带信息的功能。 关键词:二维码;二维码生成;二维码识别;Android平台 中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)2

2、6-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 c

3、amera 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 recogni

4、tion. 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 一维条码自出现以来,由于受信息容量的限制,不得不依赖数据

5、库的存在。在没有数据库和不联网的地方,一维条码的使用受到了较大的限制。另外,要用一维条码表示汉字的场合,显得十分的不方便,且效率低下。 二维码的出现是为了解决一维条码无法解决的问题而产生。因而它具有高密度、高可靠性等特点,所以可以用它表示数据文件(包括汉字文件)、图像等。二维码是大容量、高可靠性信息实现存储、携带并自动适读的最理想的方法。手机二维码的业务类型主要有两种:一是识读,就是借助应用软件直接读出码上信息,它可以衍生出上网浏览、电子购物等多种应用;二是被读,就是由商家向手机用户发送二维码信息,通过设备识读,可作身份识别、电子凭证等之用。 1系统相关技术分析 1.1 Android系统架构

6、 Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android的系统架构采用了分层的架构。android分为四个层,分别是应用程序层、应用程序框架层、系统运行库层和 linux内核层。随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统1。 1.2开发环境 系统主要分为两个大的模块:二维码的生成和二维码的识别。二维码的生成主要就是基于 Winnows上的开发工具Netbeans开发,而同时又开发一个在

7、Android平台下的二维码生成。而二维码的识别主要就是基于Android平台来开发,主要就是运用Android SDK和Eclipse共同开发,但是环境需要搭建。 二维码的生成主要设计的是在电脑上运行的桌面程序。通过在电脑上开发一个Java程序来生成二维码。其开发环境主要如表1。 二维码的识别和生成是在Android平台上的开发的,并使用Eclipse IDE工具进行开发的。Eclipse IDE安装ADT插件搭建了很好的Android开发平台,方便与编程。至于识别的功能要用到摄像头,虚拟机上面是没有摄像头的,这就需要有真机进行二维码的识别测试。Android平台开发环境如下表: 2系统的设

8、计 2.1系统框架设计 本系统框架结构主要分成生成和识别两大部分。 识别功能主要就是对二维码和条形码的识别。主要就是通过手机的摄像头对二维码或者是条形码进行扫描,然后把把扫描到的二维码或者是条形码送到后台进行解析,如果解析成功后,就不再进行扫描。如果解析不成功,就会在进行扫描采集图像,在传到后台解析,直到能够识别图像为止2。 生成功能主要就是对二维码的生成。而生成这个功能可以在电脑上运行生成,也可以在手机上运行生成。二维码的生成主要支持名片、短信、文本、电子邮件及网络书签的生成。当用户选择好多要生成的对象时,就会把用户输入的信息送到后台,通过调用解析包,来生成还有相应信息的二维码。 2.2二维

9、码的生成设计 二维码的生成,支持多种形式内容的二维码生成。所以用户要先进行选择要生成的类型,当选择类型以后,系统将转入到多选该类型的生成界面给用户,用户将相应的信息填写完成,点击生成二维码,会跳转到生成界面,显示生成的二维码3。 2.3二维码的识别设计 二维码的识别主要是通过对摄像头的调用,启用多线程,对摄像头进行快速的回调应用,当一次回调的图像没有识别出来就进行下一次的回调,直到识别出二维码为止4。同时由于对与二维码的大小不同,显示的模糊度不同等等原因,会使摄像头不能很好的采集图像,在这里要使摄像头能够进行自动对焦,从而使识别更快的实现。当识别完成以后就对用户进行提醒,对手机进行震动和播放声

10、音,播放完成,显示识别出来的结果。 3系统的实现 3.1二维码生成的实现 二维码的生成主要是靠官方相应的编码包,将用户输入字符转换成二维数组,然后根据二维码的编码规范,使用绘图功能将二维码进行绘制。二维码的生成主要分为名片、短信、文本、电子邮件、网络书签的生成。需要有相应的框架使程序与用户进行交互,使用户有选择自己想要生成的类型,然后就是用户将自己想编辑的信息输入到系统内,系统应该提供相应的交互界面给用户输入5。该功能具体代码如下: public void QREncode(String strEncoding, int qrcodeVersion) c.swetake.util.Qrcode

11、 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); draw

12、QRCode(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); m

13、P.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.unlockCanvasAndPo

14、st(mC1); 3.2二维码识别的实现 系统在手机上实现图像的采集是重要的一步,在Android平台上,是使用Camera类来完成摄像头的调用和图像采集使用Camera mCamera = Camer-a. open ()获得Camera的实例,然后使用Camer-a.Parameters来设置获得图像的大小,最后通过实现Camera. PreviewCallback的接口onPreviewFrame( bytedata,Camera camera)来获得摄像头的图像数据data。 为能够较快地获得清晰的图像,提高识别速度,文中使用了自动对焦技术。另外还应该对对焦进行定时操作,这就需要设置一

15、个定时器对自动对焦进行定时调用。 后台对摄像头传过来的图像数据data进行解码处理,如果能够解析出来,则上面的对焦调用,摄像头回传图像数据调用等将暂停。如果解析不成功,则继续轮回调用。节约解析的时间6。 后台对摄像头传过来的图像数据data进行解码处理,如果能够解析出来,则上面的对焦调用,摄像头回传图像数据调用等将暂停。如果解析不成功,则继续轮回调用。节约解析的时间。主要实现代码如下: public void handleMessage(Message message) switch (message.what) case R.id.auto_focus: if (state = State.

16、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.

17、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);

18、 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

19、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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


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