版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android物联网应用程序开发资源转化系统教材辽宁轻工职业学院辽宁轻工职业学院任务实现知识准备任务目标目录
辽宁轻工职业学院任务2购物二维码的识别项目7媒体动画的实现辽宁轻工职业学院【任务目标】1.掌握二维码的相关概念2.掌握二维码识别原理3.掌握相机API的使用
创建打开相机的界面,为扫描二维码做准备。点击“打开相机”后,出现扫描二维码的界面等待扫描二维码(界面如下图)。
1.二维码简介辽宁轻工职业学院【知识准备】1.二维码的概念二维码(Two-dimensionalcode)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的方式。现实生活中,二维码普遍存在我们的周围,例如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。1.二维码简介辽宁轻工职业学院【知识准备】在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。在许多种类的二维条码中,常用的码制有:DataMatrix,MaxiCode,Aztec,QRCode,Vericode,PDF417,Ultracode,Code49,Code16K等。每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能及处理图形旋转变化等特点。二维码是一种比一维码更高级的条码格式。一维码只能在一个方向(一般是水平方向)上表达信息,而二维码在水平和垂直方向都可以存储信息。一维码只能由数字和字母组成,而二维码能存储汉字、数字和图片等信息,因此二维码的应用领域要广得多。1.二维码简介辽宁轻工职业学院【知识准备】(2)常用的几种二维条码1.二维码简介辽宁轻工职业学院【知识准备】二维码可以大致分为矩阵式和行排式两种:1)矩阵式在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵元素位置上,出现方点、圆点或其他形状点表示二进制“1”,不出现点表示二进制的“0”,点的排列组合确定了矩阵式二维码所代表的意义。2)行排式行排式二维码(又称:堆积式二维码或层排式二维码),其编码原理是建立在一维码基础之上,按需要堆积成二行或多行。1.二维码简介辽宁轻工职业学院【知识准备】(3)二维码的特点 1)高密度编码,信息容量大。 2)编码范围广。 3)容错能力强,具有纠错功能。 4)译码可靠性高。 5)可引入加密措施。 6)成本低,易制作,持久耐用。 7)条码符号形状、尺寸大小比例可变。 8)二维条码可以使用激光或CCD阅读器识读。2.二维码识别辽宁轻工职业学院【知识准备】通过图像的采集设备,我们得到含有条码的图像,此后主要经过条码定位、分割和解码三个步骤实现条码的识别(以矩阵式条码为例)。(1)条码的定位条码的定位是实现条码识别的基础,在一幅图像中如果找不到待识别的条码,后面的工作就无法完成。实现条码的定位采用以下步骤:1)利用点运算的阈值理论将采集到的图像变为二值图像,即对图像进行二值化处理。2)得到二值化图像后,对其进行膨胀运算。3)对膨胀后的图像进行边缘检测得到条码区域的轮廓。2.二维码识别辽宁轻工职业学院【知识准备】下面是经过上述处理后得到的一系列图像。
2.二维码识别辽宁轻工职业学院【知识准备】对图像进行二值化处理按下式进行:
2.二维码识别辽宁轻工职业学院【知识准备】其中,f(x,y)是点(x,y)处像素的灰度值,T为阈值(自适应门限)。上面的步骤2中用到了数学形态学中的膨胀变换。A用B来膨胀定义为:2.二维码识别辽宁轻工职业学院【知识准备】对二值化图像进行的膨胀运算就是通过上式进行的。找到条码区域后,我们还要进一步区分到底是哪种矩阵式条码。下面图形是几种常见的矩阵式条码:a.位于左上角、左下角、右上角的三个定位图形。b.位于符号中央的三个等间距同心圆环(或称公牛眼)定位图形。c.位于左边和下边的两条垂直的实线段。2.二维码识别辽宁轻工职业学院【知识准备】(2)条码的分割边缘检测后条码区域的边界不是很完整,所以需要进一步的修正边界,然后分割出一个完整的条码区域。首先采用区域增长的方法对符号进行分割,以此修正条码边界。其基本思想是从符号内的一个小区域(种子)开始,通过区域增长来修正条码边界,把符号内的所有点都包括在这个边界内。然后通过凸壳计算准确分割出整个符号。之后区域增长和凸壳计算交替进行,通常对那些密度比较大的条码重复两次就足够了,而对于那些模块组合比较稀疏的条码至少要重复四次。2.二维码识别辽宁轻工职业学院【知识准备】(3)解码得到一幅标准的条码图像后,对该符号进行网格采样,对网格每一个交点上的图像像素取样,并根据阈值确定是深色块还是浅色块。构造一个位图,用二进制的“1”表示深色像素,“0”表示浅色像素,从而得到条码的原始二进制序列值,然后对这些数据进行纠错和译码,最后根据条码的逻辑编码规则把这些原始的数据位流转换成数码字。3.使用相机API辽宁轻工职业学院【知识准备】(1)Camera概述Android的Camera包含取景器(viewfinder)和拍摄照片的功能。Camera程序架构主要分为客户端和服务器两个部分,它们建立在Android的进程间通信Binder的结构上。在framework/base/core/java/android/hardware/Camera.java中实现基本的Camera功能。在这个类中,一些方法是通过JNI的方式调用本地代码得到,一些方法由自己实现。在framework/base/camera/libcameraservice/目录下面实现Camera的服务部分。同时,为了实现一个具体功能的Camera,在最底层还需要一个硬件相关的Camera库(例如通过调用Videoforlinux驱动程序和Jpeg编码程序实现)。3.使用相机API辽宁轻工职业学院【知识准备】(2)AndroidCameraAPICamera类主要用于图像采集设置,开始、停止预览,抓拍图片和检索视频编码帧。Camera类相对于管理实际Camera硬件的Camera服务来说是一个客户端类。3.使用相机API辽宁轻工职业学院【知识准备】1)主要框架Camera主要框架属性类型名字功能Public接口(interface)Camera.AutoFocusCallback相机自动调焦时进行回调处理Camera.ErrorCallback发生错误时进行回调处理Camera.PictureCallback图像数据从捕获器中取走时的进行回调处理Camera.PreviewCallback完成每一帧预览数据的复制Camera.ShutterCallback拍摄照片后快门关闭时进行回调处理Camera.OnZoomChangeListener缩放值发生变化时的一个回调接口类(class)Camera.Size处理图片的大小Camera.Parameters对Cameraservice获取的图片的参数进行相关处理3.使用相机API辽宁轻工职业学院【知识准备】2)主要的公共接口①PublicMethodspublicfinalvoidaddCallbackBuffer(byte[]callbackBuffer)来源版本:APILevel8方法功能说明:添加一个预分配的缓冲区到预览回调缓冲区队列中。②publicfinalvoidautoFocus(Camera.AutoFocusCallbackcb)来源版本:APILevel1方法功能说明:当相机需要调焦时启动自动调焦功能,并注册一个回调函数来运行。只有调用startPreview()开始预处理时该方法有效。③publicfinalvoidcancelAutoFocus()来源版本:APILevel5方法功能说明:取消自动调焦功能。④publicCamera.ParametersgetParameters()来源版本:APILevel1方法功能说明:返回CameraService返回图片的参数。3.使用相机API辽宁轻工职业学院【知识准备】⑤publicfinalvoidlock()来源版本:APILevel5方法功能说明:锁定相机,防止其他程序访问。默认情况下,相机对象是被锁定的。如果该方法失败会抛出RuntimeException异常。⑥publicstaticCameraopen()来源版本:APILevel1方法功能说明:返回一个相机对象。⑦publicfinalvoidreconnect()来源版本:APILevel8方法功能说明:MediaRecorder使用相机录完像后,使用该方法可以重新建立与相机硬件的连接。连接前,相机对象必须先执行解锁过程。如果方法失败抛出IOException异常。⑧publicfinalvoidrelease()来源版本:APILevel1方法功能说明:断开并释放相机对象资源。⑨publicfinalvoidsetDisplayOrientation(intdegrees)来源版本:APILevel8方法功能说明:设置显示的方向。该方法会影响以后的预览帧快照后显示图片。
3.使用相机API辽宁轻工职业学院【知识准备】⑩publicfinalvoidsetErrorCallback(Camera.ErrorCallbackcb)来源版本:APILevel1方法功能说明:放发生错误时注册并发起一个回调函数。⑪publicfinalvoidsetOneShotPreviewCallback(Camera.PreviewCallbackcb)来源版本:APILevel3方法功能说明:安装一个回调来检测单个预览帧,之后清除该回调。⑫publicvoidsetParameters(Camera.Parametersparams)来源版本:APILevel1方法功能说明:设置从CameraService获取到的图片的参数。⑬publicfinalvoidsetPreviewCallback(Camera.PreviewCallbackcb)来源版本:APILevel1方法功能说明:除了显示一帧预览的数据外,可以随时调用该方法以便指示相机使用回调来处理每一个预览帧。3.使用相机API辽宁轻工职业学院【知识准备】⑭publicfinalvoidsetPreviewCallbackWithBuffer(Camera.PreviewCallbackcb)来源版本:APILevel8方法功能说明:只要预览缓冲区队列中有缓冲区就会触发一个回调函数。⑮publicfinalvoidsetPreviewDisplay(SurfaceHolderholder)来源版本:APILevel1方法功能说明:设置SurfaceHolder以便用于图片预览。⑯publicfinalvoidsetZoomChangeListener(Camera.OnZoomChangeListenerlistener)来源版本:APILevel8方法功能说明:平滑缩放期间,当摄像头驱动程序更新缩放值的时注册该监听函数。⑰publicfinalvoidstartPreview()来源版本:API⑱publicfinalvoidstartSmoothZoom(intvalue)来源版本:APILevel8方法功能说明:缓慢的变换到请求的缩放值。如果请求的缩放值则抛出IllegalArgumentException异常,如果方法失败则抛出RuntimeException异常。3.使用相机API辽宁轻工职业学院【知识准备】⑲publicfinalvoidstopPreview()来源版本:APILevel1方法功能说明:停止在画面上画预览帧。⑳publicfinalvoidstopSmoothZoom()来源版本:APILevel8方法功能说明:停止平滑变焦。如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 再生金属资源综合利用项目运营管理方案
- 水库建设工程运营管理方案
- 2025 人物传记精神内涵挖掘评估优化阅读理解课件
- 2025 高中阅读理解之语言象征意义课件
- 2026年食堂从业人员卫生规范试题及答案
- 2026年食堂餐饮院感管理试题及答案
- 2026年泌尿外科诊疗试题及答案
- 急诊科室岗位情景面试实操试题及答案
- 便利店烟草陈列合规考核试题
- 2026年梅州市公需科目考试题库
- 工会2025年度工作报告国企2025工会工作报告
- 2026年及未来5年市场数据中国税务大数据行业市场全景分析及投资前景展望报告
- 2026年中考英语专题复习:5个主题作文 预测练习题(含答案+范文)
- 2026年陕西能源职业技术学院单招职业适应性考试题库附参考答案详解(完整版)
- 24J113-1 内隔墙-轻质条板(一)
- 小区道路及室外管网配套工程施工设计方案
- 轨道交通防水工程施工质量验收标准
- 2026年乌海职业技术学院单招职业技能测试题库及一套答案详解
- 华南地区地理知识
- EHS现状介绍教学课件
- 危险化学品安全法解读
评论
0/150
提交评论