从网络摄像头获取图像

时间:2012-10-04 12:04:07

标签: c# webcam

我正在尝试找到从托管C#中的网络摄像头获取图像(仅图像,而不是视频流)的方法。 通常人们建议图书馆,但他们是旧的或商业的或gpl。

如何在没有第三方库的情况下从网络摄像头获取图像?

更新。:感谢Media Foundation,我将使用它。

3 个答案:

答案 0 :(得分:2)

网络摄像头应该提供视频输入,而不是静止图像。因此,您可能感兴趣的原生API是用于视频捕获的API,即DirectShow和Media Foundation。

你最想要的是DirectShow,但它不适合与托管代码接口,所以你需要一个DirectShow.NET开源包装器。您通常会在那里开始视频流,一旦您拥有了良好的图像,就可以停止活动。

或者你可能会继续寻找一个随时可用的库,它可以为你提供上述功能。

DirectShow.NET示例之一可以满足您的需求。

  

DxSnap - 使用DirectShow从a的Still引脚拍摄快照   捕获设备。请注意,MS鼓励您使用WIA,但是如果   你想用DirectShow和C#做,这是怎么做的。

它提到了WIA,但是WIA API并非适用于所有(或任何最近的操作系统?)网络摄像头,WIA更像是扫描仪之类的设备。

其他API可能不太适合。

  • VFW(“avicap32.dll”)将您限制为设备的子集,简单但未与托管代码良好接口
  • 早期操作系统版本中没有提供Media Foundation

答案 1 :(得分:1)

我多年前写过这篇文章

VB.net中的

http://www.vbforums.com/showthread.php?344471-Vb.Net-WebCam-Class-(ICam))

您可以轻松将其移植到c#?

答案 2 :(得分:1)