我有 300 帧 RGB mat 数据,我想知道是否有办法使用 videowriter 将这些 mat 帧转换为 avi 文件?我尝试过使用 imwrite 和 videowriter,但我无法让代码正常工作。
问问题
1911 次
1 回答
0
我不确定您的数据是如何格式化的,但这里有一个小程序可以帮助您入门:
% Generate sample frames
for i = 1:300
frames{i} = rand(240, 300, 3);
end
% Write sample frames to disk
v = VideoWriter('c:/data/test.avi');
v.open;
for i = 1:300
v.writeVideo(frames{i});
end
v.close;
您可以调整 AVI 中的许多参数,包括文件格式和帧速率。请参阅VideoWriter 文档。
如果mat 数据是指包含带有帧信息的单个变量的单独 mat 文件,则需要在循环中加载每个 mat 文件并将数据写入 VideoWriter 对象。例如,假设所有 mat 文件都在c:/data/frames
文件夹下,并且名称采用frame1.mat
toframe300.mat
格式,并且每个 mat 文件都有一个名为 的变量frame
:
for i = 1:300
load (sprintf('c:/data/frames/frame%d.mat', i), 'frame');
v.writeVideo(frame);
end
于 2013-07-11T17:44:12.200 回答