使用 DirectShow.NET 从网络摄像头捕获帧
我是 DirectShow 的新手,所以这个库的某些部分我不太理解。 我已经看到示例 DxSnap,但我需要捕获帧而不预览,以进行进一步处理。我该怎么做?
I am new at DirectShow, so some parts of this library i don't understand well.
I already see the example DxSnap, but i need to capture frames without previewing it, for futher processing. How can i do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您主要关心的是“访问网络摄像头”而不是“使用 DirectShow 访问网络摄像头”,那么我会看看 AForge.NET-Framework 。我用 DirectShow 尝试过一次,只是为了发现我可以用更少的代码在更短的时间内对多个视频源做同样的事情。
以下是一些示例代码:使用 DirectShow 访问 USB 摄像头和视频文件
If your main concern is "access webcam" and not "access webcam with DirectShow", then I would have a look at the AForge.NET-Framework. I tried it with DirectShow once just to find out that I could do the same thing with multiple video sources in less time with less code.
Here is some sample code: Access to USB cameras and video files using DirectShow
你可以自己建造一个。如果您查看 windows sdk 7.0~ 文件夹,您可以转到示例 >多媒体>直接显示>并且应该有一个过滤器文件夹,向您展示如何制作通用过滤器并执行您想要的操作
you could build one yourself. If you look into the windows sdk 7.0~ folders you can go to samples > multimedia > directshow > and there should be a filters folder that shows you how to make generic filters and do w/e you want
这是一个例子。构建一个 Windows 窗体,如图所示。
单击此链接查看 WinForm 的外观
这些名称让我们将事件处理程序(下面的代码)与相应的控件关联起来。
如果程序成功构建并运行,请使用组合框选择可用的源。单击“开始”查看视频源。单击“复制”将图像克隆到剪贴板。单击“停止”关闭图像源。
.NET Framework 4.5进行测试
要构建代码,包含此代码的项目需要具有以下引用:
这些包可以通过 NuGet 拉入项目中。在 Visual Studio IDE 中:
搜索“AForge”并安装相应的包。
代码:
Here is an example. Construct a Windows Form as shown in the picture.
Click this link to see how the WinForm looks
These names let us associate the event handlers (code below) with the respective control.
If the program is built successfully and run, use the combobox to select an available source. Click "Start" to see video feed. Click "Copy" to clone the image onto the clipboard. Click "Stop" to close the image feed.
The code was tested using Microsoft:
To build the code, the project containing this code needs to have these References:
The packages can be pulled into the project by NuGet. In Visual Studio IDE:
Search for "AForge" and install the respective packages.
Code: