如何挂接摄像头捕获?

我正在研制一款当前版本具有网络摄像头定制设备驱动程序的软件,并且我们将此驱动程序与我们的软件一起使用,它在显示捕获图像之前更改捕获图像,与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