【VC++开源代码栏目提醒】:网学会员,鉴于大家对VC++开源代码十分关注,论文会员在此为大家搜集整理了“一种OpenCV_VFW及VCM相结合的实时视频处理框架 - 计算机教材”一文,供大家参考学习!
VIDEOENGINRINGNo06Vol.342010SumNo3431引言随着数字信息和多媒体技术的迅速发展视频图像处理系统正得到日益广泛的应用特别是基于摄像头的实时视频采集与处理系统在智能监控、智能人机交互、虚拟现实、计算机视觉等领域得到越来越多的关注1-4如何高效地对摄像头进行视频采集和压缩保存对加快上述领域的发展有着重要的意义。
笔者从Windows系统软件环境的角度探讨了当前通用的视频采集与保存技术分析了这些技术的优缺点在此基础上集成OpenCVVFW和VCM三种软件开发技术设计了一种快捷、稳健的实时视频采集与处理方案2相关开发模块介绍2.1OpenCV开发包OpenCV是Intel资助的
开源计算机视觉库它由一系列C函数和少量C函数构成可以实现图像处理和计算机视觉方面的很多通用算法OpenCV拥有包括300多个C函数的跨平台的中高层API不依赖于其他的外部库对非商业应用和商业应用都是免费的它具有以下特点1
开源的计算机视觉库采用C/C编写2使用目的是开发实时应用程序3独立于操作系统硬件和图形管理器4具有通用的图像/视频载入保存和获取模块5具有底层和高层的应用开发包。
由此可见OpenCV拥有强大的图像/视频处理功能13同时开放源
代码非常方便程序员使用在视频处理系统中其突出的优点是在计算机与摄像头之间提供了一个方便的软件接口可以采用简单的函数来实现对摄像头的驱动和图像采集且由于其集成了DirectShow技术视频采集时可以达到很高的实时性能。
然而在对采集的视频进行保存时需要设计视频压缩格式的关键字由于不同的操作系统中安装的视频压缩驱动不同在保存设置压缩格式时往往不成功这导致基于OpenCV的视频处理系统稳定性下降。
文章编号10028692201006-0035-03一种OpenCVVFW及VCM相结合的实时视频处理框架王江涛陈得宝邹峰淮北师范大学物理与电子信息学院安徽淮北235000【摘要】提出一种OpenCVVFW和VCM相结合的实时视频处理框架。
该框架以OpenCV中集成的DirectShow模块作为摄像机的驱动接口实时采集视频图像在对图像进行处理后采用VFW建立视频保存接口通过VCM技术自动选择当前可行的视频压缩格式避免了VFW需要弹出压缩格式对话框进行选择的缺点。
实验表明该视频处理框架具有稳定、实时的优点采用该框架设计的软件已在实际中得到应用。
【关键词】OpenCVVFWVCM视频处理【中图分类号】TP391.41【文献标识码】BReal-timeVideoProcessingFrameBasedonOpenCVVFWandVCMWANGJiang-taoCHENDe-baoZOUFengSchoolofPhysicalandElectronicInformationHuaibeiNormalUniversityAnhuiuaibei2350China【Abstract】Areal-timevideoprocessingframebasedonOpenCVVFWandVCMisproposedinthispaper.InthisframetheDirectShowmodulewhichisembeddedintheOpenCVdevelopmentkitisusedasthedriverinterfacebetweenthecomputerandcamera.AfterimageprocessingtheimagesequencesissavedasAVIvideobytheVFWVideoforWindowsandVCMVideoCompressionManagermodulewhichcanselectthecompressionformatautomatically.AndthismethodcanavoidthepopupdialogforcompressionformatselectioninVFW.Experimentalresultsshowthattheintroducedframeisstableandefficientvideoprocessingsoftwarewhichisdevelopedbasedonthisframeisappliedinindustrysuccessfully.【Keywords】OpenCVVFWVCMvideoprocessing·实用设计·安徽省自然科学基金项目0904127安徽省优秀青年人才基金项目29SQRZ88ZD安徽省高校省级科学研究项目KJ21B185Partsapplications352010年第34卷第06期总第343期2.2VFWVFWVideoForWindows是微软公司为开发Win-dows平台下的视频应用程序提供的软件工具包提供了一系列应用程序编程接口API可以很方便地实现视频捕获、视频编辑及视频播放等通用功能2还可利用回调函数开发更复杂的视频应用程序。
它的特点是播放视频时不需要专用的硬件设备而且应用灵活可以满足视频应用程序开发的需要。
Windows操作系统携带了VFW安装系统时会自动安装VFW的相关组件。
VC自4.0版本就支持VFW大大简化了视频应用程序的开发。
目前PC机上多媒体应用程序的视频部分大都是利用VFWAPI开发的。
VFW的优点是提供了对视频进行读写的接口可以方便地将视频流数据保存为AVI格式的视频。
其缺点是在连续抓取图像时实时性能不足另外在保存视频时每次都需要弹出对话框来选择当前的视频压缩格式这也导致视频处理系统的不方便。
2.3VCM由于视频数据的巨大容量在保存视频文件时采用一定的压缩格式对视频文件进行压缩是必不可少的步骤。
Windows中提供了视频压缩管理器VideoCom-pressionManagerVCM通过该接口可以访问Windows系统已经安装了的压缩器从而获取当前可用的压缩格式信息。
VCM提供了ICGetInfo函数来得到压缩器或解码器的信息这个函数把解码器和压缩器的信息写入一个ICINFO的数据结构中。
ICINFO数据结构体中可以提供很多关于压缩器或者解码器性能的信息。
由于在不同的系统中可能存在不同的压缩器格式引入VCM模块就可以采用首先遍历系统中存在的压缩器格式然后选取其中的一种进行压缩的方法避免了压缩格式不存在而导致的压缩不成功。
3实时视频处理方案的设计及实现集合OpenCVVFW和VCM的优点笔者设计一种实时性能高、稳定性好的视频处理系统。
系统流程见图1。
3.1方案概述在该系统框架中计算机与摄像头的驱动接口部分采用了OpenCV技术该技术集成的DirectShow模块可以方便地驱动摄像头并实时抓拍图像。
在抓取图像后系统进入图像处理流程在该流程后采用VFW技术建立视频文件保存所抓取的图像。
为了克服VFW每次都需要弹出对话框选择视频压缩格式的缺点引入VCM接口自动选择视频压缩格式避免了OpenCV设置压缩格式时导致的不稳定性。
3.2方案的实现下面给出实现所设计视频处理系统关键步骤的部分
代码IplImagepFrames//OpenCV中图像指针//摄像机驱动接口CCameraDScamera//OpenCV中的CCameraDS类对象camera.OpenCamera0false320240//启动摄像头不弹出属性选择窗口用
代码制定图像宽和高pFramescameraQueryFrame//采集图像//对图像进行处理//AVI视频文件保存接口AVIFileInitHRESULThrAVIFileOpenm_pFilevideosavenameOF_WRITEOF_CREATENULL//创建AVI文件AVISTREAMINFOstrhdr//AVI文件信息设置文件的大小、帧速HRESULThrAVIFileCreateStreamm_pFilem_psstrhdrAVICOMPRESSOPTIONSopts//压缩选项信息HIChicICINFOicinfo//压缩格式信息CStringstrDriverNameintfccTypeICTYPE_VIDEO//遍历当前可用的压缩格式进行选择forinti0ICInfofccTypeiicinfoihicICOpenicinfofccTypeicinfofccHandlerICMODE_QUERYICGetInfohicicinfosizeoficinfostrDriverNameCStringicinfoszDescription//获取压缩格式optsfccHandlericinfofccHandler//设置压缩格式ICClosehichrAVIMakeCompressedStreamm_psCompressedm_psoptsNULL//写入视频进行保存HRESULThrAVIStreamWritem_psCompressedm_FrmNums1pFramee-imageData320240AVIIF_KEYFRAMENULLNULLVCM获取压缩格OpenCV集成VFW视频保存接图像处理摄像头AVI视频文件图1实时视频处理系统流程器件与应用36VIDEOENGINRINGNo06Vol.342010SumNo343统计结果对于实际情况特别是对于01序列游程编码具有更高的编码效率也即提取出的有效位串0或1连续出现并且出现长串的概率很大这正是游程编码的优势所在。
对于视觉质量方面因为对JND模型进行了修正并且将边信息记录下来而不是连同水印信息一同嵌入到原始图像中去这样保证了原始图像的改变更小从而获得更好的视觉质量。
4小结笔者将人类视觉系统与无损数据压缩相结合提出了一种用于数字图像的可逆水印算法。
由于算法中采用游程编码对边信息进行压缩大大降低了边信息的大小从而提高了嵌入容量。
同时通过对JND模型的修正提高了水印图像的视觉质量。
参考文献1FENGJBLINICTSAICS.ReversiblewatermarkingcurrentstatusandkeyissuesJ.InternationalJournalofNetworkSecurity200623161-171.2GONZALEZRCWOODSREEDDINSSL.数字图像处理Matlab版M.阮秋琦译.北京电子工业出版社2008.3AWRANGJEBMKANKANHALLIMS.LosslesswatermarkingconsideringtheHumanVisualSystemEB/OL.2009-11-20.http//www.springerlink.com/content/5r5jgx37na2xvbuq/.4TIANJ.ReversibledataembeddingusingadifferenceexpansionJ.IEEETrans.CircuitsSystemsforVideoTechnology2003138890-896.5VLEESCHOUWERCDDELAIGLEJMACQB.CircularinterpretationofbijectivetransformationsinlosslesswatermarkingformediaassetmanagementJ.IEEETrans.Multimedia20035197-105.6NIZCSHIYQANSARINetal.Robustlosslessimagedatahidingdesignedforsemi-fragileimageauthenticationJ.IEEETrans.CircuitsSystemsforVideoTechnology2008184497-509.笕作者简介王泉1970-博士教授研究方向为数字图像处理李书欣989-本科生计算机科学与技术专业吴延赞988-本科生计算机科学与技术专业刘梦楠989-女本科生计算机科学与技术专业。
责任编辑任健男收稿日期200-03-26AVIFileExit//视频文件保存完成后退出camera.CloseCamera//关闭摄像头驱动接口为了验证上述视频采集与保存构架的可靠性和实时性笔者采用上述思路设计了基于视频的动物迷宫行为分析软件图2为该软件的示意图该软件用摄像头以25f/s帧/秒的速度采集图像进行实时处理得到图像中动物的运动信息同时自动选择压缩格式对视频进行保存实验表明软件完全可以满足实际应用的要求4小结从提高视频处理框架的实时性和稳健性出发设计了一种视频实时处理框架该框架以OpenCV作为摄像机接口在对视频进行保存时采用了VFW与VCM相结合的功能结构这为基于摄像头的实时视频处理任务提供了一套高效的解决方案实验表明该框架可以稳健地应用在实时环境中采用该框架设计的视频处理软件已得到成功的应用参考文献1常丹华杨冬冬韩夏.OpenCV在智能监控方面的应用研究J.电视技术2009339101-103.2许成亮胡剑凌徐盛.基于VFW的人脸监控系统实现J.电视技术200529593-96.3刘瑞祯于仕琪.OpenCV教程—基础篇M.北京北京航空航天大学出版社2007.4WANGJiangtaoYANGJingyu.Relativediscriminativecoefficientbasedmulti-cuefusionforRobustobjecttrackingJ.FrontiersofElectricalandElectronicEngineeringinChina200833274-282.笕作者简介王江涛979-博士副教授从事视频处理、计算机视觉方面的研究陈得宝975-博士副教授从事图像处理、智能计算方面的研究邹峰98-硕士讲师从事智能计算方面的研究。
责任编辑任健男收稿日期200-0-9上接第27页Partsapplications37