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;
}
在我的处理代码中,我使用
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;
}