人脸识别-准备开发基本的环境(一)
2009-05-21 14:43
267 查看
1,windows xp
2,使用的库 Video for Windows(简称VFW)
3,或者使用库DirectShow
4, USB摄像头
2,3简介(转载)
VFW(Video for Windows)
Microsoft公司开发的Windows环境下视频服务软件或视窗软件VFW,是目前在MPC中较为流行的视频处理软件。它使MPC具有播放和处理数字视频的能力,而无需增加专门的硬件设备。VFW是一个功能齐全的视频、图像和音频数据的采集、编辑、控制和处理的工具软件组。由于音频、图像、视频的采集和编辑都有其专门的软件,因此,VFW程序组中使用最广的是媒体播放器(MediaPlayer)。
DirectShow是微软公司提供的在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布流媒体的处理,以其复杂性和技术性,一向广受工业界的关注。特别伴随着因特网的普及,流媒体在网络上的广泛应用,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。选择一种合适的应用方案,事半功倍。此时,微软的DirectShow,给了我们一个不错的选择。DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。目前,DirectX最新版本为8.1。
那么,DirectShow能够做些什么呢?且看,DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。 接下去,我们需要对DirectShow系统有个整体的印象。参见以下DirectShow的系统示意图:
图中央最大的一块即是DirectShow系统。DirectShow使用一种叫Filter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做Filter;各个Filter在Filter Graph中按一定的顺序连接成一条“流水线”协同工作。大家可以看到,按照功能来分,Filter大致分为三类:Source Filters、Transform Filters和Rendering Filters。Source Filters主要负责取得数据,数据源可以是文件、因特网、或者计算机里的采集卡、数字摄像机等,然后将数据往下传输;Transform Fitlers主要负责数据的格式转换、传输;Rendering Filtes主要负责数据的最终去向,我们可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。值得注意的是,三个部分并不是都只有一个Filter去完成功能。恰恰相反,每个部分往往是有几个Fitler协同工作的。比如,Transform Filters可能包含了一个Mpeg的解码Filter、以及视频色彩空间的转换Filter、音频采样频率转换Filter等等。除了系统提供的大量Filter外,我们可以定制自己的Filter,以完成我们需要的功能。下图是一条典型的Avi文件回放Filter Graph链路:
在DirectShow系统之上,我们看到的,即是我们的应用程序(Application)。应用程序要按照一定的意图建立起相应的Filter Graph,然后通过Filter Graph Manager来控制整个的数据处理过程。DirectShow能在Filter Graph运行的时候接收到各种事件,并通过消息的方式发送到我们的应用程序。这样,就实现了应用程序与DirectShow系统之间的交互。下图给出了DirectShow应用程序开发的一般过程:
以上简单介绍了DirectShow的系统结构,希望大家对这个强劲的应用框架已经有了大概的认识。如果你有兴趣,可以详细研究DirectX的帮助文档。DirectShow是一个强大的开发包;另外,它是基于COM的,因此要求程序员具有COM编程的一些基本知识。
2,使用的库 Video for Windows(简称VFW)
3,或者使用库DirectShow
4, USB摄像头
2,3简介(转载)
VFW(Video for Windows)
Microsoft公司开发的Windows环境下视频服务软件或视窗软件VFW,是目前在MPC中较为流行的视频处理软件。它使MPC具有播放和处理数字视频的能力,而无需增加专门的硬件设备。VFW是一个功能齐全的视频、图像和音频数据的采集、编辑、控制和处理的工具软件组。由于音频、图像、视频的采集和编辑都有其专门的软件,因此,VFW程序组中使用最广的是媒体播放器(MediaPlayer)。
DirectShow是微软公司提供的在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布流媒体的处理,以其复杂性和技术性,一向广受工业界的关注。特别伴随着因特网的普及,流媒体在网络上的广泛应用,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。选择一种合适的应用方案,事半功倍。此时,微软的DirectShow,给了我们一个不错的选择。DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。目前,DirectX最新版本为8.1。
那么,DirectShow能够做些什么呢?且看,DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。更值得一提的是,DirectShow提供的是一种开放式的开发环境,我们可以根据自己的需要定制自己的组件。 接下去,我们需要对DirectShow系统有个整体的印象。参见以下DirectShow的系统示意图:
图中央最大的一块即是DirectShow系统。DirectShow使用一种叫Filter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做Filter;各个Filter在Filter Graph中按一定的顺序连接成一条“流水线”协同工作。大家可以看到,按照功能来分,Filter大致分为三类:Source Filters、Transform Filters和Rendering Filters。Source Filters主要负责取得数据,数据源可以是文件、因特网、或者计算机里的采集卡、数字摄像机等,然后将数据往下传输;Transform Fitlers主要负责数据的格式转换、传输;Rendering Filtes主要负责数据的最终去向,我们可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。值得注意的是,三个部分并不是都只有一个Filter去完成功能。恰恰相反,每个部分往往是有几个Fitler协同工作的。比如,Transform Filters可能包含了一个Mpeg的解码Filter、以及视频色彩空间的转换Filter、音频采样频率转换Filter等等。除了系统提供的大量Filter外,我们可以定制自己的Filter,以完成我们需要的功能。下图是一条典型的Avi文件回放Filter Graph链路:
在DirectShow系统之上,我们看到的,即是我们的应用程序(Application)。应用程序要按照一定的意图建立起相应的Filter Graph,然后通过Filter Graph Manager来控制整个的数据处理过程。DirectShow能在Filter Graph运行的时候接收到各种事件,并通过消息的方式发送到我们的应用程序。这样,就实现了应用程序与DirectShow系统之间的交互。下图给出了DirectShow应用程序开发的一般过程:
以上简单介绍了DirectShow的系统结构,希望大家对这个强劲的应用框架已经有了大概的认识。如果你有兴趣,可以详细研究DirectX的帮助文档。DirectShow是一个强大的开发包;另外,它是基于COM的,因此要求程序员具有COM编程的一些基本知识。
相关文章推荐
- opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程
- 人脸识别系统开发(1) -- 系统及开发环境介绍
- 人脸识别系统开发(1)--系统及开发环境介绍
- 【Win10 应用开发】人脸识别
- linux系统上eclipse的hadoop开发环境准备
- iOS/Android开发人脸识别SDK列表
- Android Studio1.4.x JNI开发基础-基本环境配置
- Java自学之道(二) Java开发环境准备
- Java基本开发环境搭建
- android应用开发环境的准备
- Java基本开发环境搭建
- 疯狂Java之学习笔记(2)-----------Java的开发准备及环境配置
- 准备搭建个eclipse或者直接用myeclipse搭建个web开发环境
- vue开发环境的准备-nodejs安装
- Android开发-基本概念小整理(一)为了面试的小伙伴们所准备~~
- 在Ubuntu下准备Nodejs开发环境
- 准备一个linux 开发环境
- 应用程序框架实战十:开发环境准备与学习资料清单
- 开发环境准备
- MTK Android 开发编译环境准备