张玉萍,邹 澎
(郑州大学信息工程学院,河南 郑州 450001)
责任编辑:任健男
随着信息技术的飞速发展,视频采集系统广泛应用于数码摄像、安防监控、机器人视觉等众多领域。Linux操作系统以其免费、开源等诸多优势,成为嵌入式设备开发的研究热点,同时Qt/Embedded是Trolltech开发商发布的嵌入式版本GUI开发工具,主要运行在Linux系统上,它包含完整的C++图形界面开发工具包,并具有整套供应用程序开发的标准API函数,以其开源性、跨平台性、界面艺术美观性,适合高端应用性等特点,在嵌入式设备中得到广泛的应用。因此采用基于Qt/Embedded视频采集方案,性价比更高。
嵌入式设备视频采集GUI设计的过程中,以往多采用QTimer定时器类实现图像的连续性。该方案中时间的设定依赖于嵌入式平台和摄像头的类型,需要多次测试,过程较为繁琐。本文调用V4L2提供的API接口函数以及在设计相同的Qt/Embedded图像用户界面基础上,分别使用QThread类和QPainter类库两种方案,实现把USB摄像头采集的图像实时的显示在GUI界面上。
V4L2是Linux系统中关于视频设备的内核驱动,它为视频设备的应用程序提供一系列接口函数[1-2]。本文Linux系统内核版本为2.6.29在内核定制过程中,已经加入了对V4L2模块及USB摄像头的支持,两种方案中图像的采集程序均调用V4L2模块提供的主要编程接口函数获取USB摄像头中图像数据,V4L2下视频编程的流程如图1所示。

图1 视频编程流程图
下面对流程中用到的V4L2主要的API函数作简要分析,并给出具体的参数设置。
1)打开设备操作……p>