欢迎来到学术参考网

基于嵌入式Linux及ARM的QR码识别系统

发布时间:2015-12-14 13:47

摘 要:QR(Quick Response)码作为一种便捷、安全的信息载体,已经在各行各业中得到了广泛的应用。随着嵌入式Linux和基于ARM核的嵌入式芯片的快速发展,使得QR码在嵌入式产品上的应用成为一种趋势。本文主要介绍了QR码的基本构造,分析了基于嵌入式Linux平台上的QR码图像的采集,图像预处理的实现过程,重点讨论了基于嵌入式Linux的USB摄像头图像采集问题。

关键词:QR码;嵌入式Linux;图像处理
引言
  QR码作为二维码的一种,与其它二维码相比,拥有明显的优势,如比其它二维码储存更多资料,识读速度更快。随着QR码应用的大力推广,如2006年中移动正式推出QR码增值业务,2009年铁道部推出QR码取代一维条码应用于火车票的检测,QR码在移动增值领域的应用将会有更大的应用前景,同时随着智能手机的普及,手机QR码识别软件将面临更多的需求,提出适合嵌入式平台的高效率图像处理算法以及研究在嵌入式平台上实现QR码的识别将有助于为在手机上开发高性能的QR码识别软件提供借鉴。
1 QR码符号特征
  QR码符号具有正方形模块组成的一个正方形阵列构成,由编码区和包括位置探测图形、分隔符、定位图形和校正图形在内的功能图形组成,功能图形不用于数据编码,符号的周围为空白区。
2 系统总体设计
2.1 系统硬件结构
  本系统采用友善之臂的Mini2440开发板为硬件平台,其主要硬件结构如图1所示,S3C2440主处理器外接LCD控制器、SDRAM存储控制器、及USB接口等。USB接口外接摄像头,摄像头采集图像数据,并实时存储在SDRAM的缓冲区中,系统将缓冲区中的图像数据一路传给CPU进行图像实时处理,另一路传给LCD控制器,进行图像的实时预览。
                
                      图1 主要硬件结构图
2.2系统架构及流程
  系统软件在cLinux平台上使用基于QT的C++语言实现。系统主要分为图像采集模块、图像预处理模块、图像识别模块和应用模块4个模块。图像采集模块主要完成QR码图像的采集工作,并分两路送出,一路传给图像预处理模块,一路传给LCD显示屏实时预览。图像预处理模块主要对采集的QR码符号进行图像处理,包括灰度化、滤波、二值化、旋转等。识别模块主要包括对QR码的解码及纠错等,应用模块主要包括对识读出的QR码内容进行处理,在本系统中,就是实现对识别的内容进行显示。系统结构如图2所示:
                  
                     图2 系统架构图
3 QR码图像采集系统
  本系统采用了中芯微公司生产的ZC301芯片的摄像头,使用的驱动源码是基于spca5xx自由软件,根据实际情况进行修改的。使用spcav4l.c中的函数,经过交叉编译,在Mini2440开发板上实现了QR码图像实时采集的功能。
  Linux下,编写图像采集应用程序时,要先创建一个设备文件/dev/video0,通过它建立与设备驱动的通信,因为要对文件进行操作,所以要改变其访问权限为777。开发中用到的videodev.o模块为视频部分的标准Video for Linux。该标准定义了一套接口,内核,驱动,应用程序以这套接口为标准进行通信。图像采集过程如下《QR Code二维码技术与应用》中国物品编码中心

上一篇:无线电电磁干扰分析和计算

下一篇:探索项目导向式教学在计算机专业课程中的应用