#include <iostream>
#include <vector>
#include "cv.h"
#include "highgui.h"
using namespace std;
using namespace cv;
int main(int argc,char** argv)
{
VideoCapture cap;
cap.open("baseball.avi");
if(!cap.isOpened())
{
cerr << "Fail to open camera!" << endl;
exit(1);
}
Mat frame;
namedWindow("Original",CV_WINDOW_AUTOSIZE);
int trainImageCount = 15;
char fileName[256];
vector<Mat> trainImage; //15 frames
for(int i = 1; i <= trainImageCount; i++)
{
cap >> frame;
sprintf(fileName,"%d.jpg",i);
imwrite(fileName,frame);
trainImage.push_back(frame);
}
while(1)
{
cap >> frame;
if(frame.empty())
{
break;
}
else
{
imshow("Original",frame);
char c = waitKey(33);
//char c = waitKey(delay);
if(c == 27)
//if(c >= 0)
//waitKey(0);
break;
}
}
return 1;
}
播放一个AVI视频,将前15帧存储下来,存在工程文件夹目录下,也存储在vector里面。
for(int i = 1; i <= trainImageCount; i++)
{
cap >> frame;
sprintf(fileName,"%d.jpg",i);
imwrite(fileName,frame);
trainImage.push_back(frame);
}
此方法比较有意思,改一下就可以连续显示一连图片,还可以给窗口命名。