我试图从连接到USB集线器的几个USB摄像头捕获单帧。我已经写了一些东西,我相信应该工作,但它不会:(。最终的结果产生基于参数图像的正确数目,但所有除最后是“空白”。从多个USB摄像头捕获帧 - OpenCV,C++
#include <opencv2/highgui/highgui.hpp>
#include <stdio.h>
#include <iostream>
using namespace cv;
int main(int argc, char** argv){
int numberOfCameras = atoi(argv[1]);
std::vector<Mat> frames (numberOfCameras-1);
for(int i=0; i<numberOfCameras; i++){
VideoCapture cap(i);
cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);
Mat frame; cap >> frame;
frames.push_back(frame);
}
for(int i=0; i<numberOfCameras; i++){
string fileName = std::to_string(i) + ".jpg";
std::cout << fileName << std::endl;
imwrite(fileName, frames[i]);
}
}
这里是怎么回事?我对C++和类型语言有点陌生,我误解了矢量的使用方法吗?以上是完成我的任务的最佳方法吗?
我将连接多个相机(总共50个),并且对于在存储器中存储50帧的影响感到好奇,我可以打开很多相机上的通话捕获吗?
这似乎没有工作,我仍然收到相同的结果。还有其他建议吗? –