如何挂接摄像头捕获?
我正在研制一款当前版本具有网络摄像头定制设备驱动程序的软件,并且我们将此驱动程序与我们的软件一起使用,它在显示捕获图像之前更改捕获图像,与YouCam非常相似。
基本上,当任何使用网络摄像头的应用程序启动时,我们的驱动程序会在显示它之前在帧中执行处理。
问题是,总是安装“2”摄像头,真正的和我们的自定义驱动程序。
我注意到YouCam可以完成我们需要的功能,即在安装摄像头时将某种方法挂钩,以便在显示之前处理每一帧。
有谁知道如何做到这一点?
我们使用VC ++。
谢谢
正如bkritzer所说,OpenCV很容易做到你想要的。
IplImage *image = 0; // OpenCV type
CvCapture *capture = 0; // OpenCV type
// Create capture
capture = cvCaptureFromCAM (0);
assert (capture, "Can't connect webcam");
// Capture images
while (stilCapturing)
{
// Grab image
cvGrabFrame (capture);
// Retrieve image
image = cvRetrieveFrame (capture);
// You can configure refresh time
if (image) cvWaitKey (refreshTime);
// Process your image here
//...
}
你可以将这些OpenCV调用封装到一个C ++类中,并为它指定一个特定的线程 - 这些将成为你的驱动程序。
我认为YouCam使用DirectShow转换过滤器。 那是你需要的吗?
查看OpenCV库。 它有大量的教程示例和库,它们完全符合你的要求。 安装有点困难,但我之前已经开始使用它。
链接地址: http://www.djcxy.com/p/14223.html上一篇: How to hook webcam capture?
下一篇: Cannot extend an existing jQuery Function from within a child