【发布时间】:2010-09-11 22:08:00
【问题描述】:
我想连接到 .NET 中的 USB 网络摄像头,特别是使用 C#。作为 .NET 的新手,我不知道标准库中有什么样的支持。我在网上找到了一个通过剪贴板复制位图的示例,但这看起来很笨拙(而且可能很慢)。有没有更好的办法?
【问题讨论】:
标签: c# .net camera webcam image-capture
我想连接到 .NET 中的 USB 网络摄像头,特别是使用 C#。作为 .NET 的新手,我不知道标准库中有什么样的支持。我在网上找到了一个通过剪贴板复制位图的示例,但这看起来很笨拙(而且可能很慢)。有没有更好的办法?
【问题讨论】:
标签: c# .net camera webcam image-capture
您需要使用Windows Image Acquisition (WIA) 将网络摄像头与您的应用程序集成。有很多这样的现成的例子。这是带有源代码的C# Webcam User Control。
以下是一些希望解决与您相同的问题的人的更多文章和博客文章:
【讨论】:
有趣的是,Vista 不再支持 WIA 从网络摄像头进行捕获。他们主要针对扫描仪和从相机中提取静止图像。
另外,像罗技这样的大型制造商已经放弃了 WIA,而偏爱 DirectShow。
【讨论】:
这是一个很好的例子。它使用 DirectShow.Net (http://directshownet.sourceforge.net/),这可能比使用“剪贴板”更好:D。
https://www.codeproject.com/Articles/18511/Webcam-using-DirectShow-NET
【讨论】:
有一个包含许多与计算机视觉系统有关的功能的包,称为 AForge。如果您仍在寻找,他们有一种简单的方法可以从 USB 摄像头获取网络摄像头图像。
只需查看计算机视觉运动传感器示例代码的示例代码即可。我相信你可以像我一样从中提取你需要的函数调用。
[对不起,necro,但这可能对将来的某人有用]
【讨论】:
在我的电脑上,WIA 非常缓慢……所以我决定试试Windows Multimedia Video Capture。
你可以找到一个演示here。
【讨论】:
这真的取决于你想做什么。 WIA 主要用于从成像设备捕获静止图像,而 DirectShow(通过 directshow.net 或托管 DirectX 使用)用于访问更完整的视频功能。
另一个选项是创建 WPF 应用程序。它有大量的内置视频支持(在某种程度上,将循环视频剪辑作为按钮非常简单),并且应该快速且易于开发。
【讨论】: