以下例出从视频中获取帧图片
(资料图片)
void video2Image()
{
//VideoCapture cap("1.avi");
VideoCapture cap("G:\\CBU2_MiddleFrameDetection\\imageData\\拍摄视频\\10.21\\直角边\\1.avi");
// 获取视频总帧数
long totalFrameNumber = cap.get(CAP_PROP_FRAME_COUNT);
cout << "total frames: " << totalFrameNumber << endl;
Mat frame;
bool flags = true;
long currentFrame = 0;
while (flags) {
// 读取视频每一帧
cap.read(frame);
stringstream str;
str << "a2" << currentFrame << ".jpg";
cout << "正在处理第" << currentFrame << "帧" << endl;
printf("\n");
// 设置每30帧获取一次帧
if (currentFrame % 2 == 0)
{
// 将帧转成图片输出
imwrite("G:\\CBU2_MiddleFrameDetection\\imageData\\拍摄视频\\img10.21\\2\\" + str.str(), frame);
}
// 结束条件
if (currentFrame >= totalFrameNumber) {
flags = false;
}
currentFrame++;
}
}
----与智者为伍为创新赋能----
联系邮箱:uestcwxd@126.com
QQ:493826566