📄 sy1003.htm
字号:
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>使用Windows API进行图像卡编程</p>
<p>(一)实验目的<br>
初步学会使用Windows Video Capture API</p>
<p>(二)实验内容<br>
Windows提供了一组多媒体API(Windows Multimedia)以实现Windows下的多媒体编程(主要是视频和声音)。其中包括视频API(Video
for Windows,简称VFW)专门处理视频。VFW主要包括AVI文件、视频压缩和视频捕捉(Video Capture)三大部分。使用Video Capture
API可以实现硬件无关的图像卡编程,并且可以将视频图像保存为AVI文件。</p>
<p>(三)实验步骤<br>
1、新建一个工程,在Project->Settings->Link->Object/libray module中加入库winmm.lib和vfw32.lib,在View类的CPP文件中加入#include
<vfw.h></p>
<p>2、在View类头文件中向View类加入成员变量HWND hWndCap;</p>
<p>3、在View类的OnCreate中加入</p>
<blockquote>
<p> //创建视频捕捉窗口<br>
hWndCap = capCreateCaptureWindow("Capture",WS_CHILD|WS_VISIBLE,0,0,160,120,m_hWnd,0);<br>
<br>
//连接到图像卡的驱动程序,这里假设驱动程序序号为0。<br>
//一般如果机器只装了一个图像卡,那么它的序号为0。<br>
capDriverConnect(hWndCap, 0);<br>
<br>
//设置显示视频的帧速率,66表示每帧66毫秒,即每秒15帧(15FPS)<br>
capPreviewRate(hWndCap, 66);<br>
<br>
//开始显示视频。可以使用capPreview(hWndCap,FALSE)停止显示。<br>
capPreview(hWndCap,TRUE);</p>
</blockquote>
<p>4、在View类的OnDestroy中加入</p>
<blockquote>
<p> ::DestroyWindow(hWndCap);</p>
</blockquote>
<p>5、捕捉视频,保存为AVI文件</p>
<blockquote>
<p>//设置AVI文件名,strFile为要保存的AVI文件名。<br>
//之后可以使用capFileAlloc预分配一些磁盘空间以提高性能。<br>
capFileSetCaptureFile(hWndCap,strFile);<br>
<br>
//开始捕捉,点击鼠标或按ESC结束。<br>
//之前可以调用capCaptureSetSetup进行一些相关设置。<br>
capCaptureSequence(hWndCap);</p>
</blockquote>
<p>6、捕捉一帧,保存为BMP文件</p>
<blockquote>
<p>//strFile为要保存的BMP文件名<br>
capFileSaveDIB(hWndCap,strFile);</p>
</blockquote>
<p>(四)源程序</p>
<p>完整程序<a href="cap2.rar">下载</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -