如何在.NET中连接到USB摄像头?

我想在.NET中连接到USB摄像头,特别是使用C#。 .NET新手我不知道标准库中有什么样的支持。 我发现在networking上的一个例子,通过剪贴板复制位图,但这似乎很hacky(可能很慢)。 有没有更好的办法?

您将需要使用Windows图像采集(WIA)将摄像头与您的应用程序集成。 这里有很多很好的例子。 这里是一个带有源代码的C#摄像头用户控件 。

这里有一些更多的文章和博客文章来解决同样的问题:

  • MSDN Coding4Fun:看着我! Windows图像采集
  • CodeProject:WIA脚本和.NET
  • CodeProject:使用WIA的WebCam Fast Image Capture服务
  • clausn.dk:来自C#和WIA的networking摄像机控制

有意思的是,WIA不再支持Vista摄像头。 他们主要针对扫描仪和从相机拉静物。

另外,像Logitech这样的大厂商已经放弃了WIA,而是DirectShow的青睐。

这是做这个很好的例子。 它使用DirectShow.Net( http://directshownet.sourceforge.net/ ),这比使用“剪贴板”更好:D。

http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx

这个软件包的function与计算机视觉系统有很多关系,叫做AForge。 如果你还在寻找,他们有一个简单的方法来从USB摄像头获得摄像头图像。

请查看计算机视觉运动传感器示例代码的示例代码。 我敢肯定你可以象我一样从你的函数中调用你需要的函数。

[对不起,这可能对未来的某个人有用]

在我的电脑上,WIA很苦恼,所以我决定尝试Windows多媒体video捕捉 。

你可以在这里find一个演示。

这真的取决于你想要做什么。 WIA主要用于从成像设备捕捉静止图像,DirectShow(通过directshow.net或托pipeDirectX使用)用于访问更全面的videofunction。

另一种select是创build一个WPF应用程序。 它有大量的内置video支持(以一个循环的video剪辑作为button非常简单),并且应该快速且容易地开发。