APP下载

一种OpenCV,VFW及VCM相结合的实时视频处理框架*

2010-09-17王江涛陈得宝

电视技术 2010年6期
关键词:应用程序摄像头框架

王江涛,陈得宝,邹 峰

(淮北师范大学 物理与电子信息学院,安徽 淮北 235000)

1 引言

随着数字信息和多媒体技术的迅速发展,视频图像处理系统正得到日益广泛的应用,特别是基于摄像头的实时视频采集与处理系统在智能监控、智能人机交互、虚拟现实、计算机视觉等领域得到越来越多的关注[1-4],如何高效地对摄像头进行视频采集和压缩保存对加快上述领域的发展有着重要的意义。笔者从Windows系统软件环境的角度探讨了当前通用的视频采集与保存技术,分析了这些技术的优缺点,在此基础上集成OpenCV,VFW和VCM三种软件开发技术设计了一种快捷、稳健的实时视频采集与处理方案。

2 相关开发模块介绍

2.1 OpenCV开发包

OpenCV是Intel资助的开源计算机视觉库。它由一系列C函数和少量C++函数构成,可以实现图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括300多个C函数的跨平台的中、高层API,不依赖于其他的外部库,对非商业应用和商业应用都是免费的。它具有以下特点:1)开源的计算机视觉库采用C/C++编写;2)使用目的是开发实时应用程序;3)独立于操作系统、硬件和图形管理器;4)具有通用的图像/视频载入、保存和获取模块;5)具有底层和高层的应用开发包。由此可见,OpenCV拥有强大的图像/视频处理功能[1,3],同时开放源代码非常方便程序员使用,在视频处理系统中,其突出的优点是在计算机与摄像头之间提供了一个方便的软件接口,可以采用简单的函数来实现对摄像头的驱动和图像采集,且由于其集成了DirectShow技术,视频采集时可以达到很高的实时性能。然而,在对采集的视频进行保存时,需要设计视频压缩格式的关键字,由于不同的操作系统中安装的视频压缩驱动不同,在保存设置压缩格式时往往不成功,这导致基于OpenCV的视频处理系统稳定性下降。

2.2 VFW

VFW(Video For Windows)是微软公司为开发Windows平台下的视频应用程序提供的软件工具包,提供了一系列应用程序编程接口(API),可以很方便地实现视频捕获、视频编辑及视频播放等通用功能[2],还可利用回调函数开发更复杂的视频应用程序。它的特点是播放视频时不需要专用的硬件设备,而且应用灵活,可以满足视频应用程序开发的需要。Windows操作系统携带了VFW,安装系统时,会自动安装VFW的相关组件。VC++自4.0版本就支持VFW,大大简化了视频应用程序的开发。目前,PC机上多媒体应用程序的视频部分,大都是利用VFW API开发的。

VFW的优点是提供了对视频进行读写的接口,可以方便地将视频流数据保存为AVI格式的视频。其缺点是在连续抓取图像时实时性能不足,另外,在保存视频时,每次都需要弹出对话框来选择当前的视频压缩格式,这也导致视频处理系统的不方便。

2.3 VCM

由于视频数据的巨大容量,在保存视频文件时,采用一定的压缩格式对视频文件进行压缩是必不可少的步骤。Windows中提供了视频压缩管理器(Video Compression Manager,VCM),通过该接口可以访问Windows系统已经安装了的压缩器,从而获取当前可用的压缩格式信息。VCM提供了ICGetInfo函数来得到压缩器或解码器的信息,这个函数把解码器和压缩器的信息写入一个ICINFO的数据结构中。ICINFO数据结构体中可以提供很多关于压缩器或者解码器性能的信息。由于在不同的系统中可能存在不同的压缩器格式,引入VCM模块就可以采用首先遍历系统中存在的压缩器格式,然后选取其中的一种进行压缩的方法,避免了压缩格式不存在而导致的压缩不成功。

3 实时视频处理方案的设计及实现

集合OpenCV,VFW和VCM的优点,笔者设计一种实时性能高、稳定性好的视频处理系统。系统流程见图1。

图1 实时视频处理系统流程

3.1 方案概述

在该系统框架中计算机与摄像头的驱动接口部分采用了OpenCV技术,该技术集成的DirectShow模块可以方便地驱动摄像头并实时抓拍图像。在抓取图像后系统进入图像处理流程,在该流程后采用VFW技术建立视频文件保存所抓取的图像。为了克服VFW每次都需要弹出对话框选择视频压缩格式的缺点,引入VCM接口自动选择视频压缩格式,避免了OpenCV设置压缩格式时导致的不稳定性。

3.2 方案的实现

下面给出实现所设计视频处理系统关键步骤的部分代码:

为了验证上述视频采集与保存构架的可靠性和实时性,笔者采用上述思路设计了基于视频的动物迷宫行为分析软件,图2为该软件的示意图。该软件用摄像头以25 f/s(帧/秒)的速度采集图像进行实时处理,得到图像中动物的运动信息,同时自动选择压缩格式对视频进行保存。实验表明,软件完全可以满足实际应用的要求。

4 小结

从提高视频处理框架的实时性和稳健性出发,设计了一种视频实时处理框架,该框架以OpenCV作为摄像机接口,在对视频进行保存时采用了VFW与VCM相结合的功能结构,这为基于摄像头的实时视频处理任务提供了一套高效的解决方案。实验表明该框架可以稳健地应用在实时环境中,采用该框架设计的视频处理软件已得到成功的应用。

[1]常丹华,杨冬冬,韩夏.OpenCV在智能监控方面的应用研究[J].电视技术,2009,33(9):101-103.

[2]许成亮,胡剑凌,徐盛.基于VFW的人脸监控系统实现[J].电视技术,2005,29(5):93-96.

[3]刘瑞祯,于仕琪.OpenCV教程——基础篇[M].北京:北京航空航天大学出版社,2007.

[4]WANG Jiangtao,YANG Jingyu.Relative discriminative coefficient based multi-cue fusion for Robust object tracking[J].Frontiers of Electrical and Electronic Engineering in China,2008,3 (3):274-282.

猜你喜欢

应用程序摄像头框架
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
框架
广义框架的不相交性
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
关于原点对称的不规则Gabor框架的构造
一种基于OpenStack的云应用开发框架
奔驰360°摄像头系统介绍
三星电子将开设应用程序下载商店