- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
视频捕捉程序开发基本步骤
2 视频捕捉程序开发的基本步骤
2.1 使用AVICap窗口类
笔者使用的是AVICap窗口类来开发视频捕捉程序。AVICap类支持实时视频流捕捉和单帧捕捉,并提供对视频源的控制。通常使用的MCI控件虽然也提供了数字视频服务。并为视频叠加提供了Overlay命令集等,但这些命令主要是基于文件的操作,还不能满足实时地从视频缓存中提取数据的要求。对于使用没有视频叠加能力的捕捉卡的PC机来说,用MCI提供的命令集是无法捕捉视频流的。而AVICap窗口类在捕捉视频方面具有一定的优势,它能直接访问视频缓冲区,而不需要生成中间文件,因而实时性很强,效率也很高。另外,它还可将数字视频捕捉到一个文件中。
2.2 开发的基本步骤
开发视频捕捉程序主要有以下四个步骤:
(1)创建“捕捉窗”。
在进行视频捕捉之前必需要先创建一个“捕捉窗”,并应以此为基础进行所有的捕捉及设置操作。“捕捉窗”可用AVICap窗口类的“Cap Create Capture Window”函数来创建,其窗口风格可设置为WSCHILD和WS_VISIBLE参数。
“捕捉窗”类似于标准控件,它具有下列功能:
将视频流和音频流捕捉到一个AVI文件中;
动态地同视频和音频输入器件连接或断开;
以Overlay或Preview模式对输入的视频流进行实时显示;
在捕捉时,可指定所用的文件名,并可将捕捉文件的内容拷贝到另一个文件;
设置捕捉速率;
显示控制视频源、视频格式及视频压缩的对话框;
创建、保存或载入调色板;
将图像和相关的调色板拷贝到剪贴板;
将捕捉的单帧图像保存到DIB格式文件。
(2)关联捕捉窗和驱动程序
单独定义的捕捉窗是不能工作的,它须与一个设备相关联才能取得视频信号。用函数CapDriver Connect可使捕捉窗与其设备驱动程序相关联。
(3)设置视频设备的属性
通过设置TcaptureParms结构变量的各个成员变量,可以控制设备的采样频率、中断采样按键、状态行为。设置好TcaptureParms结构变量后,可以用函CapCaptureSetSetup使设置生效。之后还可以用CapPreviewScale、CapPreviewRate设置预览的比例与速度,也可以直接使用设备的默认值。
(4)打开预览
利用函数CapOverlay可选择是否采用叠加模式预览,以使系统资源占用小,视频显示速度加快。然后用CapPreview启动预览功能,这时就可以在屏幕上看到来自摄像机的图像了。
通过以上四步就可以建立一个基本的视频捕捉程序,但假如想自己处理从设备捕捉到的视频数据,则要使用捕捉窗回调函数来处理,比如一帧一帧地获得视频数据或以流的方式获得视频数据等。
3 基于Delphi的视频捕捉程序
根据系统对系统访问、处理速度等方面的非凡需求,笔者选用Delphi作为开发工具。下面以开发一个逐帧从视频设备上捕捉视频数据的程序为例,来说明每个函数的作用以及开发的具体过程。所给例程的功能是可以在屏幕上显示捕捉到的视频,并可以获得每一帧的图像数据。具体步骤如下:
(1)新建一个工程,并将AVICAP32.PAS包含到USES中。
{PASCAL INTERFACE for AVICAP32 DLL}{Converted from microsoft Header file by ArTee}{Free to use - Im NOT responsible fo bugs}unit avicap32;
interface
uses Windows, Messages, SysUtils, MMSystem;
?//This part might be buggy.?//It Assumes types because I cannot find the correct unittype? HVIDEO = longword; //Handle;? UINT?? = longword;
? POINT = record??? x, y: integer? end;? LPPOINT = ^POINT;
? FOURCC = record??? c1, c2, c3, c4: char;? end;? mmioFOURCC = FOURCC;? LPVOID???? = Pointer;//LPWAVEHDR, LPVIDEOHDR worden gebruikt in de call-back functions! ik heb ze maar gereplaced met integers.
{***************************************************************************?*
您可能关注的文档
- 英文,和NF-KB有关,大家见笑了.pdf
- 自然条件对交通线路影响.ppt
- 计量经济学第02章 经济时间序列季节调整、分解和平滑.ppt
- 英语教师转型为医学英语教师可行性分析与研究_刘利梅.pdf
- 计算机网络病毒特点与其防范措施.doc
- 英语网络自主学习与课堂英语教学优势互补.pdf
- 英语被动语态翻译浅析.pdf
- 英国大学情况.pdf
- 英语词性之间转换与重译.ppt
- 英雄联盟 - 英雄篇 另辟蹊径玩法:卡利斯塔辅助 适配阵容与攻略.pdf
- 五年级数学上册5简易方程2解简易方程第8课时实际问题与方程3教学设计新人教版.doc
- 2024_2025学年新教材高中生物第2章细胞的结构和生命活动第3节第1课时细胞质膜具有选择透过性教案苏教版必修1.doc
- 江苏专用2025版高考地理一轮复习第十二章人类与地理环境的协调发展1人类与地理环境的协调练习含解析新人教版.doc
- 2024_2025学年高中化学第一章物质结构元素周期律第三节化学键练习含解析新人教版必修2.docx
- 2024_2025学年高中政治专题二君主立宪制和民主共和制:以英国和法国为例综合训练含解析新人教版选修3.docx
- 2024_2025学年高中生物课时分层作业18捕获光能的色素和结构含解析新人教版必修1.doc
- 2024_2025学年高中政治专题一古典政治经济学巨匠的理论遗产第3框李嘉图的理论贡献学案新人教版选修2.doc
- 2024_2025学年新教材高中生物第6章细胞的生命历程3细胞的衰老和死亡学案2新人教版必修1.doc
- 2024_2025学年新教材高中生物第6章生物的进化1生物有共同祖先的证据学案新人教版必修2.doc
- 司机保证书15篇 .pdf
文档评论(0)