如何连接到.NET中的USB网络摄像头?
我想连接到.NET中的USB网络摄像头,尤其是使用C#。作为.NET的新手,我不知道标准库中提供了哪种支持。我在网上找到了一个可以通过剪贴板复制位图的示例,但这似乎很hacky(并且可能很慢)。有没有更好的办法?
解决方案
我们将需要使用Windows Image Acquisition(WIA)将网络摄像头与应用程序集成。有很多这样的例子。这是带有源代码的CWebcam用户控件。
以下是一些寻求解决我们相同问题的人的文章和博客文章:
- MSDN Coding4Fun:看着我! Windows图像采集
- CodeProject:WIA脚本和.NET
- CodeProject:使用WIA的WebCam快速图像捕获服务
- clausn.dk:来自C#和WIA的网络摄像头控件
这是一个很好的例子。它使用DirectShow.Net(http://directshownet.sourceforge.net/),可能比使用" clipboard":D更好。
http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx
在我的计算机上,WIA辛苦地工作了...所以我决定尝试Windows Multimedia Video Capture。
我们可以在此处找到一个演示。
这实际上取决于我们要做什么。 WIA主要用于从成像设备捕获静止图像,而DirectShow(通过DirectShow.net或者托管的DirectX使用)用于访问更完整的视频功能。
另一个选择是创建WPF应用程序。它具有对视频的大量内置支持(在某种程度上,将循环的视频剪辑作为按钮是非常琐碎的),并且应该快速简便地进行开发。
有趣的是,VIA不再支持从网络摄像头捕获WIA。他们主要将其瞄准"扫描仪"并从相机中取出静止图像。
此外,像罗技这样的大型制造商也已经放弃了WIA,而DirectShow则受到青睐。
有一个具有许多功能的软件包,这些功能与称为AForge的计算机视觉系统有关。而且,如果我们还在寻找,它们是从USB摄像头获取网络摄像头图像的简便方法。
只需签出计算机视觉运动传感器示例代码的示例代码。我确定我们可以像我一样从中提取所需的函数调用。
[很抱歉坏死,但这将来可能对某人有用]