【问题标题】:Increasing video size from 256x256 to 512x512将视频尺寸从 256x256 增加到 512x512
【发布时间】:2021-10-06 16:02:28
【问题描述】:

我正在尝试将视频尺寸从 256x256 有效地增加到 512x512 或更高。

我使用过 OpenCV 和 srgan。

srgan 需要 13 分钟才能将 16 秒视频的大小增加到 30 fps。 OpenCV 图像调整大小大约需要 40 秒才能实现。但问题是当我使用这两种方法将提取的帧转换回视频时,我发现最终输出视频的大小没有差异。 OpenCV 代码是

x = img.resize(size=(img.size[0]*2, img.size[1]*2), resample=Image.BICUBIC)

原尺寸:(480, 854, 3)
使用OpenCV后代码:(960, 1708, 3)

如何有效地修改分辨率?

【问题讨论】:

  • 为什么不直接使用ffmpeg?
  • 嗯?你的数字不匹配......你的标题说你的视频是 256x256 而你的代码说它是 480x854?
  • that 不是 OpenCV 代码,而是 PIL/pillow 代码。请更正您的帖子并正确标记该代码。如果您的问题是关于 PIL/枕头的,请说清楚。如果是关于 OpenCV,则需要显示使用 OpenCV 的代码,而不是 PIL/pillow。
  • @MarkSetchell 我不知道如何在 ffmpeg 中做到这一点。是的,我不知道为什么这些像素值是错误的:/

标签: python opencv image-processing video-processing resolution


【解决方案1】:

你可以试试:

import cv2

cap = cv2.VideoCapture("video.mp4")

fourcc = cv2.VideoWriter_fourcc(*"XVID")
fps = cap.get(cv2.CAP_PROP_FPS)
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) * 2
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) * 2

writer = cv2.VideoWriter("out.mp4", fourcc, fps, (w, h))

success, img = cap.read()
while success:
    writer.write(cv2.resize(img, (w, h)))
    success, img = cap.read()

cap.release()
writer.release()

【讨论】:

  • 谢谢,这是做我需要的更好的方法。现在我不必担心帧之间的处理
猜你喜欢
  • 2021-01-06
  • 2015-07-01
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
相关资源
最近更新 更多