#include<opencv2\opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
//检测是否正常打开:成功打开时,isOpened返回ture
VideoCapture capture("F:\\data\\TV\\test.mp4");
if (!capture.isOpened())
cout << "fail toopen!" << endl;
//获取整个帧数
long totalFrameNumber = static_cast<long>(capture.get(CV_CAP_PROP_FRAME_COUNT)); // 获取总帧数
cout << "整个视频共" << totalFrameNumber << "帧" << endl;
//设置开始、结束帧
long long frameToStart = 0;
cout << "从第" << frameToStart << "帧开始读" << endl;
long long frameToStop = totalFrameNumber;
cout << "结束帧为:第" << frameToStop << "帧" << endl;
//承载每一帧的图像
Mat frame;
String sLoadPath = "F:\\data\\TV\\1\\";
String sImgType = ".bmp";
String sFileName;
String sNumber;
for(size_t currentFrame = frameToStart; currentFrame<10; currentFrame++)
{
//读取下一帧
if (!capture.read(frame))
{
cout << "读取视频失败" << endl;
return false;
}
imshow("Extractedframe", frame);
sNumber = to_string(currentFrame);
sFileName=sLoadPath+ sNumber+sImgType;
imwrite(sFileName, frame);
cout << "正在写第" << currentFrame << "帧" << endl;
waitKey(1);
}
capture.release();
return true;
}
视频转图片
最新推荐文章于 2024-04-07 15:17:59 发布