OSX 上的 OpenCV - 如何使用辅助摄像头而不是默认摄像头

OpenCV on OSX - how to use a secondary camera rather than the default one

在我的处理代码中,我使用 opencv.loadImage(video) 从视频源加载图像。

这适用于 MacBook Air 上的默认摄像头。

但是我想用USB摄像头。在 PhotoBooth 中,我可以切换相机。将源指向不同相机的 OpenCV 命令是什么?

或者,是否有 MacBook 设置可以让我将摄像头默认设置为 USB 端口上的摄像头?

要打开相机,您可以使用 VideoCapture。 C++ 定义如下:

VideoCapture::VideoCapture(int device)

通过更改 device 的数量,您可以 select 您的操作系统注册的不同相机。通常默认(内置)摄像头是 0,任何其他摄像头将在后面编号。

下面是一个关于如何使用 VideoCapture 打开相机的小例子。

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    Mat edges;
    namedWindow("edges",1);
    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        imshow("Video", frame);
        if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}