2017-02-25 34 views
0

我想将垫子保存到std :: vector并在此之后播放视频。OpenCV - 保存在向量中的垫子<Mat>

#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; 
} 

但没有什么:)打开“相机”窗口并关闭。

回答

2
  1. 更换v.push_back(m)v.push_back(m.clone()),因为你需要每个矢量条目是一个单独的矩阵,现在他们都有着相同的数据。
  2. 在您的循环中添加延迟:之前或之后imshow()
  3. 添加waitKey(0)return 0之前呼叫;
+0

作品,谢谢。 –