0
私は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
に読み込む機能から来ているものを取得していますか?
ありがとうございます!私は問題が何かを知っていたが、私は最初の3次元としてコロンを追加してrgb値に対応しようとし続けた。とにかく、これは解決しましたが、今私は次の問題に直面しています: - 'hasFrame'のワーカーにUndefinedFunctionエラーがスローされました。これは、 'hasFrame'を含むファイル にワーカーがアクセスできないためです。 addAttachedFiles(プール、ファイル)を使用して、添付する添付ファイル を指定します。詳細は の詳細については、 'parallel.Pool/addAttachedFiles'のドキュメントを参照してください。それについてのアイデアか、私はこれについて新しい質問をするべきですか? –
@ChintanTrivedi 'read'の出力は' VideoReader'オブジェクトではないため、 'hasFrame'メソッドはありません。あなたは単に出力が*どのように見えるかを判断し、それをループしたいでしょう。 – Suever