我试图在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
?
答案 0 :(得分:1)
您尝试将某些内容that is not a scalar(read(mov, [start, stop])
)存储到 标量(vd(i)
)的内容中。您可能希望将vd
设为一个单元格数组,以便每个元素都可以容纳任意大小/维度的内容。
vd{k} = read(mov, [(k-1)*5+1, (k)*5]);