将一个视频保存为一张一张的图片

# -*- coding: utf-8 -*- 
import cv2
# from PIL import Image
import os

vc = cv2.VideoCapture('test.mp4')  # 读入视频文件
c = 1
# 存放图片的文件夹
img_dir = 'Image/'
if not os.path.exists(img_dir):
    os.makedirs(img_dir)
# 图片的名字

# 分隔符
split = '-'

if vc.isOpened():  # 判断是否正常打开
    rval, frame = vc.read()
else:
    rval = False

timeF = 2# 视频帧计数间隔频率

while rval:  # 循环读取视频帧
    rval, frame = vc.read()
    if (c % timeF == 0):  # 每隔timeF帧进行存储操作
        cv2.imwrite(img_dir + 'image' + split + str(c).zfill(6) + '.jpg', frame)  # 存储为图像
        print(c)
    c = c + 1
    cv2.waitKey(1)
vc.release()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个使用 OpenCV 库来将图片保存视频的代码示例: ``` import cv2 # 设置视频编码器和帧率 fourcc = cv2.VideoWriter_fourcc(*'MJPG') fps = 30 # 设置输出视频的尺寸和文件名 size = (1920, 1080) video_writer = cv2.VideoWriter('video.avi', fourcc, fps, size) # 读取所有图片 images = [] for i in range(1, 100): image = cv2.imread('image_{}.jpg'.format(i)) images.append(image) # 将图片帧逐一写入视频 for image in images: video_writer.write(image) # 释放视频写入器 video_writer.release() ``` 在这个代码,我们使用了 OpenCV 的 VideoWriter 类来创建视频写入器。需要指定视频的编码器、帧率、尺寸和文件名。然后我们读取了所有图片,并将它们逐一写入视频。最后,我们释放了视频写入器,以保证视频内存被正确释放。 ### 回答2: 下面是一个图片按帧保存视频的Python代码示例: ```python import cv2 import os def images_to_video(input_folder, output_video): # 获取输入文件夹的所有图片文件名 image_files = sorted([f for f in os.listdir(input_folder) if f.endswith(".jpg")]) # 获取第一张图片的尺寸 image_path = os.path.join(input_folder, image_files[0]) first_image = cv2.imread(image_path) height, width, channels = first_image.shape # 设置视频编码器和输出视频对象 fourcc = cv2.VideoWriter_fourcc(*"mp4v") video = cv2.VideoWriter(output_video, fourcc, 30, (width, height)) # 逐帧将每图片写入视频 for image_file in image_files: image_path = os.path.join(input_folder, image_file) frame = cv2.imread(image_path) video.write(frame) # 释放视频写入对象并关闭视频文件 video.release() cv2.destroyAllWindows() # 设置输入文件夹和输出视频文件路径 input_folder = "input_images" output_video = "output_video.mp4" # 调用函数将图片按帧保存视频 images_to_video(input_folder, output_video) ``` 在代码示例,首先从指定的输入文件夹读取所有的图片文件名,并按照文件名的顺序进行排序。然后获取第一张图片的尺寸作为输出视频的帧尺寸。接下来,创建一个视频编码器和一个输出视频对象,指定输出视频的编码格式、帧率和尺寸。然后,遍历每图片,将其逐帧写入输出视频。最后,释放视频写入对象并关闭视频文件。 请注意,本示例假设输入文件夹的所有图片格式都是.jpg。如果图片格式不同,需要根据实际情况进行相应修改。 ### 回答3: 以下是一个图片按帧保存视频的Python代码示例: ```python import cv2 import os # 图片文件夹路径和保存视频的路径 image_folder = '图片文件夹路径' video_name = '保存视频的路径' # 获取图片文件夹下所有图片的路径 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, _ = frame.shape # 创建视频编码器 fourcc = cv2.VideoWriter_fourcc(*"mp4v") # 可根据需要选择编码器 out = cv2.VideoWriter(video_name, fourcc, 25.0, (width, height)) # 遍历图片并写入视频帧 for image in images: frame = cv2.imread(os.path.join(image_folder, image)) out.write(frame) # 写入视频帧 # 释放视频编码器和关闭文件 out.release() cv2.destroyAllWindows() ``` 此代码将指定文件夹图片按顺序读取,并使用OpenCV库将它们写入视频帧。首先,代码通过`os.listdir`函数获取图片文件夹所有以".jpg"结尾的图片文件。然后,通过读取第一张图片的尺寸设置视频的宽度和高度。接下来,使用`cv2.VideoWriter`函数创建一个视频编码器,指定视频保存的路径、编码器类型、帧率和画面尺寸。然后,遍历图片文件夹的每一张图片,使用`cv2.imread`函数读取每图片作为一帧,并使用`out.write`函数将帧写入视频。最后,释放视频编码器和关闭文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值