【问题标题】:How to convert into a movie a series of images that were originally from a movie如何将最初来自电影的一系列图像转换成电影
【发布时间】:2022-01-27 01:48:08
【问题描述】:

我有一组 jpg 图片。这些图像最初是从电影中拍摄的。它是用 C++ 编写的(我正在解释我是如何获得这些图像以供参考的。这不是问题的主要部分)

cv::Mat test_image;

cv::VideoCapture video_capture;
video_capture.open(test_video_name);
while(true){
  video_capture >> test_image;
  if (test_image.empty()) break;
  std::string input_file_name=get_file_name();
  cv::imwrite(input_file_name,test_image);
  }

无论如何,我得到了这些图像,我想使用 Python 将它们转换回电影

我是这样的

import cv2 as cv
import glob

glob_arg= image_folder+"/*.jpg"

size=getSize()
out = cv.VideoWriter(output_video,cv.VideoWriter_fourcc(*'DIVX'), 10, size)
for filename in sorted(glob.glob(glob_arg)):
    img = cv.imread(filename)
    print(filename)
    out.write(img)

out.release()

现在,我的问题在于VideoWriter 问题,特别是“10”参数。我怎么知道放在那里的价值?这个参数是每秒的帧数。怎样判断才能与原作有相同或相似的电影?

【问题讨论】:

  • 你知道电影长度和图像总数吗?如果没有,我建议从25 开始,因为这是一个非常常见的帧速率。

标签: python c++ opencv


【解决方案1】:

在您的 C++ 代码中,您可以在 video_capture.open(test_video_name); 下添加此行以获取视频的 FPS:

double fps = video_capture.get(cv::CAP_PROP_FPS);
std::cout << fps << std::endl;

【讨论】:

  • 嗯。 CAP_PROP_FPS was not declared in this scope.... 所以它必须是 cv::CAP_PROP_FPSvideo_capture
  • @KansaiRobot 哎呀!我的错。更正后的版本对您有用吗?
  • 它提取了 fps。几天后我将把它应用到python中的重建中。我会告诉你的。
  • 我尝试了这种方法(理论上是有道理的),但除非我犯了错误,否则它没有按预期工作:(我提取了 fps,但是当我将它应用到 python 脚本时,它生成了一个视频太快
猜你喜欢
  • 2011-06-17
  • 2013-12-18
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 2011-10-19
  • 1970-01-01
  • 2011-12-12
  • 2012-04-16
相关资源
最近更新 更多