首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自matlab的视频

来自matlab的视频
EN

Stack Overflow用户
提问于 2014-10-04 19:49:32
回答 1查看 81关注 0票数 0

我在一个文本文件中有一个矩阵3,我想从它生成一个视频。我该怎么做呢?

到目前为止,我已经完成了以下工作:我已经从文本文件中读取数据,并将其存储在一个变量中。从这里,我想生成由矩阵表示的视频。或者有没有一种方法可以把矩阵分成帧,因为我想把视频分成帧,然后再把帧组合起来,把视频拿回来。然后,我会将原始视频与当前视频进行比较

代码语言:javascript
复制
clear all
clc
filename='filename.txt';
delimiterIn=' ';
K=importdata(filename,delimiterIn);

从这里开始,我该如何继续?

EN

回答 1

Stack Overflow用户

发布于 2014-10-04 20:42:25

您没有提供有关要制作的电影的足够信息。在此page上高亮显示了制作电影的步骤。关键是在循环中调用getframe来生成电影。我正在修改matlab的示例以适应您的工作:

代码语言:javascript
复制
    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。并且比上述步骤更值得推荐。请按照那里的建议操作。这个页面很容易理解。

代码语言:javascript
复制
    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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26192507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档