Ubuntu下OpenCV视频转图片的方法

参考:https://www.cnblogs.com/miaojinmin799/p/6845462.html

在做深度学习相关项目时,需要对图片进行标注,但原数据是.h264格式的视频,需要读入视频并按帧提取保存图片,方法如下

#include<opencv2/highgui/highgui.hpp>
#include<iostream>
#include <sys/stat.h>
#include <sys/types.h>

using namespace std;
using namespace cv;
int main(){
    VideoCapture cap("/media/nvidia/Video/Video20180518/recordFile/01_20180518_110634.h264");  //读入视频
    Mat img;   //图像变量
    char image[20];
    int i = 0;   //图像计数
    char *path = "/media/nvidia/Video/Video20180518/picture/01_20180518_110634"; //生成新文件夹保存图片
    int isCreate = mkdir(path,S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO);
    if( !isCreate )
        printf("create path:%s\n",path);
    else
        printf("create path failed! error code : %s \n",isCreate,path);
    while (cap.read(img))    //读取视频帧
    {
        sprintf(image, "%s%d%s", "/media/nvidia/Video/Video20180518/picture/01_20180518_110634/image", i++, ".jpg");   //指定保存路径
        imwrite(image, img);  //保存图像
    }
}

在调用时,将路径和视频名称改为自己对应的名字即可

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页