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
    按照以上的代码文件生成了一下的视频文件
    在这里插入图片描述

  • 相关阅读:
    hive匹配中文
    修改GIT密码
    Oracle中文排序问题
    redis-cli显示中文
    iOS应用图标AppIcon
    Flink开发环境搭建(maven)
    Flink安装部署
    java连Oracle连接字符串写法
    centos设置路由route
    Android 手机卫士--xutils说明与下载方法使用
  • 原文地址:https://www.cnblogs.com/phyger/p/14026993.html
Copyright © 2011-2022 走看看