imageio 图片转mp4 保存mp4

news/2025/1/8 2:15:09 标签: python

目录

安装:

imageio 图片转mp4

numpy 保存mp4


安装:

  FFMPEG:  pip install imageio[ffmpeg]
  pyav:  pip install imageio[pyav]

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)


http://www.niftyadmin.cn/n/5815586.html

相关文章

Oracle Dataguard 需要配置的参数详解

Oracle Dataguard 需要配置的参数详解 目录 Oracle Dataguard 需要配置的参数详解一、数据库名:DB_NAME二、数据库唯一名:DB_UNIQUE_NAME三、LOG_ARCHIVE_CONFIG四、LOG_ARCHIVE_DEST_1五、LOG_ARCHIVE_DEST_2六、LOG_ARCHIVE_DEST_3七、LOG_ARCHIVE_DES…

英雄联盟丢失dll文件怎么解决?游戏中发现dll找不到的处理方法

下班或放学回到家,美滋滋地打开电脑,准备在召唤师峡谷大杀四方,结果点击启动游戏的瞬间,一个弹窗如同 “恶魔” 般出现 ——“XX.dll 文件丢失,无法启动游戏”。那一刻,是不是感觉心都凉了半截?…

【H3CNE邓方鸣】RIP路由协议(已淘汰)+2025.1.6

本章讲授的内容主要是为了引出OSPF对RIP缺陷的解决。 文章目录 定义RIP初始化流程路由信息更新RIP的环路问题产生原因防环机制RIP计时器 RIPv2 定义 RIP是Routing Information Protocol(路由信息协议)的简称,是一种基于距离矢量算法的路由协…

【C++数据结构——线性表】顺序表的基本运算(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 一、线性表的基本概念 二、初始化线性表 三、销毁线性表 四、判定是否为空表 五、求线性表的长度 六、输出线性表 七、求线性表中某个数据元素值 八、按元素值查找 九、插入数据元素 十、删除数据元素 测试说明 通关代码 测…

k8s集群部署 - 高版本(1.28.2) docker(运行时)

k8s集群部署 - 高版本(1.28.2) docker(运行时) 文章目录 k8s集群部署 - 高版本(1.28.2) docker(运行时)环境准备启用 Kubernetes 组件端口配置 sysctl 内核参数节点之间实现免密登录 安装 Docker在所有三台机器上,安装…

(leetcode算法题)面试题 17.19. 消失的两个数字

可以在O(n)的时间复杂度下得到这两个消失的数字的异或的结果,或者得到这两个数字的和 但是怎么从上面的结果中得到这两个数字? 比如对于异或的结果,可以知道这两个数字在哪一位的置位是不同的 然后再根据这一位把 [1, n] 分为两个不同的数…

Kubernetes(第四天)

1.基于资源清单创建harbor认证信息 需要有一个基础的secret文件 (创建:kubectl create secret docker-registry lxcharbor --docker-usernameYunwei001 --docker-passwordYunwei001 --docker-emailYunwei001qq.com --docker-serverharbor.lxcedu.com&a…

高等数学学习笔记 ☞ 导数的基础知识

1. 导数的定义 1. 函数在点处的导数定义:设函数在点的某邻域内有定义,取附近的点,对应的函数值分别和, 令,取θ (也就是以上两点确定的直线的斜率),当时,上述直线的斜率就逐渐趋近 于点处的切线的斜率,此时&#xff…