我有300帧RGB垫数据,我想知道是否有办法使用视频任务将这些垫帧转换为avi文件?我尝试过使用imwrite和videowriter,但我无法让代码工作。
答案 0 :(得分: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 documentation。
如果通过 mat data 表示包含单个变量和帧信息的单独mat文件,则需要在循环中加载每个mat文件并将数据写入VideoWriter对象。例如,假设所有mat文件都在c:/data/frames
文件夹下,并且名称采用frame1.mat
到frame300.mat
格式,并且每个mat文件都有一个名为frame
的变量:
for i = 1:300
load (sprintf('c:/data/frames/frame%d.mat', i), 'frame');
v.writeVideo(frame);
end