Files
Grounded-SAM-2/video_utils.py
2024-08-02 17:06:32 +08:00

36 lines
1.3 KiB
Python

import cv2
import os
from tqdm import tqdm
def create_video_from_images(image_folder, output_video_path, frame_rate=30):
# 定义允许的图像后缀
valid_extensions = [".jpg", ".jpeg", ".JPG", ".JPEG"]
# 获取图像文件列表
image_files = [f for f in os.listdir(image_folder)
if os.path.splitext(f)[1] in valid_extensions]
image_files.sort() # 排序,确保按正确的顺序读取图像
print(image_files)
if not image_files:
raise ValueError("No valid image files found in the specified folder.")
# 读取第一张图像以获取视频尺寸
first_image_path = os.path.join(image_folder, image_files[0])
first_image = cv2.imread(first_image_path)
height, width, _ = first_image.shape
# 创建视频写入对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # 可以选择其他编码方式,如 'XVID'
video_writer = cv2.VideoWriter(output_video_path, fourcc, frame_rate, (width, height))
# 逐帧写入视频
for image_file in tqdm(image_files):
image_path = os.path.join(image_folder, image_file)
image = cv2.imread(image_path)
video_writer.write(image)
# 释放资源
video_writer.release()
print(f"Video saved at {output_video_path}")