0

300 フレームの RGB マット データがあり、ビデオライターを使用してこれらのマット フレームを avi ファイルに変換する方法があるかどうか疑問に思っていました。imwrite と videowriter を使用してみましたが、コードが機能しません。

4

1 に答える 1

0

あなたのデータがどのようにフォーマットされているかわかりませんが、ここにあなたが始めるのを助けるための小さなプログラムがあります:

% Generate sample frames
for i = 1:300
    frames{i} = rand(240, 300, 3);
end

% Write sample frames to disk
v = VideoWriter('c:/data/test.avi');
v.open;
for i = 1:300
    v.writeVideo(frames{i});
end
v.close;

AVI には、ファイル形式やフレーム レートなど、微調整できる多くのパラメーターがあります。VideoWriterのドキュメントを参照してください。

マット データとは、フレーム情報を含む 1 つの変数を含む個別のマット ファイルを意味する場合、ループ内で各マット ファイルを読み込み、データを VideoWriter オブジェクトに書き込む必要があります。たとえば、すべてのマット ファイルがc:/data/framesフォルダーの下にあり、名前がframe1.mattoframe300.mat形式であり、各マット ファイルに という 1 つの変数があるとしますframe

for i = 1:300
    load (sprintf('c:/data/frames/frame%d.mat', i), 'frame');
    v.writeVideo(frame);
end
于 2013-07-11T17:44:12.200 に答える