并行处理视频文件

时间:2016-06-23 15:58:03

标签: matlab video-processing parfor

我试图在Matlab中读取25秒长的视频文件并尝试使用parfor并行处理它。我试图将其分成5个较短的视频,每个视频长度为5秒。这是代码: -

mov = VideoReader('movie.avi');

parfor i=1:5

    vd(i)=read(mov,[(i-1)*5+1, (i)*5]);
    current_frame=0;
    while hasFrame(vd(i))
        current_frame=current_frame+1;            
        vidFrame = readFrame(vd(i));
        fprintf('%d part, frame no %d\n',i,current_frame);
    end
end

我在parfor循环中的第一行继续收到此错误。

  

订阅分配维度不匹配

如何将读取函数的内容检索到帧变量vd

1 个答案:

答案 0 :(得分:1)

您尝试将某些内容that is not a scalarread(mov, [start, stop]))存储到 标量(vd(i))的内容中。您可能希望将vd设为一个单元格数组,以便每个元素都可以容纳任意大小/维度的内容。

vd{k} = read(mov, [(k-1)*5+1, (k)*5]);
相关问题