zoukankan      html  css  js  c++  java
  • 利用Python将多张图片合成视频

    今天要做一个量子隧穿的的演示动画,在CSDN上看了很多大佬的文章,然而忙了接近半天才做好这件事。把踩过的坑记一下,同时这段代码也是值得记录的,因为以后也可能遇到类似的工作。
    先上代码`

    import numpy as np
    import cv2
    #读取一张图片
    size = (432,288)
    print(size)
    #完成写入对象的创建,第一个参数是合成之后的视频的名称,第二个参数是可以使用的编码器,第三个参数是帧率即每秒钟展示多少张图片,第四个参数是图片大小信息
    videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)#20是帧数,size是图片尺寸
    img_array=[]
    for filename in [r'F:\Picture\{0}.png'.format(i) for i in range(600)]:
        img = cv2.imread(filename)
        if img is None:
            print(filename + " is error!")
            continue
        img_array.append(img)
    for i in range(600):
        videowrite.write(img_array[i])
    print('end!')
    

    算法的核心思想,大家的代码可能千差万别,但是思路都是一样的。
    1.利用cv2.imread()读取图片文件
    2.利用cv2.VideoWriter()产生一个对象
    3.调用这个对象的write方法将所需的图片写进去,这样就生成了一个视频
    几个大坑:
    1.

    size = (432,288)#这边是图片的尺寸,图片的尺寸得是一样的,不一样的话有个博主编了一个resize函数可以去参考一下
    

    2.imread函数无法读取有中文字符的路径,一定得是英文字符
    3.videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)这边的路径好像也得是英文,我试了含有中文的路径不行

    我把图片命名为0~599.png
    按照以上的代码文件生成了一下的视频文件
    在这里插入图片描述

  • 相关阅读:
    Lucene in action 笔记 case study
    关于Restful Web Service的一些理解
    Lucene in action 笔记 analysis篇
    Lucene in action 笔记 index篇
    Lucene in action 笔记 term vector
    Lucene in action 笔记 search篇
    博客园开博记录
    数论(算法概述)
    DIV, IFRAME, Select, Span标签入门
    记一个较困难的SharePoint性能问题的分析和解决
  • 原文地址:https://www.cnblogs.com/phyger/p/14026821.html
Copyright © 2011-2022 走看看