离上次写博客好久了,查看以前的文章,发现自己涉及的东西有点杂,没有一个系统的方向去研究,新的一年难免感到迷茫,不积跬步无以至之千里,不管以后做什么,还是要从点滴做起。
在做场景合并等情况下,需要用到两个或者两个以上的摄像头。虽然可以用一个简单的设置函数
VideoCapture capture(int index);
去设置相应的设备ID,但是这个需要你知道设备摄像头的ID号,虽然一般电脑自带的摄像头ID为0,不同的USB插口有不同的ID号,我还是遇到有些奇葩的电脑其摄像头ID的值不是0;所以还是觉得有必要去获取一下摄像头的ID号,以下的源代码是借鉴别人的,主要是从videocapture的源代码找到的。
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include "windows.h"
#include "dshow.h"
#include <iostream>
#pragma comment(lib, "strmiids.lib")
#pragma comment(lib, "quartz.lib")
using namespace cv;
using namespace std;
int listDevices(vector<string>& list) {
//COM Library Initialization
//comInit();
//if (!silent) DebugPrintOut("\nVIDEOINPUT SPY MODE!\n\n");
ICreateDevEnum *pDevEnum = NULL;
IEnumMoniker *pEnum = NULL;