【发布时间】:2014-09-20 02:57:50
【问题描述】:
我正在使用 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;
}
【问题讨论】: