• python将图片合并为视频


    # -*- coding: utf-8 -*-
    """
    Created on Sun Sep 25 21:51:56 2022
    
    @author: in
    """
    #图片合并为视频
    import cv2
    import os
    from natsort import ns, natsorted
    
    def Png_video(path,fps,ph_type):
        # path = r"D:\20240225-1k\transient\pngvideo" #修改路径(照片)
        ls=[]#存储照片的信息
        files  = os.listdir(path)#返回指定的文件夹包含的文件或文件夹的名字的列表。
        file_name = natsorted(files,alg=ns.PATH)#要加alg=ns.PATH参数才和windows系统名称排序一致
        num = 0
        for name in file_name:
            splitext = os.path.splitext(name)#使用 splitext 函数分割后缀与文件名
            # if  splitext[1] == '.png': #只保存png的图片,可对应修改
            if  splitext[1] == ph_type: #只保存png的图片,可对应修改
                fname = os.path.join(path, name)#将文件名和路径整合到一起
                num += 1
                print(num,"→",fname)
                ls.append(fname)
        print(f"共有{num}张照片待合并")
        
        
        # 视频控制
        # mage = cv2.imread('xxx.jpg')
        # size = image.shape
        # w = size[1] #宽度
        # h = size[0] #高度
        # print(ls[5])
        # fps = 30#控制快慢,越小越慢
        size = cv2.imread(ls[0]).shape[1::-1] #获取图像尺寸(宽度,高度)
        print(f"图片的像素→ 宽:{size[0]}像素、高:{size[1]}像素")#输出图像宽度、高度
        video_path = path+'\\'+"0result.mp4v"  #文件名可以修改
        videowriter = cv2.VideoWriter(video_path,-1, fps, size)
        
        
        for x in ls:
            img = cv2.imread(x)
            videowriter.write(img)
        videowriter.release()
        print(f'完成制作,已保存至{video_path}')
       
    if __name__ == '__main__':
        #仅修改此处,第一个参数为路径,第二个参数为视频帧率,第三个参数为图片类型,路径不允许要中文
        Png_video(r"D:\20240225-1k\transient\pngvideo", 30,".png")
    
    
    
    53 → D:\20240225-1k\transient\pngvideo\animation-2_0052.png
    54 → D:\20240225-1k\transient\pngvideo\animation-2_0053.png
    55 → D:\20240225-1k\transient\pngvideo\animation-2_0054.png
    56 → D:\20240225-1k\transient\pngvideo\animation-2_0055.png
    57 → D:\20240225-1k\transient\pngvideo\animation-2_0056.png
    58 → D:\20240225-1k\transient\pngvideo\animation-2_0057.png
    59 → D:\20240225-1k\transient\pngvideo\animation-2_0058.png
    60 → D:\20240225-1k\transient\pngvideo\animation-2_0059.png
    共有60张照片待合并
    图片的像素→ 宽:815像素、高:558像素
    完成制作,已保存至D:\20240225-1k\transient\pngvideo\0result.mp4v
    
    
    
    
  • 相关阅读:
    【Vue3+Ts】—— webpack打包其他资源学习笔记(二)
    webpack && babel
    链表的分割——哨兵位
    Bootstrap的不同版本使用的CSS 预处理器的不一样的
    企业微信下班后能收到通知吗?不接收消息怎么设置?
    RFID系统工作原理
    mysql面试题10:MySQL中有哪几种锁?表级锁、行级锁、页面锁区别和联系?
    高频单链表题
    C# 通讯 HslCommunication
    Mozilla Firefox侧边栏和垂直标签在131 Nightly版本中开始试用
  • 原文地址:https://blog.csdn.net/weixin_43245453/article/details/127044910