Я пытаюсь прочитать видеофайл в 25 секунд в Matlab и пытаюсь обрабатывать его параллельно с помощью 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
Я продолжаю получать эту ошибку в первой строке внутри парфорной петли.
индексируется размером назначения несовпадение
Как получить то, что приходит от чтения функции в переменный кадре vd
?
Спасибо! Я знал, в чем проблема, но я продолжал пытаться добавить двоеточие в качестве первых трех измерений для размещения значений rgb. В любом случае, это разрешило это, но теперь я столкнулся со следующей проблемой: - Ошибка UndefinedFunction была брошена на рабочих для 'hasFrame'. Это может быть связано с тем, что файл , содержащий «hasFrame», недоступен для рабочих. Используйте addAttachedFiles (пул, файлы), чтобы указать нужный файл . См. Документацию для «parallel.Pool/addAttachedFiles» для получения дополнительной информации о . Любая идея об этом или я должен задать новый вопрос для этого? –
@ChintanTrivedi Выход 'read' не является объектом« VideoReader »и поэтому не имеет метода' hasFrame'. Вы просто захотите определить, как выглядит вывод * * и перебирать его. – Suever