在Mac OS X中从摄像头捕获视频

3

我如何在MacOS X中从摄像头过滤视频流?我编写了QuickTime序列抓取器通道组件,但仅在应用程序使用SG API时才有效。如果应用程序使用QTKit Capture,则组件无法正常工作。

有人知道我该如何实现它吗?

2个回答

4
你可以使用OpenCV进行视频处理,它是一个跨平台的图像/视频处理库:http://opencv.willowgarage.com 你的代码将类似于这样:
CvCapture* capture = NULL;
if ((capture = cvCaptureFromCAM(-1)) == NULL)
{
    std::cerr << "!!! ERROR: vCaptureFromCAM No camera found\n";
    return -1;
}

cvNamedWindow("webcam", CV_WINDOW_AUTOSIZE);
cvMoveWindow("webcam", 50, 50);

cvQueryFrame(capture);

IplImage* src = NULL;
for (;;)
{
    if ((src = cvQueryFrame(capture)) == NULL)
    {
            std::cerr << "!!! ERROR: vQueryFrame\n";
        break;
    }

    // perform processing on src->imageData 

    cvShowImage("webcam", &src);

    char key_pressed = cvWaitKey(2);

    if (key_pressed == 27) 
       break;
}

cvReleaseCapture(&camera);

我在Mac OS X上使用cvCaptureFromCAM(0)而不是传递-1,成功地使用了OpenCV。在Linux上,-1似乎也可以。

1

看起来最后应该加上cvReleaseCapture(&capture);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接