我发现了一个关于在C#中访问网络摄像头的示例。该示例使用DirectShow.NET库。我试图理解代码,但目前我唯一能理解的是用户控件以某种方式调用directshow直接绘制到用户控件的表面。我想访问每一帧并将其放入位图对象中。如何知道新帧何时到达?如何将此新帧捕获到位图对象中?如果您熟悉DirectShow.NET,这可能很容易回答。
你需要使用ISampleGrabber接口,网络上有许多c++示例可以教你如何使用它,它将为你提供以RGB原始格式的数据,你可以将其输入到位图类中。还有一个名为Touchless的开源库,其中有一个项目可以使用网络摄像头,并在每次新帧到达时给你回调。
请确保查看此文章 - http://www.codeproject.com/Articles/125478/Versatile-WebCam-C-library;它基于Touchless WebCam捕获组件(但没有来自Touchless SDK的其他部分)。
如果您觉得Touchless很有用,但想要使用最新的DirectX SDK,请尝试在更改31008后获取最新的源代码,链接为http://touchless.codeplex.com/SourceControl/ListDownloadableCommits.aspx。