我試圖從連接到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幀的影響感到好奇,我可以打開很多相機上的通話捕獲嗎?
這似乎沒有工作,我仍然收到相同的結果。還有其他建議嗎? –