使用OpenCV VideoCapture和C ++向量显示文件中的图像

时间:2014-07-28 20:06:04

标签: c++ opencv vector

我正在使用OpenCV VidoeCapture从文件中读取图像序列 - 我相信我正在正确地执行此部分 - 然后将它们放在c ++向量中,以便稍后进行处理。 为了测试这个,我写了下面的内容,它将读入图像,将它们放在一个向量中,然后逐个显示这些图像。但是,当我运行它时,没有图像出现。 怎么了?

我正在使用树莓派,我不知道这是否有所不同。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <vector>
#include <iostream>

using namespace cv;
using namespace std;


vector<Mat> imageQueue;


int main(int argc, char** argv)
{
  string arg = ("/home/pi/pictures/ceilingSequence/%02d.jpg");
  VidoeCapture sequence(arg);

  if(!sequence.isOpened()) {
    cout << "Failed to open image sequence" << endl;
    return -1;
  }

  Mat image;
  for(;;)
  {
    sequence >> image;
    if(image.empty()) {
       cout << "End of sequence" << endl;
       break;
    }
    imageQueue.push_back(image);
  }

  for(int i = 0; i < 10; i++)
  {
    //display 10 images
    Mat readImage;
    readImage = imageQueue[i];
    namedWindow("Current Image", CV_WINDOW_AUTOSIZE);
    imshow("Current Image", readImage);
    sleep(2);
  }


return 0;
}

1 个答案:

答案 0 :(得分:4)

请用waitKey(2000)替换sleep(2)。 //假设您要等待2秒

即使您对一般的按键不感兴趣,也需要正确更新opencv / highgui图形循环。