C++ OpenCV:如何将图像保存在一个大矩阵中,然后分别调用它们?
我想使用cv::VideoCapture阅读大约50个视频帧,然后逐个调用这50个图像来做一些其他工作。为此,我尝试了使用resize和其他一些方法,但仍然无法解决它。例如,我从以下视频中获取图像: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 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();//否则它们都指向同一个内存