OpenCV - 在矢量<Mat>中保存垫子

OpenCV - save Mat in Vector<Mat>

本文关键字:gt 保存 Mat lt OpenCV      更新时间:2023-10-16

我想将垫子保存到std :: vector中并在此之后播放视频。

#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main(int, char**)
{
    VideoCapture cap(0);
    if (!cap.isOpened())
        return -1;
    vector<Mat> v;
    Mat m;
    for (int i = 0; i < 50; ++i)
    {
        cap >> m;
        v.push_back(m);
    }
    puts("After:n");
    for (auto i = 0; i < v.size(); ++i)
    {
        imshow("Camera", v[i]);
    }
    return 0;
}

但是什么都没有:)打开"相机"窗口并关闭。

  1. 您需要每个向量条目作为单独的矩阵,将v.push_back(m)替换为v.push_back(m.clone()),现在它们都共享相同的数据。
  2. 添加循环中的延迟:imshow()
  3. 之前或之后
  4. return 0之前添加waitKey(0);