Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 从单个帧创建视频_Opencv_Computer Vision_Cv2 - Fatal编程技术网

Opencv 从单个帧创建视频

Opencv 从单个帧创建视频,opencv,computer-vision,cv2,Opencv,Computer Vision,Cv2,我能够成功地将视频分割成它的组成图像帧,并使用keras RESNet50模型对其进行分析。我还能够将预测叠加到这些单独的图像中。现在我想重新创建原始视频,将这些处理过的图像和覆盖层放回一个mp4文件中 如何从单个jpg图像帧按顺序创建视频 我正在尝试使用cv2.VideoWriter将这些图像写回一个单独的视频文件 uname-a给了我以下输出 Linux myhost 4.15.0-1023-azure 24~16.04.1-Ubuntu SMP周三8月29日 12:54:36 UTC 20

我能够成功地将视频分割成它的组成图像帧,并使用keras RESNet50模型对其进行分析。我还能够将预测叠加到这些单独的图像中。现在我想重新创建原始视频,将这些处理过的图像和覆盖层放回一个mp4文件中

如何从单个jpg图像帧按顺序创建视频

我正在尝试使用cv2.VideoWriter将这些图像写回一个单独的视频文件

uname-a给了我以下输出

Linux myhost 4.15.0-1023-azure 24~16.04.1-Ubuntu SMP周三8月29日 12:54:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

我的前11帧命名为frame-0000.jpg到frame-0011。jpg

最简单的方法是在终端中使用ffmpeg,如下所示:

ffmpeg.exe -f image2 -r 30 -i frame-%04d.jpg -codec:v libx264 -crf 23 video.mp4
如何从单个jpg图像帧按顺序创建视频

您可以使用此代码从jpg图像逐帧创建视频。这些图像将从该脚本所在的文件夹中读取

import cv2 #Import of openCV library
import os 
#Create video, with name 'video.mp4', MP4 codec, 60 fps, width 1280 and height of 1024
video = cv2.VideoWriter('video.mp4',cv2.VideoWriter_fourcc(*'MP4V'),60,(1280,1024))
for file in os.listdir('./'): #List every file in this folder
    if ".jpg" in file: #Filter only jpg files
        image = cv2.imread(file) #Load image from disk
        video.write(image) #Put image into video.
video.release() #Save video to disk.
您可以修改此代码以从应用程序或某些数组加载图像


编辑:添加评论

请单击问题下方的编辑,并添加前11帧的名称列表。还请说明您的操作系统。keras标记对这个问题的有效性如何?它就在第一句的描述中。您的问题与resnet无关。您正在询问如何从使用resnet分类的图像创建视频。看到了,我想我只需要围绕ffmpeg编写一个包装器并使用它?这就是我使用Python的子流程模块所要做的-但是你可能会有不同的考虑,例如,谁使用你的软件以及你需要如何分发它。谢天谢地,没有这样的担心。只是建立一个一次性的原型。谢谢请给你的答案加上一些解释。纯代码的答案可能有用,但如果您解释它的作用以及它回答OP问题的原因,它会更有用。谢谢