MATLAB | 生成视频文件

在《MATLAB | 生成多张图片并保存》一文中演示了如何生成多张图片并保存到指定文件夹中,这篇博客将在上文基础上演示如何生成一个视频文件。

%% Title: Video Generator
 % Author: 羽墨志(https://yumozhi.com/)
 % Date  : 2020-09-17
 
%% Introduction
 % 按需求生成视频文件并保存到指定文件夹下

width = 480;  % 图片宽度
height = 600; % 图片高度
dim = 3; % 图片维度

% 按照图片规格预分配内存
image = zeros(height, width, dim, 'uint8'); % 指定类型,避免数据转换

path = 'image/'; % 保存的文件夹位置
prefix = 'image_'; % 文件名前缀
format = 'png'; % (图片)文件格式
suffix = strcat('.',format); % 文件后缀
gray_level = 32; % 灰阶等级
gray_step = 256 / gray_level; % 灰阶间隔

% 如果目录不存在则新建,否则删除文件夹并新建
if ~exist(path,'dir')
    mkdir(path);
else
    rmdir(path,'s');
    mkdir(path);
end

% 设置视频相关参数
% 视频分辨率由第一帧图片的分辨率确定
video_path = 'videos/'; % 保存的路径,需手动提前创建
video_name = 'video.avi'; %  视频文件名
frame_rate = 1; % 视频帧率


% vedio = VideoWriter('demo.mp4','MPEG-4'); % 初始化一个MP4文件
% vedio = VideoWriter('demo_tag.avi','Uncompressed AVI'); % 初始化一个不压缩的avi文件
vedio = VideoWriter(strcat(video_path,video_name)); % 初始化一个avi文件
vedio.FrameRate = frame_rate; % 设置视频帧率
open(vedio); % 打开视频文件

% 生成图像并保存
for index = 1 : gray_level
    % 计算对应灰阶值
    gray_value = index * gray_step - 1;
    image(:,:,:) = gray_value;
    % 拼接文件名并保存图像
    % 生成视频仅需图像数据即可,因此无需保存图片
    % imwrite(image,strcat(path, prefix, num2str(gray_value), suffix), format);
    writeVideo(vedio,image); % 写入视频帧
end
close(vedio); % 关闭视频文件
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羽墨志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值