• Matlab/Python教程系列 | 根据目录下的已有图片制作视频(动画)


    MATLAB和Python的编程教程: 根据目录下的已有图片制作视频(动画)

    注1:本文系“MATLAB/Python编程教程”系列之一,致力于使用Python和Matlab实现特定的功能。本次要实现的功能是:根据目录下的已有图片制作视频(动画)。

    在这个教程中,我们将一起学习如何使用MATLAB和Python编程语言,根据目录下的已有图片制作视频(动画)。我们将从头开始,逐步解析每一行代码,以便你更好地理解每个步骤的作用。但是,首先,你需要确保你的计算机上已经安装了MATLAB和Python以及它们的相关库。

    项目设置

    首先,我们需要设置我们的项目。这意味着我们需要创建一个文件夹,其中包含我们想要转换成视频的所有图片。这些图片需要按照它们在视频中出现的顺序进行排序。我们假设这些图片是.jpg格式,它们已经被命名为img1.jpg, img2.jpg, img3.jpg等,并且存储在images文件夹中。

    用MATLAB创建视频

    MATLAB是一种强大的数值计算环境,经常被用于处理图像和视频。我们将使用MATLAB的VideoWriter对象来创建视频。

    % 创建一个VideoWriter对象,指定输出视频的名称和格式
    outputVideo = VideoWriter('output.mp4', 'MPEG-4');
    
    open(outputVideo);  % 打开文件
    
    % 指定图片文件夹的路径
    imgFolder = './images/';
    
    % 获取文件夹中所有.jpg图片的文件名
    imgFiles = dir(fullfile(imgFolder, '*.jpg'));
    
    % 按照文件名顺序遍历所有图片
    for ii = 1:length(imgFiles)
        % 读取图片
        img = imread(fullfile(imgFolder, imgFiles(ii).name));
        % 写入视频
        writeVideo(outputVideo, img);
    end
    
    close(outputVideo);  % 关闭文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    此代码会将images文件夹中的所有图片合并为一个名为output.mp4的视频。

    用Python创建视频

    在这里插入图片描述

    Python是一种广泛使用的通用编程语言,它拥有大量的库可以处理图像和视频。我们将使用opencv库来创建视频。

    首先,确保你已经安装了opencv库。如果没有,你可以使用以下命令安装:

    pip install opencv-python
    
    • 1

    接下来,我们可以开始编写我们的Python脚本:

    import cv2
    import os
    
    # 指定图片文件夹的路径
    img_folder = './images/'
    
    # 获取文件夹中所有.jpg图片的文件名
    img_files = [f for f in os.listdir(img_folder) if f.endswith('.jpg')]
    img_files.sort()  # 按文件名排序
    
    # 使用第一张图片来获取图像维度
    img = cv2.imread(os.path.join(img_folder, img_files[0]))
    height, width, layers = img.shape
    
    # 创建VideoWriter对象,指定输出视频的名称、编码器、帧率和图像大小
    video = cv2.VideoWriter('output.avi', cv2.VideoWriter_fourcc(*'DIVX'), 15, (width, height))
    
    # 按照文件名顺序遍历所有图片
    for image in img_files:
        video.write(cv2.imread(os.path.join(img_folder, image)))
    
    cv2.destroyAllWindows()
    video.release()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    此代码将images文件夹中的所有图片合并为一个名为output.avi的视频。

    在这里插入图片描述

    结果解读

    如果你正确地执行了上述代码,你应该会在你的项目文件夹中看到一个新的视频文件,无论你是使用MATLAB还是Python。这个视频应该包含了所有你放在images文件夹中的图片,按照它们的文件名顺序进行播放。

    结语

    希望你通过这个教程对如何使用MATLAB和Python从一系列图片生成视频有了更深的理解。你可以尝试使用不同的图片和设置,看看你能创造出什么样的视频。这只是MATLAB和Python处理视频的冰山一角,你还可以进一步探索这两种编程语言的其他功能,例如编辑现有的视频,添加音频等。

  • 相关阅读:
    ACM生涯总结
    Shell脚本 & Sed流编辑器 & awk语法
    【Spring】@Component组件
    QStatusBar
    【JavaEE初阶】 JavaScript基础语法——壹
    [数据结构]——单链表超详细总结
    【数据结构-进阶】二叉搜索树
    Neo4j源码研究系列 - 源代码准备
    2004-2023年中国研究生数学建模竞赛历年试题整理
    用OKR工作法让2023年的自己的薪酬翻倍
  • 原文地址:https://blog.csdn.net/qazwsxrx/article/details/132638949