嵌入式多摄像头采集.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式多摄像头采集

基于嵌入式系统的多摄像头图像采集 前言 研究背景及意义 随着机器视觉技术的发展,越来越多的机器人工作时需要采集周围环境的图像信息。对某些机器平台来说,周围环境的全景信息更是其进行定位、移动规划时所需的必要信息。 本课题的目标在于搭建基于嵌入式的多摄像头图像采集系统。与一般通过特殊设备(如鱼眼镜头、折射反射镜)来实现全景图像采集功能的系统不同,本课题通过多个市面上一般的USB摄像头设备采集周围的图像信息,再通过图像拼接算法将这些摄像头采集到的图像数据合成全景图片。 一、系统硬件平台介绍 (1) ARM开发板选择 广州天嵌计算机科技有限公司TQ210开发板采用三星Cortex-A8 S5PV210核心板,CPU运行速度最大可达1GHz,32/32KB一级缓存,512KB二级缓存。自带3D图形加速引擎(SGX540),2D图形加速,最大支持8192×8192分辨率。 (2) 摄像头选择 中心微公司出品的具有150度广角的USB摄像头。该摄像头的型号为XS998,有1200万像素,免驱,感光元件类型为CMOS,最大分辨率为1280×720,支持UVC协议 (3) 硬件平台搭建 本课题的最终目标是实现基于嵌入式的多摄像头全景图像采集系统。由于需要采集周围环境的全景图像信息,所以对摄像头的位置有一定的要求。摄像头摆放的相对位置如右图所示。 单摄像头图像采集 一、搭建Android开发环境 (1)安装JDK(Java SE Development Kit); (2)安装Eclipse; (3)安装Android SDK(Software Development Kit); (4)安装ADT(Android Development Tools)插件; (5)在Eclipse中设定Android SDK主目录; 二、相关驱动介绍 (1)V4L2(Video for Linux two)驱动 2)UVC(USB Video Class) UVC(USB Video Class)是由微软发起的一种USB视频类标准,主要用于摄像头,扫描仪等图像设备。该协议主要用于提供一种基USB的视频图像设备的一种视频图像传输的标准。 UVC驱动的实现源码位于drivers/media/video/uvc/uvc_driver.c中。当系统外接USB图像采集设备如USB摄像头时,系统就会调用该文件,检测USB设备所能实现的功能,将该USB图像采集设备注册成一个V4L2视频设备,并将该video设备文件存放在系统的/dev目录下。 三、JNI技术 JNI是Java平台上定义的一套接口标准。它的存在使得Java能和C语言等其它编程语言进行交流,即让Java能调用用C语言编写的代码。具体来看,当Java想调用C语言编写的文件,需先将这个文件生成一个动态链接库,再将这个动态链接库导入到Android程序中。 四、图像采集程序 1.采集流程 2.主要步骤 (1) 打开设备文件。 (2) 查看设备功能,若设备能采集图像,设置输入图像的格式 (3) 设置设备采集的图像编码格式为YUYV (4) 向驱动申请帧缓冲,用来存放采集的图像数据。本系统申请了4个缓冲区。 (5) 将申请到的内存缓冲区放入图像采集队列。 (6) 开始数据采集。这里采用内存映射方法,程序直接获取摄像头采集的数据 (7) 处理数据。内存缓冲区将通过驱动从设备处采集的数据交给应用程序处理,自己清空数据后再被放入图像采集队列等待获取图像。 (8) 程序将从内存缓冲区得到的YUYV格式数据转化为RGB格式,在显示屏上显示出来。 (9) 图像采集过程结束,关闭视频设备。 3.编写程序 在清楚了Android系统如何通过USB摄像头采集视频图像信息后,本文编写完成一个简单的应用程序来实际实现单USB摄像头的图像采集。 该程序只有一个Activity,用来预览USB摄像头采集到的视频图像。同时本文将操作摄像头采集图像数据及对数据进行处理的函数方法都封装到用C语言编写的文件中,再通过Android系统中的JNI技术生成动态链接库将其导入程序中。通过调用这些函数本文编写了一个继承Android系统中的SurfaceView的CameraPreview类,通过此类实现数据采集工作,最终实现了单摄像头图像采集的功能。 五、多摄像头图像采集与图像处理 一、三摄像头图像采集 当将三个USB摄像头与开发板相连时,在系统目录下的dev文件夹中会生成video0,video4,video5三个设备文件(video1、video2、video3是Android4.0系统自带的文件,有特定的功能,不再对应外接的

文档评论(0)

juhui05 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档