我在一个文本文件中有一个矩阵3,我想从它生成一个视频。我该怎么做呢?
到目前为止,我已经完成了以下工作:我已经从文本文件中读取数据,并将其存储在一个变量中。从这里,我想生成由矩阵表示的视频。或者有没有一种方法可以把矩阵分成帧,因为我想把视频分成帧,然后再把帧组合起来,把视频拿回来。然后,我会将原始视频与当前视频进行比较
clear all
clc
filename='filename.txt';
delimiterIn=' ';
K=importdata(filename,delimiterIn);从这里开始,我该如何继续?
发布于 2014-10-04 20:42:25
您没有提供有关要制作的电影的足够信息。在此page上高亮显示了制作电影的步骤。关键是在循环中调用getframe来生成电影。我正在修改matlab的示例以适应您的工作:
clear all
clc
filename='filename.txt';
delimiterIn=' ';
K=importdata(filename,delimiterIn);
% K =load(filename) may also work
nFrames = 20;
% Preallocate movie structure.
mov(1:nFrames) = struct('cdata', [],...
'colormap', []);
% Create movie.
plot(K(:,1), K(:,2)); % assumes you are plotting the first two colums
axis tight manual
set(gca,'nextplot','replacechildren');
for k = 1:nFrames
plot(K(:,1), K(:,2)); % assumes you are plotting the first two columns
% the data must somehow change inside this loop
mov(k) = getframe(gcf);
end
% Create AVI file.
movie2avi(mov, 'mydata.avi', 'compression', 'None');另一个接口是视频写入器接口,它出现在matlab的最新版本中。它解释了here。并且比上述步骤更值得推荐。请按照那里的建议操作。这个页面很容易理解。
clear all
clc
filename='filename.txt';
delimiterIn=' ';
K=importdata(filename,delimiterIn);
% K =load(filename) may also work
%Prepare the new file.
writerObj = VideoWriter('movie.avi');
open(writerObj);
% Create movie.
plot(K(:,1), K(:,2)); % assumes you are plotting the first two colums
axis tight manual
set(gca,'nextplot','replacechildren');
set(gcf,'Renderer','zbuffer'); % optional I think
for k = 1:nFrames
plot(K(:,1), K(:,2)); % assumes you are plotting the first two columns
% the data must somehow change inside this loop
frame = getframe(gcf);
writeVideo(writerObj,frame);
end
close(writerObj);https://stackoverflow.com/questions/26192507
复制相似问题