【opencv】7. cv::VideoWriter的使用,把图片写进video

cv::VideoWriter的使用,把图片写进video

//注意:输出的视频名称中必须有数字,否则会报错,CAP_IMAGES: can't find starting number (in the name of file):....,可以查看源码,这个错误不查看源码根本就找不到问题所在。
  cv::VideoWriter video_writer_;
  int frame_count_;
  //初始化	
  if (FLAGS_use_test_mode) {
    // int codec = CV_FOURCC('M', 'J', 'P', 'G');
    int codec = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');
    const std::string output_video_file = FLAGS_camera_name + ".avi";	//视频名称必须包含数字
    video_writer_.open(output_video_file, codec, 10, cv::Size(1920, 1080));
    if (!video_writer_.isOpened()) {
      SERROR << "Can't create output video file: " << output_video_file;
      return;
    }
  }

	//当程序运行到这里时,就开始把图片写进video.
  if (FLAGS_use_test_mode) {
    SRETURN_IF(FLAGS_skip_frame_num <= 0);
    if ((frame_count_ < FLAGS_max_save_frame_count * FLAGS_skip_frame_num) &&
        ((frame_count_ % FLAGS_skip_frame_num) == 0)) {

      cv::Mat rgb_img=frame;
      if ((rgb_img.cols != 1920) || (rgb_img.rows != 1080)) {
        cv::Mat dst_img;
        cv::resize(rgb_img, dst_img, cv::Size(1920, 1080), 0, 0,
                   cv::INTER_NEAREST);
        video_writer_.write(dst_img);
      } else {
        video_writer_.write(rgb_img);	//图片写进视频
      }
    }
    if (frame_count_ > FLAGS_max_save_frame_count * FLAGS_skip_frame_num) {
      video_writer_.release();
    }
    ++frame_count_;
  } // if FLAGS_use_test_mode	
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值