欢迎来到天天文库
浏览记录
ID:24460286
大小:50.00 KB
页数:4页
时间:2018-11-14
《基于嵌入式linux及arm的qr码识别系统》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于嵌入式Linux及ARM的QR码识别系统QR(QuickResponse)码作为一种便捷、安全的信息载体,已经在各行各业中得到了广泛的应用。随着嵌入式Linux和基于ARM核的嵌入式芯片的快速发展,使得QR码在嵌入式产品上的应用成为一种趋势。本文主要介绍了QR码的基本构造,分析了基于嵌入式Linux平台上的QR码图像的采集,图像预处理的实现过程,重点讨论了基于嵌入式Linux的USB摄像头图像采集问题。关键词:QR码;嵌入式Linux;图像处理引言 QR码作为二维码的一种,与其它二维码相比,拥有明显的优势,如比其它二
2、维码储存更多资料,识读速度更快。随着QR码应用的大力推广,如2006年中移动正式推出QR码增值业务,2009年铁道部推出QR码取代一维条码应用于火车票的检测,QR码在移动增值领域的应用将会有更大的应用前景,同时随着智能的普及,QR码识别软件将面临更多的需求,提出适合嵌入式平台的高效率图像处理算法以及研究在嵌入式平台上实现QR码的识别将有助于为在上开发高性能的QR码识别软件提供借鉴。1QR码符号特征 QR码符号具有正方形模块组成的一个正方形阵列构成,由编码区和包括位置探测图形、分隔符、定位图形和校正图形在内的功能图形组成,
3、功能图形不用于数据编码,符号的周围为空白区。2系统总体设计2.1系统硬件结构 本系统采用友善之臂的Mini2440开发板为硬件平台,其主要硬件结构如图1所示,S3C2440主处理器外接LCD控制器、SDRAM存储控制器、及USB接口等。USB接口外接摄像头,摄像头采集图像数据,并实时存储在SDRAM的缓冲区中,系统将缓冲区中的图像数据一路传给CPU进行图像实时处理,另一路传给LCD控制器,进行图像的实时预览。 图1主要硬件结构图2.2系统架构及流程 系统
4、软件在cLinux平台上使用基于QT的C++语言实现。系统主要分为图像采集模块、图像预处理模块、图像识别模块和应用模块4个模块。图像采集模块主要完成QR码图像的采集工作,并分两路送出,一路传给图像预处理模块,一路传给LCD显示屏实时预览。图像预处理模块主要对采集的QR码符号进行图像处理,包括灰度化、滤波、二值化、旋转等。识别模块主要包括对QR码的解码及纠错等,应用模块主要包括对识读出的QR码内容进行处理,在本系统中,就是实现对识别的内容进行显示。系统结构如图2所示:
5、 图2系统架构图3QR码图像采集系统 本系统采用了中芯微公司生产的ZC301芯片的摄像头,使用的驱动源码是基于spca5xx自由软件,根据实际情况进行修改的。使用spcav4l.c中的函数,经过交叉编译,在Mini2440开发板上实现了QR码图像实时采集的功能。 Linux下,编写图像采集应用程序时,要先创建一个设备文件/dev/video0,通过它建立与设备驱动的通信,因为要对文件进行操作,所以要改变其访问权限为777。开发中用到的videodev.o模块为视频部分的标准VideoforLinux。该标准定
6、义了一套接口,内核,驱动,应用程序以这套接口为标准进行通信。图像采集过程如下[1]:第一步:,打开摄像头设备,在Linux下可以通过系统的设备文件来访问设备,在前面我们创建了摄像头的设备文件,文件描述符(vd->fd)可以如下方法获取: if((vd->fd=open(vd->videodevice,O_RDsmap(内存映射)方式截取视频,mmap()系统调用使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read(),ming》Ala
7、nCox[3]《QRCode二维码技术与应用》中国物品编码中心
此文档下载收益归作者所有