ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

writeVideo

クラス: VideoWriter

ビデオ データをファイルに書き込む

構文

writeVideo(writerObj,img)
writeVideo(writerObj,images)
writeVideo(writerObj,frame)
writeVideo(writerObj,mov)

説明

writeVideo(writerObj,img) は、イメージのデータをビデオ ファイルに書き込みます。

writeVideo(writerObj,images) は、一連のカラー イメージをビデオ ファイルに書き込みます。

writeVideo(writerObj,frame) は、フレームを writerObj に関連付けられたビデオ ファイルに書き込みます。

writeVideo(writerObj,mov) は、MATLAB® ムービーをビデオ ファイルに書き込みます。mov はフレーム構造体の配列です。

writeVideo を呼び出す前に open(writerObj) を呼び出さなければなりません。

入力引数

writerObj

VideoWriter 関数によって作成される VideoWriter オブジェクト。

img

AVI または MPEG-4 ファイルを作成する場合、img は、グレースケールまたは RGB カラー イメージを表す single 値、double 値、または uint8 値の配列です。この関数は、writeVideo を RGB ビデオ フレームとして書き込みます。インデックス付き AVI ファイルを書き込む場合を除いて、single 型または double 型のデータは [0,1] の範囲内でなければなりません。

Motion JPEG 2000 ファイルを作成する場合、img はモノクロまたは RGB カラー イメージを表す uint8 値、int8 値、uint16 値、または int16 値の配列です。

グレースケール、モノクロまたはインデックス付きデータの場合、img は 2 次元の高さ x 幅になります。インデックス化されていないカラー データの場合、img は 3 次元の高さ x 幅 x 3 になります。高さと幅は 1 つのファイル内の全フレームで一貫していなければなりません。詳細は、「イメージの種類」を参照してください。

images

グレースケール (高さ x 幅 x 1 x フレーム数) イメージまたは RGB (高さ x 幅 x 3 x フレーム数) イメージの 4 次元配列。

frame

通常は関数 getframe によって返される構造体。次の 2 つのフィールドをもちます。cdata および colormapcolormap が空でない場合、writeVideo は 2 次元 (高さ x 幅) 配列の cdata を予期します。高さと幅は 1 つのファイル内の全フレームで一貫していなければなりません。colormap は最大 256 のエントリを含むことができます。

writerObjprofilecdata のサイズにより、writeVideo メソッドが frame を使用する方法が決まります。

VideoWriter オブジェクトの profilecdata のサイズwriteVideo の動作

'Indexed AVI' または 'Grayscale AVI'

2 次元 (高さ x 幅)提供されたとおりにフレームを使用します。'Grayscale AVI' では、colormap は空でなければなりません。
3 次元 (高さ x 幅 x 3)エラー

他のすべてのプロファイル

2 次元 (高さ x 幅)colormap フィールドを使用して RGB イメージ フレームを作成します。
3 次元 (高さ x 幅 x 3)Colormap フィールドは無視されます。cdata フィールドを使用して RGB イメージ フレームを作成します。

mov

1 行 F 列のフレーム構造体配列。ここで F は、イメージの数です。それぞれのフレーム構造体には cdata フィールドと colormap フィールドが含まれます。

すべて折りたたむ

アニメーションの AVI ファイル

フレーム シーケンスを圧縮 AVI ファイル peaks.avi に書き込みます。

新しいファイルを準備します。

writerObj = VideoWriter('peaks.avi');
open(writerObj);

初期データを生成して、軸と図のプロパティを設定します。

Z = peaks; surf(Z); 
axis tight
set(gca,'nextplot','replacechildren');
set(gcf,'Renderer','zbuffer');

Renderer プロパティを zbuffer または Painters に設定することによって、いくつかの Windows® システムにおける OpenGL® レンダラーでの getframe の制限事項を回避します。

一連のフレームを作成し、各フレームをファイルに書き込みます。

for k = 1:20 
   surf(sin(2*pi*k/20)*Z,Z)
   frame = getframe;
   writeVideo(writerObj,frame);
end

close(writerObj);

MPG から AVI への変換

サンプル ファイル xylophone.mp4 を非圧縮 AVI ファイルに変換します。

ビデオの読み書きを行うオブジェクトを作成し、書き込み対象の AVI ファイルを開きます。

readerObj = VideoReader('xylophone.mp4');
writerObj = VideoWriter('transcoded_xylophone.avi', ...
                        'Uncompressed AVI');

open(writerObj);

各フレームの読み書きを行います。

for k = 1:readerObj.NumberOfFrames
   img = read(readerObj,k);
   writeVideo(writerObj,img);
end

close(writerObj);
この情報は役に立ちましたか?