OpenCV - 在Vector <mat>中保存Mat

时间:2017-02-25 16:50:26

标签: c++ opencv

我希望将Mat保存到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;
}

但没有什么:)打开&#34;相机&#34;窗口和关闭。

1 个答案:

答案 0 :(得分:2)

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