基于OpenCV和DirectShow的交通运动目标检测算法研究
2012-03-06马宏锋王宏斌
刘 馨 ,马宏锋 ,2,王宏斌
(1.兰州工业学院电子信息工程系,甘肃兰州730050;2.兰州交通大学电子与信息工程学院,甘肃兰州 730070)
随着我国经济建设的快速发展,城市人口和机动车辆急剧增加,交通拥挤堵塞严重,因此如何有效管理交通信息对解决城市交通问题起到越来越重要的意义。由于运动目标的视频图像序列中提供了丰富的信息,这是智能交通监控系统研究的热点,其中如何准确地检测出视频图像中的运动目标直接影响监控系统的效果。
本文采用VC++6.0、DirectShow和OpenCV2.0技术,实现了一个基于视频的交通车辆检测系统,主要工作体现在以下几个方面:1采用DirectShow技术获取视频信号中的图像帧;2采用OpenCV库对图像进行处理并提取出感兴趣的区域;3采用基于多帧平均算法的背景差分法将感兴趣区域中的运动车辆检测出来。
1 开发环境介绍
1.1 DirectShow介绍
DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM(compo⁃nent object model,COM)的流媒体处理的开发包,采用Filter Graph来管理整个数据流的处理过程,可从采集卡上捕捉数据并用于后期处理[1]。DirectShow可将应用程序和硬件设备隔离开来,它即支持各种媒体格式(如Avi,Mp3,Asf等),也支持WDM和VFW驱动的采集卡,为媒体流的采集提供有力的支持。
DirectShow的基本构建模块称为滤波器(Filter)组件,DirectShow可将数据流的处理过程分解成若干步骤,每一步由一个Filter来完成。Filter可根据功能的不同分为3类:Source Filters,Transform Filters和Ren⁃dering Filters。Source filters主要负责取得数据,数据源可以是文件、因特网、或者计算机里的采集卡、数字摄像机等;Transform Filters主要负责数据的格式转换、数据流的分解或集合、传输;……
