imageio 图片转mp4 保存mp4

目录

安装:

[imageio 图片转mp4](#imageio 图片转mp4)

[numpy 保存mp4](#numpy 保存mp4)


安装:

FFMPEG: pip install imageioffmpeg

pyav: pip install imageiopyav

imageio 图片转mp4

python 复制代码
import glob
import os

import cv2
import imageio
from natsort import natsorted

from PIL import Image
import numpy as np
import orjson


def pic_2_mp4_dir(path):
    dir_root = r'E:\project\Grounded-SAM-2-main\obj_video\0'

    dir_save = r'E:\project\Grounded-SAM-2-main\obj_video'

    # dirs = glob.glob(dir_root + '/*/*')
    dirs=[r'E:\project\Grounded-SAM-2-main\obj_video\0']
    for dir_path in dirs:

        img_files = ['%s/%s' % (i[0].replace("\\", "/"), j) for i in os.walk(dir_path) for j in i[-1] if j.endswith(('obj.jpg', 'apng', 'ajpeg'))]
        print("len(img_files)", len(img_files), dir_path)

        img_files = natsorted(img_files)

        imgs = []
        for img_i, img_path in enumerate(img_files):
            print(img_path)
            output_image = Image.open(img_path)
            imgs.append(output_image)
        save_dir = dir_path.replace(dir_root, dir_save)
        os.makedirs(save_dir, exist_ok=True)
        imageio.mimsave(f'{save_dir}/pinjie.mp4', imgs, fps=6)
def pic_2_mp4(base_dir,save_path):

    img_files = ['%s/%s' % (i[0].replace("\\", "/"), j) for i in os.walk(base_dir) for j in i[-1] if j.endswith(('.jpg', 'apng', 'ajpeg'))]
    print("len(img_files)", len(img_files), base_dir)
    img_files = natsorted(img_files)
    imgs = []
    for img_i, img_path in enumerate(img_files):
        if img_i%10==0:
            print(img_i,img_path)
        output_image = Image.open(img_path)
        imgs.append(output_image)
    os.makedirs(os.path.dirname(save_path), exist_ok=True)
    imageio.mimsave(save_path, imgs, fps=25)

if __name__ == '__main__':
    base_dir = r'F:\project\ronghe\data\see3d_inpaint\vis_see3d_inpaint\f2_1200_dir\pinjie'
    save_path = r'F:\project\ronghe\data\see3d_inpaint\vis_see3d_inpaint\f2_1200_dir\pinjie.mp4'
    pic_2_mp4(base_dir, save_path)

numpy 保存mp4

python 复制代码
  save_video_path = os.path.join(out_dir, output_video_name)
        print("save_video_path = ", save_video_path, "; ", video_codec, ", ", fps, ", ", size, ", video_size = ", video_size)
        imgs=[]
        for i in tqdm(range(num_frames)):
            # Process image
            deg = i * interval_deg
            img = equ.GetPerspective(fov, deg, 0, *video_size)  # Specify parameters(FOV, theta, phi, height, width)
            if margin > 0:
                img = img[margin:-margin]
            img = np.clip(img, 0, 255).astype(np.uint8)
            img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
            imgs.append(Image.fromarray(img))
        imageio.mimsave(save_video_path, imgs, fps=fps,macro_block_size=None)
相关推荐
4SAPI36 分钟前
多模型请求路由怎么设计?成本、速度和能力如何平衡
人工智能·python·gateway·php
XCDoris3 小时前
郴州logo设计机构
大数据·人工智能·python
gCode Teacher 格码致知3 小时前
Pandas教学-17:Series与Dataframe的关系
开发语言·python·pandas
马良神笔4 小时前
2026 年Rag最近技术前沿总结
后端·python·django
不像程序员的程序媛5 小时前
maven基础
python·pycharm·maven
xiaogai_gai6 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python
benchmark_cc6 小时前
Python 量化系统如何设计统一的数据访问接口:从策略解耦到数据层架构
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
const_qiu6 小时前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
估值探索者7 小时前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
田里的水稻8 小时前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习