视频转换成图像序列、图像转换成视频(代码)

来源:互联网 发布:金鹏远 知乎 编辑:程序博客网 时间:2024/06/06 18:27

      在目标检测领域,经常碰到将视频转换成图像序列,或者将图像序列转成视频。下面一段代码可实现此类功能。废话不多说,直接上代码

void Video2Pic()  {      cv::VideoCapture vc;      bool flag = vc.open("D:\\1.MP4");  //视频的绝对路径    if (!flag)      {          printf("video file open error \n");          system("pause");          exit(-1);      }        int frmCount = vc.get(CV_CAP_PROP_FRAME_COUNT);      frmCount -= 5;//个别视频读取到末尾几帧时可能会出错        char str[256];      for (int i=0; i<frmCount; i++)      {          printf("%d/%d \n", i+1, frmCount);            cv::Mat img;          vc>>img;            memset(str, '\0', 256*sizeof(char));          sprintf(str, "./img/%08d.jpg", i);          cv::imwrite(str, img);      }  }    void Pic2Video()  {      cv::VideoWriter vw;      vw.open("result.avi", CV_FOURCC('X','V','I','D'), 25, cv::Size(1280,720));        std::vector<std::string> files;      ReadDirectory("C:\\Users\\Administrator\\Desktop\\img", ".jpg", files);        for (int i=0; i<files.size(); i++)      {          printf("%d/%d \n", i, files.size());            cv::Mat img = cv::imread(files[i]);          if (img.empty())          {              printf("img load error, fileName: %s \n", files[i].c_str());              system("pause");              exit(-1);          }            vw<<img;      }  }  


原创粉丝点击