实验十五USB摄像头实验..doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验十五USB摄像头实验.

实验十五 USB摄像头实验 【实验目的】 1、掌握USB摄像头和V4L视频驱动的配置方法 2、了解OpenCV的移植过程及编程方法 3、掌握Qt编程技巧 【实验原理】 USB摄像头以其良好的性能和低廉的价格得到广泛应用。同时因其灵活、方便的特性,易于集成到嵌入式系统中现有的符合Video for Linux标准的驱动程序配合通用应用程序摄像头属于视频类设备。在目前的Linux核心中,视频部分的标准是Video for Linux(简称V4L)。这个标准其实定义了一套接口,内核、驱动、应用程序以这个接口为标准进行交流。目前的V4L涵盖了视、音频流捕捉及处理等内容,USB摄像头也属于它支持的范畴。内核配置检查Linux中是否已经添加了Video4Linux驱动和对USB摄像头驱动模块的支持Video4Linux支持为视频采集设备提供编程接口使内核中加入OV511接口芯片的USB数字摄像头的驱动支持。OpenCV(Intel? Open Source Computer Vision Library) 是Intel 公司面向应用程序开发者开发的计算机视觉库。相对于其它图像函数库,OpenCV是一种源码开放式的函数库,对非商业用途和商业用途都免费penCV源码的分析,发现只有highgui的ShowImage函数用到了GTK+2.0中窗体控件,该函数主要完成将图像显示在GTK窗体上。通过实验发现,注释掉检查GTK+2.0的语句后,只是在编程时不能使用ShowImage函数,对OpenCV的其它功能并没有受影响。(具体注释掉的内容参考光盘所提供的实验十五源码中的opencv-arm文件中的configure.patch文件内容)。 (2)、交叉编译 将光盘提供的opencv-arm压缩文件解压到工作目录中(或将源码opencv-0.9.7.tar.gz压缩文件进行解压,并修改configure文件),利用configure对系统进行配置,然后执行编译和安装命令。 [root@localhost opencv-arm]$./configure -–host=arm-linux [root@ocalhost opencv-arm]$make [root@ocalhost opencv-arm]$make install 执行make install命令后,OpenCV将编译好的的库文件保存在/usr/local/lib目录下,头文件被复制在/usr/local/include/opencv目录中。主要的库文件:libhighgui.so.0.9.7、libhighgui.la、libcxcore.so.0.9.7、libcxcore.la、libcvaux.so.0.9.7、libcvaux.la、libcv.so.0.9.7、libcv.la及相应的符号链接。 (3)、库文件的下载 将编译好的库文件下载到目标平台上/usr/qpe/lib目录中,并设置OpenCV所需的环境参数LD_LIBRARY_PATH=/usr/qpe/lib:$LD_LIBRARY_PATH。 (4)、基于OpenCV的视频采集 OpenCV提供了cvCaptureFromCAM函数用作初始化摄像头CvCapture* cvCaptureFromCAM( int index ),其中参数index为系统的USB摄像头的序号,如果只有一个摄像头,则index为0;分配好CvCapture后,便可用cvSetCaptureProperty来设置属性int cvSetCaptureProperty( CvCapture* capture, int property_id, double value ), 实例如下: 摄像头初始化成功后,便可使用cvGrabFrame函数从摄像头帧cvGrabFrame原形为int cvGrabFrame( CvCapture* capture );再利用cvRetrieveFrame函数取回获取的帧cvRetrieveFrame函数返回的数据为OpenCV自定义的IplImage结构体,cvRetrieveFrame的原型为IplImage* cvRetrieveFrame( CvCapture* capture )。由于IplImage里的图像数据是24位真彩的三通道BGR,而在QImage为32位真彩的四通道(除BGR外,还有一个a通道),所以在Qt中,必须要对IplImage图像数据结构进行转换才能进行显示处理。转换函数。 3、USB摄像头源码编译 (1)、在/usr/local/目录下新建opencvlib_arm目录;将编译好的基于目标平台的OpenCV的库文件及相关符号链接复制到opencvlib_arm目

您可能关注的文档

文档评论(0)

dashewan + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档