2013-07-11 43 views
0

我有300帧RGB mat数据,我想知道是否有方法使用videowriter将这些mat帧转换为avi文件?我曾尝试使用imwrite和videowriter,但无法使代码正常工作。RGB mat to avi matlab

回答

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文件包含一个单一的变量与帧信息,您需要加载您的循环内的每个mat文件并将数据写入VideoWriter对象。例如,假设所有毡文件c:/data/frames文件夹下和名称在frame1.matframe300.mat格式,并且每个垫文件有一个名为frame单一变量:

for i = 1:300 
    load (sprintf('c:/data/frames/frame%d.mat', i), 'frame'); 
    v.writeVideo(frame); 
end 
+0

谢谢你,我是在复杂的东西,试图使用imwrite。 – zlangley