准备条件
测试代码
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/videoio.hpp> // for camera
using namespace cv;
int main()
{
VideoCapture cap1;
VideoCapture cap2;
cap1.open(1);//白色摄像头
cap2.open(2);//黑色摄像头
if (!cap1.isOpened()||!cap2.isOpened())
{
return -1;
}
namedWindow("Video", 1);
namedWindow("Video", 2);
while (1)
{
Mat frame;
cap1 >> frame;
imshow("Video1", frame);
waitKey(1);//用cv::waitKey来更新界面
cap2 >> frame;
imshow("Video2", frame);
waitKey(1);
}
cap1.release();
cap2.release();
return 0;
}
需要注意的地方
- 多个摄像头可以使用usb hub来扩展
cap.open(num)
来确定打开第几个摄像头
imshow()
更新窗口需要waitKey()
的响应结果,保证流畅性可以采用waitKey(1)
- 多个摄像头如果不能打开或者只能打开一个,可能和注册有关?解决方法:尝试用QQ的摄像头测试打开后再尝试下...感觉像玄学...以后找到原因再补充╮(╯▽╰)╭