opencv 把视频保存为图片序列
1,简介
图像处理中我们经常需要包一段视频保存为一帧一帧的图片,opencv这个开源库就能够很好的完成这个工作,因此接下来简单介绍一下如何用opencv的C++接口来完成这样的工作!
2,opencv 把视频保存为图片
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main()
{
//读取视频,就是打开一段视频
VideoCapture cap("/path/to/your/database/GBGJ9294.MP4");
// 获取视频总帧数
long totalFrameNumber = cap.get(CAP_PROP_FRAME_COUNT);
cout << "total frames: " << totalFrameNumber << endl;
Mat frame;
bool flags = true;
long currentFrame = 1;
while (flags){
// 读取视频每一帧
cap.read(frame);
stringstream str;
//保存为.jpg格式的图片按照1,2,3 这样的顺序命名图片
str<< currentFrame << ".jpg";
cout << "正在处理第" << currentFrame << "帧" << endl;
printf("\n");
imwrite("/path/to/your/Pictures/tupian2/" + str.str(), frame);
if (currentFrame >= totalFrameNumber){
//退出循环的条件
flags = false;
}
currentFrame++;
}
system("pause");
}
以上就是如何把视频保存为图片序列的代码。