、吣。多媒体技术及其应用..。。..本栏目责任编辑:李桂瑾
基于VB6.0下的对网络摄像头视频捕捉
王海峰。章怡
(江苏技术师范学院信息与教育技术中心,江苏常州213001)
摘要:随着通信技术与多媒体技术的飞速发展,以多媒体视频为主的应用得到了广阔的发展,在这些视频应用领域中,若想进行图像处理就要先进行视频捕获。鉴于此.文章对windows系统下的vFw体系结构进行了论述、给出了视频开发的相关windowsAPI函数,分析了视频捕获的工作流程:并用Ⅶ来设计和实现视频捕捉程序,具体的给出了程序的代码,最后给出了测试结果,证明是可以捕捉的
关键词:VFW;视频捕捉;WindowsApI;AVICap
中图分类号:TP393文献标识码:A文章编号:1009—3044(2007)15—3854一02
VideOCaOtureofNetwork—vidicOnBasedOnVB6。0
WANGHai—feng,ZHANGYi
(InfomntionandEducationalTechniqueCenter,Jian铲uTeachersuniverSicyofTechn0109y’Changzhou213001,china)’AbStract:WiththerapiddeveIopmentofcommunjcationandmultimediatechnique,theapphca七ionofthemultimediaVideogotbroadde—
velopment,inthedomainof试deoapplication,supposetocarryirmgemampuladon,must丘rstimplementtheVideocapture.consequently,thearticlehasca玎iedtheelaborationtoVFW郸stemstmctureundertheWindowssystem,hasproducedWmdowsAPIfunctionaboutvideocapcure,hasanalyzedcheworbngprocessofchevideocapcure;videocapcurepmgmmmehasbeendesignedandjmplemenc
wi出Ⅷ,programme
code如§beenproduced.Finally,theresultof
Video乒aptureis
feasibl己
Keywords:VpW;videocapture;WindowsAPImnction;AVICap
1引言
1992年.Microsoft公司发布了VideoforWindowsf以下简称
VFWl,使得任何PC机都能在无特定硬件支持的条件下播放视频画面。它以纯软件的方式从模拟视频源采集数字视频信号并将其存储到文件中或直接对视频缓存进行处理。
VFW的一个关键思想是播放时不需要专用硬件,为了解决数字视频数据量大的问题.需要对数据进行压缩,它引进了AVI(AudioVideoInterleave)文件标准,规定了视频和音频数据以交织的方式进行存储。这种按交替方式组织视频和音频数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。
Windows本身包括了VFW,当用户在安装Windows时,安装程序会自动地安装配置视频所需的视频组件.如设备驱动程序、视频压缩程序等。
在VFW开发包中自带了一个视频捕捉的工具vidcap,它使
用了VFW视频捕捉模块AVIC印的大量API(ApplicationPmgmmInte渤ce。应用程序接口)函数实现实时的视频捕捉。
2VFW体系结构
V唧以消息驱动方式对视频设备进行存取.可以很方便地控制设备数据流的工作过程。它主要包括多个动态连接库,通过这些组件间的协调合作,来完成视频的捕捉、视频压缩及播放功能。VFW体系结构如图1所示。
VFW主要由六个模块组成:
(1)AvICAP.DLL:它主要实现视频捕捉功能。它包含了用于视
频捕捉的函数.为AVI文件输入输出和视频、音频设备驱动程序
提供一个高级接口。
f2)MSVIDE0.DLL:用一套特殊的DrawDib函数来处理屏幕上
的视频操作.能够将视频捕捉窗口与捕捉驱动设备连接起来,支
持ICM视频编码服务。
f3)MCIAVI.DRV:它包含了对VFW的MCI命令解释器,实现
回放功能。
(4)AVIFILE.DLL:支持由标准多媒体I/o函数提供的更高的命
令来访问AVI文件。
(5)ICM(InstallablecompressionmaIlager):即压缩管理器,提供
对存储在AVI文件中视频图像数据的压缩、解压缩服务。
(6)ACM(AudioCompressionManager):即音频压缩管理器,提供与ICM相似的服务,不同之处是它适用于波形音频。
Micmsoft的VisualBasic支持VFW,在此开发平台上,可通过多媒体控制接口实
现与声音、视频等多媒体信息打交道.开发出多媒体应用程序。
采囊控序1l回放程序Il编辑程序
^VIc^P.DU.IMCI^Vl
^vlc坤lI¨cI●◆转攥■IlMclw们
_I^c¨I
丽硎一E而
图1VFW体系结构图
3基于VFW下VB视频捕捉
3.1VFW视频捕捉模块AVICaD窗口类常用的数据结构
在利用AVICap编程时,常常要用到与视频捕捉相关的结构。下面对常用的4个结构作以简要介绍。对于前3个结构都有对应的函数来设置和获得结构包含的信息。
(1)CAPS7rATUS:定义捕捉窗口的当前状态;
(2)CAPDRIVERCAPS:定义捕捉设备的能力,如:有无预览能力,有无控制视频源。视频格式的对话框等;
f3)CAPTUREPARMS:包含控制视频流捕捉过程的参数,如捕捉帧频,指定键盘或鼠标键以终止捕捉,捕捉时间限制等;
(4)VIDEOHDR:定义视频数据块的头信息。在编写回调函数时常用到其数据成员1pData(指向数据缓存的指针)和dwBu如r.kn黜h(数据缓存的大小)。
3.2VFW视频捕捉的工作流程
利用VB进行视频捕捉的设计需要遵循如图2程序流程:
3.3WindowsAPI视频相关函数
在用VB6.0进行视频捕捉的肘候需要用到WindowsAPI视频相关函数,第一个是建立视频窗口的函数
DeclareFunctioncapCreateCaptureWindowLib”avicap32.dllI’-Alias”capCreateCaptureWindow”(BvVallpszWindowNameAs
收稿日期:2007一07—21
作者简介:王海峰(1977一),男,江苏常州人,助理工程师,硕士研究生,研究方向:远程状态检测与远程监控,嵌入式系统。854’{黟电奠知识与技术
 万方数据
本栏目责任编辑:李桂瑾.。。...多媒体技术及其应用./String,一ByValdwStyleAsLong,一ByValAsLong,一ByValyAs
Long,一ByValnWidthAs
Long,一ByValnHeight
As
L0ng,一ByVal
hwndParentAsI如ng’BvValnIDAskn妁Askng其中第一个参数lpszWindowName表示窗口名,参数x、y、nWidth、nHeight分别描述窗口的位置
和大小信息,hwndParent表示其父窗口的句柄,最后一个参数nID为窗口ID。函数返回值为新创建的捕捉窗口句柄。
视频掩获窗口
注册系统回调函
设置捕获窗口相关参数
与视频采集设备连接
获取视频采集设备的能力及状态信息
设置捕捉寓口的显示
捕捉视频到缓存或文件并进行处理
止视频捕捉并断开与视频捕获设备
图2视频捕提工作流程
第二个为摄像头信息的提取,用于查系统中有几个可用的摄像头:
Decl御^eFunctioncapGetDriverDescriptionLib”avicap32.dU”—-A1ias”capGetDriverDescriptionA”(ByValdwDriverIndexA8Long,~ByVallpszNameAsString,一ByValcbNameAsLong,一ByVallpszVerAsString,一ByVal
cbVerAsL0n曲Asbng参数dw-DriverIndex表示需要返回的摄像头索引号,lpszName为摄像头名称1pszver为版本信息。
第三个是消息发送函数,用于软件和系统摄像头之间的消息发送,本此设计捕捉中用的是下面这个消息来发送数据:DeclareFunctionSendMessageAsLongLib”user32”Alias”SendMessageA”一(ByValhWndAsLong,一ByValwMsgAsLong,一
ByValwPammAs
Long,一ByVallParamAsLong)A8I.ong
其中hWnd为创建的捕捉窗口句柄,wMsg为消息,也就是说告诉系统中V唧需要做什么。
4视频捕捉的设计与实现
利用VFW技术实现视频的捕捉主要是通过调用其视频捕捉模块AVIC印.dll创建AVICap窗口类,并借助窗口类中的结构、回调函数以及宏函数来完成。而本次的视频捕捉是运用系统消息函数向捕捉窗口发送消息来建立捕捉窗口与捕捉设备的联系的。捕捉之前我们首先要安装上网络摄像头,下面将给出VB捕捉的具体程序代码,并配上注解。
VB视频捕捉的程序代码如下:
0ptionExplicit
DimhCapWndAsLong‘设置捕捉窗口句柄
PrivateSubFonll一I田ad0
DimMessagepmmAsLong‘设置发送消息参数
DimAskng
DimyAsL0ng
x=Fo姗1.Height
y=Fonlll.Width
hC印Wnd=capCreateCaptureWindow(”视频捕捉”,Ws_CHILD0rWS—vISIBLE,0,0,x,y,Me.hWnd'0),创建的窗口能足够显示摄像头的内容ⅡO=hCapWnd.111en’当无法创建窗口时,出现提示
MsgBox”不能建立视频捕捉窗口”,vbCritical,”视频捕捉”
ExitSub
EndIf
‘发送与摄像头设备连接的消息
Messagepmm=SendMessageAskng(hcapwnd,
WM—CAP—DRIVER—CONNECT,0,0)
‘通过消息设置帧频.默认为15帧/秒
MessagepmmSendMessageAsImng(hCapWnd,
WM—CAP—SET—PREVIEWRATE,66,0)
‘通过消息发送“开始向捕捉窗口发送画面”
MessagepmmSendMessageAsLong(hCapWnd,
WM—CAP—SET—PREVIEW,1,0)
EndSub
PrivateSubFoHn—unload(CancelAsInteger)‘退出程序时关闭捕捉
DimCAPstopAsIJ0ng
CAPstop=SendMessageAsLong(hCapWnd,WM—CAP—STOP,0,01
EndSub
上述程序只是反映了视频如何捕捉的过程.对捕捉下来的视频运用AVIFILE来对视频进行存盘操
作,下面是视频捕捉的截图。
图3vB视频捕捉
5结束语
运用Windows系统下的VFW来开发一些视频应用软件.可以开发出适合自己软件要求的产品,但是它所捕捉的视频是AVI文件的.是占用空间比较大,如果要在网络上将捕捉下的视频进行远程传输,需要编写压缩代码进行压缩后才能。
参考文献:
【1】申华.基于Windows环境下视频捕捉技术的研究及应用【D】.辽宁:大连海事大学.2005.
【2】曹衍龙.VisualBasic系统开发实例精粹[M].北京:人民邮电出版社.2005:183—198.
[3】贝雷,王敏.用VideofbrWindows实现视频捕捉【J】.系统工程,
2000,18(6):63—65.
[4]琚章锋,刘娟.利用VFW进行视频开发【J】.电脑开发与应用,2004,17(7):20—22.
【5]陈珲,张会汀,周杰华.利用VFW实现实时视频捕捉及其应
用[J】.计算机应用,2003,23(8):14l一143.
 万方数据
基于VB 6.0下的对网络摄像头视频捕捉
作者:王海峰, 章怡, WANG Hai-feng, ZHANG Yi
vb课程教学视频
作者单位:江苏技术师范学院,信息与教育技术中心,江苏,常州,213001
刊名:
电脑知识与技术(学术交流)
英文刊名:COMPUTER KNOWLEDGE AND TECHNOLOGY
年,卷(期):2007,3(15)
引用次数:0次
1.申华基于Windows环境下视频捕捉技术的研究及应用 2005
2.曹衍龙Visual Basic系统开发实例精粹 2005
3.贝雷.王敏用VideoforWindows实现视频捕捉[期刊论文]-系统工程 2000(06)
4.琚章锋.刘娟利用VFW进行视频开发[期刊论文]-电脑开发与应用 2004(07)
5.陈珲.张会汀.周杰华利用VFW实现实时视频捕捉及其应用[期刊论文]-计算机应用 2003(08)
1.期刊论文冯晓倩.宋仲康.宋慧敏.FENG Xiao-qian.SONG Zhong-kang.SONG Hui-min基于VC++的视频捕捉技术-仪表技术2008,""(1)
介绍在Windows环境下基于USB接口的摄像头的视频捕捉的程序开发过程.使用VisualC++提供的VFW开发包实现了视频捕捉程序的设计,并对目前比较流行的视频捕捉技术进行比较.
2.学位论文张凡基于VFW和Directshow的视频捕捉技术研究2007
当前,随着视频监控、可视电话、电视会议等多媒体应用技术的迅速发展,人们对数字视频捕获技术的要求越来越高。应用系统不仅要求传输与处理那些事先存储下来的图像数据,更重要的是能够实时获取动态的图像信息,并能对这些信息进行实时处理。因此,实时的采集数字视频数据就成为这些应用系统中新的重要环节。
本文讨论了视频捕捉系统的设计与实现,利用VC6.0 结合VFW 和Directshow 两种实用的视频捕捉技术实现对视频的处理:
1)研究了VFW 的使用方法,在VC 操作系统中,调用VFW 函数,完成了显示对话框界面,使用AVICap 窗口类函数为实际应用提供了一种访问视频采集硬件的简便方法。
本系统可以在应用中方便地集成视频采集功能,能够利用VFW 技术灵活地实现从模拟视频源采集数字视频信号,并将其存储到文件中或直接对视频缓存进行处理。
2)研究了Directshow 组件的制作方法,主要是各种不同功能Filter 的制作方法以及WindowsCOM 编程的一些功能,由此实现了基于Directshow 的频采集系统的设计,成功地将解码显示端设计在Directshow 架构上。完成的软件结构更加模块化和层次化,采用VC++6. 0 和COM 技术开发,大大缩短了系统的开发时间,同时也提高了应用系统的兼容性和强壮性。
本文的研究意义在于:使用最新软件技术来实现视频捕捉。方案的成本低廉,视频和音频效果好,有很强的兼容性,配置方便灵活。由于方案采用的是层次型结构,因而根据网络不同条件,允许修改和扩展不同功能。
3.期刊论文沈旭.SHEN Xu实现视频捕捉的一种简单方法-计算机安全2007,""(10)
当前,随着视频监控、可视电话、电视会议等多媒体应用技术的迅速发展,对数字视频捕获技术的要求越来越高.实现视频捕获的方法有很多,该文主要介绍了微软公司VFW(Video for Windows)软件包中的A
VICap窗口类的成员函数和一些关键宏,以及与编写视频捕捉程序紧密相关的几个结构体.最后,通过一个视频捕捉应用程序,展示了如何具体实现视频捕捉,以及要注意的相关问题.
4.学位论文刘晓华IP会议电视图像汇接系统终端部分的设计与实现1998
在计算机网络飞速发展和TCP/IP技术日益完善的今天,IP会议电视取代原有的造价昂贵的会议电视系统已成必然之势.作者完成了一套基于TCP/IP的图像汇接系统,为今后全面实现国际标准H.323v2打下了基础.该文阐述了这一系统终端部分的分析和设计思路,介绍了OOA和OOD各个环节得出的一些模型.在系统实现部分重点介绍了视频捕捉技术和线程同步技术.
5.期刊论文刘显荣.LIU Xian-rong Windows平台下视频捕捉的几种实现方法-重庆科技学院学报(自然科学版)2006,8(2)
介绍了Windows平台下主要的视频捕捉方法,并对它们进行了比较.另外,给出了基于厂家SDK开发包实现视频捕捉的例程.
6.学位论文李江智能小区后台软件系统的设计与开发2004
伴随着现代化的计算机技术、传感技术、数据传输技术、网络技术、自动控制技术等各种技术的飞速发展,智能小区的概念和模型日趋成熟.与传统的住宅小区相比,智能小区提供给住户更加便捷的信息网络
、更加放心的安防系统以及更加人性化的社区管理模式.本文围绕着智能小区管理中心后台软件的设计和完善这一中心展开,旨在通过开发出功能丰富稳定的后台软件各功能模块,来提高小区管理的智能化水平和科技含量.论文首先介绍了我国智能小区的发展现状及其发展趋势,然后分析了典型的智能小区系统的功能模块及其组成.接着针对于本课题重点开发的后台软件,确定了软件中要实现的主要模块以及各模块预期实现的子功能.通过对各种数据库访问接口的分析以及数据库编程技术的探讨,完善了小区后台数据库基本数据信息的管理,如住户资料编码信息、报警记录等;通过对Windows串行通信技术的研究,最终运用两种思想(MSComm控件方法和自行设计的通用多串口类)实现了后台软件与硬件系统的通信交互功能;通过对VFW软件包的研究,运用其中的AVICap窗口类开发了视频捕捉模块;通过对TC35T的应用和PDU数据格式的编码解码,结合AT COMMAND和MSComm控件开发了无线GSM报警平台,实现了系统的自动报警与手动报警两种功能,并实现了警情的发功能.以上各功能模块的开发与完善,不仅实现了典型智能小区管理中心后台软件所需要的基本功能,而且也为以后整个软件平台的扩展与升级奠定了基础.整个后台软件系统运行稳定,在现场与硬件系统的联调中各功能模块基本实现预期指标.
7.期刊论文贝雷.王敏.Bei Lei.Wang Min用Video for Windows实现视频捕捉-系统工程2000,18(6)
本文介绍了Video for WindowS软件包中AVICap窗口类提供的主要函数和功能,以及如何使用AVICap窗口类进行视频捕捉,并给出了交通路口监控系统
中视频捕捉的一个实例.
8.学位论文余小宝雾图增强与恢复算法研究2003
该文针对雾图增强的有效方法进行了研究,提出了具有视觉特性的局部直方图均衡增强算法,并研制开发了图像增强实时处理系统.在恢复方面,对当前存在的多种方法进行了分析,并针对最典型的一种恢复算法编写了实现软件.论文主要包括以下工作:在图像增强方面,通过试验分析了当前已有的十二种代表性的图像增强算法的优缺点,在此基础上,提出了保留灰度级子块部分重叠直方图均衡算法,针对传统子块非重叠直方图均衡处理中不可避免出现的方块效应,提出了自适应消除方块效应的后续处理算法,形成了具有视觉特性的局部直方图均衡增强算法.在图像恢复方面,论文分析了国外在这个领域提出的几种代表性算法,着重研究了基于大气退化机理的三参数雾图退化模型恢复算法,结合最优化理论中的最小二乘法,用软件实现了雾图离线恢复处理
.在实时处理系统的实现中,该文用VC++6.0提供的VFW组件实现图像的捕捉,并编写了专门的图像处理类和视频捕捉类,易于维护和扩展新的功能.目前这套系统可以实现从摄像头实时捕捉图像和同步处理回放,也可以从摄像机磁带上捕捉之前记录的图像信息并且同步增强处理回放,稳定性很好.
9.期刊论文保文星.BAO Wen-xing在Windows下实现视频捕捉功能的应用-西北民族学院学报(自然科学版)
2002,23(3)
VFW支持实现的视频流捕捉和单帧图像捕捉,用户可以控制视频流的捕捉位置.使用AVICAP窗口类可以完成以下任务:将视频流和音频流捕获到一个
AVI文件中;将摘获的一个单帧图像保存为DIB格式的文件等等.文章主要论述使用VFW编程的方法和将关节镜电视信号转变为数字图像信号并存储到计算机的步骤和编程方法.
10.期刊论文何芳.He Fang应用Video for Windows进行视频捕捉的开发-电脑与电信2006,""(9)
本文介绍了应用Video for windows进行视频捕捉的开发程序.即,在windows操作系统中,使用摄像头或数码相机,通过视频采集卡,使用Video for Windows技术将镜头内容捕捉模拟视频信息转化为数字视频信息到计算机中,并转化为bmp或jpeg文件.
本文链接:d.g.wanfangdata/Periodical_dnzsyjs-itrzyksb200715136.aspx
下载时间:2010年6月1日