Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV:如何将图像保存在一个大矩阵中,然后分别调用它们?_C++_Image_Opencv_Image Processing_Matrix - Fatal编程技术网

C++ OpenCV:如何将图像保存在一个大矩阵中,然后分别调用它们?

C++ OpenCV:如何将图像保存在一个大矩阵中,然后分别调用它们?,c++,image,opencv,image-processing,matrix,C++,Image,Opencv,Image Processing,Matrix,我想使用cv::VideoCapture阅读大约50个视频帧,然后逐个调用这50个图像来做一些其他工作。为此,我尝试了使用resize和其他一些方法,但仍然无法解决它。例如,我从以下视频中获取图像: cv::VideoCapture myCapture(0); while(true) { cv::Mat inputFrame; myCapture>>inputFrame; } 我想保存前50个inputFrame,然后逐个调用它们来完成其他工作。我不想先处理当前帧,

我想使用cv::VideoCapture阅读大约50个视频帧,然后逐个调用这50个图像来做一些其他工作。为此,我尝试了使用resize和其他一些方法,但仍然无法解决它。例如,我从以下视频中获取图像:

cv::VideoCapture myCapture(0);
while(true)
{
    cv::Mat inputFrame;
    myCapture>>inputFrame;
}
我想保存前50个
inputFrame
,然后逐个调用它们来完成其他工作。我不想先处理当前帧,然后读取下一帧。而且,我不想先把它们写入硬盘,然后再读取它们。我想要一种包含图像矩阵的单元格。有什么解决办法吗?

试试这个:

#include <vector>

std::vector<cv::Mat> frames;
cv::Mat inputFrame;

for(int i=0; i<50; i++){
    myCapture>>inputFrame;
    frames.push_back(inputFrame);
}
试试这个:

#include <vector>

std::vector<cv::Mat> frames;
cv::Mat inputFrame;

for(int i=0; i<50; i++){
    myCapture>>inputFrame;
    frames.push_back(inputFrame);
}

实际上
Mat-inputFrame
存储为矩阵,您可以在循环中处理
while(true)
实际上
Mat-inputFrame
存储为矩阵,您可以在循环中处理
while(ture)
请再次编辑,并使其为:frames[i]=inputFrame.clone();//否则它们都指向同一个内存请再次编辑,并使其为:frames[i]=inputFrame.clone();//否则它们都指向同一个内存