包含从.AVI生成TIFF文件的功能

时间:2014-05-22 20:09:35

标签: matlab tiff avi

我正在尝试创建一个接收电影(.AVI)并生成一系列图像(.TIF)的函数。

我知道我可以在命令行中使用它:

obj = VideoReader('movie.m');
vid = read(obj);
frames = obj.NumberOfFrames;
for x = 1 : frames
    imwrite(vid(:,:,:,x),strcat('frame-',num2str(x),'.tif'));
end

如何将其变成输入电影并生成一系列tif图像的功能?

例如,我有一个函数,在执行时会在当前文件夹中生成“movie.avi”。我想要一个函数avitotif(movie.avi),它需要movie.avi并制作一系列tif图像。

谢谢

1 个答案:

答案 0 :(得分:0)

如果要将其转换为函数,则需要执行两项操作:

  1. 使用函数标头包装此代码,并为输入指定一个参数:视频存储的路径。我们将此输入称为pathToMovie
  2. 在函数标题之后更改代码的第一行,以便从输入中获取字符串。
  3. 完成后,将此文件另存为avitotif.m,将工作目录设置为此文件所在的位置,然后运行avitotif('movie.avi');,假设AVI文件也在同一个文件中。目录

    以下是代码的样子:

    function [] = avitotif(pathToMovie)
    obj = VideoReader(pathToMovie);
    vid = read(obj);
    frames = obj.NumberOfFrames;
    for x = 1 : frames
        imwrite(vid(:,:,:,x),strcat('frame-',num2str(x),'.tif'));
    end
    

    现在继续拨打avitotif('movie.avi');