2010-10-12 46 views
1

在我们的项目中,我们想以编程方式访问网络摄像头图像。 我们遇到的主要问题是网络摄像机根据拍摄图像的亮度自动调整灵敏度。网络摄像头:以编程方式调整摄像头参数

是否有任何(平台无关)的方式来改变这种类型的摄像头参数(最好是任何型号)?

我们目前使用的是Ubuntu 10.04,Microsoft Windows XP & 7.编程语言是C/C++。

任何想法是赞赏。

感谢和问候 托比亚斯

回答

3

最有可能不会是你所需要的任何平台独立的方式。如果有的话,这可能是通过使用一些高级语言,这可能不适合。

我不知道Linux平台,但我是一个C + +/Windows/COM/DirectShow开发人员谁在基于互联网的视频应用程序工作。

在Windows平台上,捕获设备通过COM和DirectShow进行通信。

有关Windows上的视频捕获的一般概述,请参阅MSDN的Video Capture部分。

查看Selecting a Capture Device以获取有关如何枚举系统上捕获设备的信息。您需要枚举CLSID_VideoInputDeviceCategory中的设备,以便(以编程方式)将网络摄像头作为视频输入设备发现 - 此类别中可能有许多设备。

视频捕捉设备有一个“友好名称”来帮助识别您的网络摄像头,您可以存储和检索设备供以后使用。

一旦你有了设备,你的查询就表示你想配置设备。看看这个Configuring a Video Capture Device

DirectShow是微软最全面(也是最困难)的API之一。 The MSDN developer forum on DirectShow非常活跃,初学者友好,我强烈建议你检查一下。最后,捕获图并不是在DirectShow中构建的最简单的东西,我会以一个简单的回放图开始 - 例如,从磁盘回放媒体文件并从那里进行捕获图形。

VLC project是开源和跨平台,它使用DirectShow在Windows平台上播放。

祝你好运!

+0

接受。你好自由落体。感谢您的回复。认为我们应该找到一种方法来做到这一点。但VLC的提示可以解决我们的问题。谢谢。 – Atmocreations 2010-10-14 19:26:52