我将视频帧提取到一个名为“images”的文件夹中。在获得保存在我的文件夹中的图像后,我使用以下代码再次创建视频。我得到了视频,但是帧是随机排列的,我怎样才能按顺序排列呢?谢谢你的来信
import cv2
import os
image_folder = 'images'
video_name = 'video.avi'
images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")]
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape
video = cv2.VideoWriter(video_name, 0, 1, (width,height))
for image in images:
video.write(cv2.imread(os.path.join(image_folder, image)))
cv2.destroyAllWindows()
video.release()
请告知,我如何修复此问题?我希望视频与原始视频的速率相同,帧的顺序也一样
如果您的需求需要您存储帧,请尝试此方法
images
列表并查看图像的顺序?它们分类了吗李>你的图片的文件名是什么?选择像
00001.jpg
和00002.jpg
这样的递增数字而不是1.jpg
和2.jpg
是很有帮助的,这会搞乱排序或者仅仅使用:
for filename in sorted(os.listdir(path))
也许您可以尝试不保存图像并再次加载它们,而是从源视频捕获视频并将其传递给out object(在本例中为demo_output.avi)…类似以下内容:
更新:
如果需要图像,然后保存视频文件:
相关问题 更多 >
编程相关推荐