图5( a) 为倾斜的条码,图5( b) 为采用双线性插值旋转的结果,实验表明,双线性插值处理后得到的图像具有良好的效果,有利于条码识别。

3. 4 图像的矫正

由于在拍摄时,摄像头的角度不会完全垂直于二维条码平面,因此拍摄到的条码或多或少会有透视效果,在手持手机拍摄时,这个问题很常见,也是图像处理中的难点。这里使用反透视算法[7],能够对图像进行反透视矫正。设三维失真空间中的一点坐标[x',y ',z'],其其次坐标可以设为[x',y',z',1]T ; 三维基准空间中对应点坐标[x,y,z],其其次坐标设为[x',y',z',k]T,因此有公式为

在上述定位算法中,得到了条码的3 个探测图形中心点的坐标,因此可以得出条码4 个顶点的坐标,根据如下基准点与失真点的映射关

根据式( 7) 和式( 8) ,可以得出

一般地P = 1,k = 1,失真图像和校正后的图像共面,那么z = z' = c,c 是常数,令c = 0,可以将( 9) 简化为

可以根据条码的4 组顶点,求出8 个待定系数A,B,D,E,F,H,M,N,然后对条码的每个点进行矫正。

4 QR 码识别系统在Android 平台上实现

4. 1 Android 简介  Android 是基于Linux 平台的开源手机操作系统,它采用软件堆层的架构,主要分为3 个部分: 操作系统、中介软件和应用程序。底层以Linux 内核工作为基础,用C 语言开发,只提供基本功能; 中间层包裹函数库Library 和虚拟机Virtual Machine,由C ++ 开发;最上层是各种应用软件,包括通话程序,短信程序等,主要以Java 作为编程语言。

为能够快速地处理大量的数据,Android 也提供了以C /C ++ 作为开发语言的NDK( Native Developer Kit)平台,它编译生成的. SO 动态链接库可以供AndroidSDK( Software Development Kit) 平台下的应用程序调用。在本系统的实现中,因为图像的预处理和解码部分要进行大量数据运算,所以把这两部分的程序放在NDK 下完成,摄像头启动与图像采集在SDK 下实现。由于Android 的虚拟机Dalvik 不能执行. class 文件,所以要把. class 文件的字节码转换成. dex 文件的字节码,识别系统的编译过程如图5 所示。

4. 2 图像的采集

系统在手机上实现,图像的采集[2 - 6]是重要的一步,在Android 平台上,是使用Camera 类来完成摄像头的调用和图像采集。使用Camera mCamera = Camera.open ( ) 获得Camera 的实例,然后使用Camera.Parameters 来设置获得图像的大小,最后通过实现Camera. Preview - Callback 的接口onPreviewFrame( byte []data,Camera camera) 来获得摄像头的图像数据。图像数据data 为YUV 格式,其中Y 分量的大小为 mageWidth* ImageHeight 个字节,U 分量的大小为0. 25 × ImageWith* ImageHeight 个字节,V 分量的大小和U 分量一样,因为条码是黑白色,Y 分量正好包含的是图像的灰度信息,将省去对图像进行灰度化的处理,所以在取图像数据时,只取Y 分量进行处理。

4. 3 自动对焦  为能够较快地获得清晰的图像,提高识别速度,文中使用了自动对焦技术。关键代码如下:

( 1) 实现自动对焦的接口

AutoFocusCallback Camera. AutoFocusCallback mAutoFocusCallback =

new Camera. AutoFocusCallback( )

{

Public void onAutoFocus( boolean success,Camera

camera)

{

mCamera. setOneShotPreviewCallback ( mPreviewCallback)

;

}

}

( 2) 创建一个定时器

创建定时器的目的是使手机每隔一段间隔就自动对焦一次。定时器内的代码如下:

mCamera. autoFoucs( mAutoFocusCallback) ;

5 结束语

文中研究了QR 码的识别技术,讨论了在Android平台上实现系统的技术问题,并结合数字图像处理技术,在Android 手机平台上进行了QR 码的识别技术的开发。根据图像的大小,本系统在三星i9000( CPU 型号ARM Cortex A8,主频为1 GHz,内存512 MB,操作系统为Android OS v2. 1) 上分别对100 幅图像进行了测试,结果如表1 所示。

android:一卡通系统,基于Android嵌入式平台的QR码识别系统 - 中国一卡通网相关推荐

  1. 基于MATLAB的条码二维码识别系统

    基于MATLAB的条码二维码识别系统 课题介绍 本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现.其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大 ...

  2. 基于MATLAB的条形码二维码识别系统

    一.课题介绍 本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现.其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大的图象处理工具箱实现图像的读入.加 ...

  3. 基于Android的二维码识别系统的研究与实现(eclipse开发)

    目 录 1 Android系统开发背景与意义 1 1.1 Android系统平台的出现 1 1.2 Android系统的发展 1 1.3 Android系统架构的介绍 1 1.4 Android开放系 ...

  4. 基于主要成分分析的人脸二维码识别系统-含Matlab代码

    目录 一.引言 二.人脸图像信息处理 2.1 主成分分析PCA 2.2 PCA人脸压缩与重构算法分析 三.二维码转换以及识别 3.1 QR码 3.2 将人脸图像生成二维码 3.3 二维码的识别与图像还 ...

  5. android声纹识别技术,基于Android平台的声纹识别系统的研究与实现

    摘要: 社会的发展越来越快,计算机技术的应用也愈来愈广,已经渗透到生活的各个方面.在快节奏.信息化的时代,需要识别和交互的应用日益广泛,要求验证身份的场合越来越多,迅速判定一个人的身份是一个非常重要的 ...

  6. 基于Android端的照片比对系统,基于Android系统的人脸识别系统

    [文章摘要] 当前随着基于Android系统的移动终端设备的广泛应用,以及图像采集设备的普遍集成,使得Android系统的图像采集设备除了具有照相.摄像功能以外,正在扩展新的实用型功能.其中,利用An ...

  7. 华为 android p系统,基于Android P打造 华为EMUI 9.0发布:流畅度提升12.9%

    9月1日晚间,华为在德国柏林国际电子消费展览会(IFA)上举行媒体沟通会,正式发布华为EMUI 9.0系统. 全新的EMUI 9.0系统基于Android P打造,官方介绍该系统流畅度提升12.9%, ...

  8. Android本科毕业设计基于Android的天气预报APP系统(附带源码)

    Android本科毕业设计基于Android的天气预报开发APP系统源码.显示城市当前的实时天气状况,包括城市名称.城市名片.天气情况.温度高低.星期等信息.界面左边有一列城市列表,显示中国各个城市名 ...

  9. android毕业设计答辩,基于Android的“智慧校园”的设计与实现(任务书 中期检查 翻译 毕业论文 答辩 源码)...

    摘  要 移动互联网的发展,智能手机的普及,其中Android系统以其特有的技术优势占据了智能手机操作系统的主要份额,Android在移动领域得到了广泛的应用,已成为智能手机市场的领跑者,这使越来越多 ...

最新文章

  1. 我是这样发现ISP劫持HTTP请求的
  2. 【数字信号处理】周期延拓 ( 周期延拓的两种情况 | L ≥ N | L ≤ N )
  3. 读书笔记6pandas简单使用
  4. Gradle 教程:第一部分,安装【翻译】
  5. 快速傅里叶变换(FFT)——按频率抽取DIF的基
  6. python不支持prelu_MTCNN(九)更改python与c代码的PReLU为ReLU
  7. nmos导通流向_技术参数详解,MOS管知识最全收录!
  8. Java-Android 之Hello World
  9. java se 6 mac_Mac OS X “打开xx软件, 你需要一个Java SE 6运行环境”问题解决
  10. 10.210.3 Xcode开发包
  11. 不同项目的测试计划可以复用吗_【app测试计划】移动app测试项目实践.doc
  12. 1.多线程和单线程简单比较
  13. catia怎么进入装配_catia怎么装配步骤
  14. 教你如何免费下载中国知网、万方学术论文?这份资源请收好!
  15. size_t和size_type
  16. ubuntu18.04安装cudnn出现错误:FreeImage is not set up correctly. Please ensure FreeImae is set up correctly
  17. 第十届泰迪杯数据挖掘B题:电力系统负荷预测分析--解题思路与部分代码03
  18. 华为云账号登录流程和方法
  19. To install it, you can run: npm install --save @vue/composition-api/dist/vue-composition-api.mjs
  20. Hibernate Criteria的 Criterion,Projection,Restrictions等条件设置

热门文章

  1. 解决phpStudy无法访问phpMyAdmin
  2. 发网易emil 报错javax.mail.AuthenticationFailedException: 550
  3. react 全选_react实现全选、取消全选和个别选择
  4. Linux 进程状态D Disk Sleep
  5. Android 获取来电号码和去电号码
  6. Android 读shp属性字段
  7. 利用Python下载懒人听书音频保存,纯干货不废话!
  8. sqlserver2014默认实例_SQL Server2014数据库安装方法
  9. java的set和put的区别_put与putIfAbsent区别
  10. 从小米的成功,我们可以学到什么?