writeVideo
ビデオ データをファイルに書き込む
説明
例
Motion JPEG 2000 ファイルへのイメージの書き込み
可逆圧縮を使用して RGB イメージを Motion JPEG 2000 ファイルに書き込みます。
サンプルの静止画 peppers.png
からのデータを含む配列を作成します。
A = imread("peppers.png");
新しいビデオ ファイル用に VideoWriter
オブジェクトを作成します。"Archival"
プロファイルを使用して可逆圧縮の Motion JPEG 2000 ファイルを指定します。
v = VideoWriter("myFile","Archival");
新しいファイルに使用するビデオ圧縮の種類を確認します。
v.VideoCompressionMethod
ans = 'Motion JPEG 2000'
VideoWriter
オブジェクトを書き込み用に開き、A
のイメージ データをファイルに書き込みます。
open(v) writeVideo(v,A)
VideoWriter
オブジェクトを閉じます。
close(v)
インデックス付きイメージの AVI ファイルへの書き込み
サンプルのインデックス付きイメージ ファイル corn.tif
からイメージとカラーマップ データを読み取ります。
[X,map] = imread("corn.tif");
新しいインデックス付き AVI ファイル用に VideoWriter
オブジェクトを作成します。
v = VideoWriter("myIndexed.avi","Indexed AVI");
v
の Colormap
プロパティにカラーマップ データを代入します。
v.Colormap = map;
VideoWriter
オブジェクトを書き込み用に開きます。v
を開いた後は、そのプロパティを変更することはできません。
open(v)
X
のイメージ データをビデオ ファイルに書き込みます。
writeVideo(v,X)
VideoWriter
オブジェクトを閉じます。
close(v)
MPEG-4 の AVI ファイルへの変換
サンプル ビデオの読み書きを行うオブジェクトを作成し、書き込み用に AVI ファイルを開きます。
reader = VideoReader("xylophone_video.mp4"); writer = VideoWriter("transcoded_xylophone.avi","Uncompressed AVI"); writer.FrameRate = reader.FrameRate; open(writer);
各フレームの読み書きを行います。
while hasFrame(reader) img = readFrame(reader); writeVideo(writer,img) end
VideoReader
オブジェクトをクリアして VideoWriter
オブジェクトを閉じます。
clear reader
close(writer)
アニメーションからの AVI ファイルの作成
ビデオのフレームの生成に使用する座標軸と Figure のプロパティを設定します。
Z = peaks; surf(Z); axis tight manual
set(gca,"NextPlot","replacechildren")
出力ビデオ ファイルの VideoWriter
オブジェクトを作成し、オブジェクトを書き込み用に開きます。
v = VideoWriter("peaks.avi");
open(v)
一連のフレームを生成し、Figure から各フレームを取得して、各フレームをファイルに書き込みます。
for k = 1:20 surf(sin(2*pi*k/20)*Z,Z) frame = getframe(gcf); writeVideo(v,frame) end
VideoWriter
オブジェクトを閉じます。
close(v)
入力引数
v
— 入力 VideoWriter
オブジェクト
VideoWriter
オブジェクト
入力 VideoWriter
オブジェクト。VideoWriter
を使用してオブジェクトを作成します。
img
— グレースケールまたは RGB カラー イメージを表す値
2 次元配列 | 3 次元配列 | 4 次元配列
グレースケールまたは RGB カラー イメージを表す値。2 次元、3 次元または 4 次元の配列として次のように指定します。
1 つのグレースケール、モノクロまたはインデックス付きイメージの場合、
img
は 2 次元 (高さ×幅) でなければなりません。1 つのトゥルーカラー RGB イメージの場合、
img
は高さ×幅×3 の 3 次元でなければなりません。グレースケール イメージのシーケンスの場合、
img
は高さ×幅×1×フレームの 4 次元でなければなりません。高さと幅は 1 つのファイル内の全フレームで一貫していなければなりません。RGB イメージのシーケンスの場合、
img
は高さ×幅×3×フレームの 4 次元でなければなりません。高さと幅は 1 つのファイル内の全フレームで一貫していなければなりません。
AVI または MPEG-4 ファイルを作成する場合:
img
は、1 つ以上のグレースケールまたは RGB カラー イメージを表すsingle
、double
またはuint8
値の配列です。writeVideo
はこの値を 1 つ以上の RGB ビデオ フレームとして書き込みます。インデックス付き AVI ファイルを書き込む場合を除いて、
single
型またはdouble
型のデータは[0,1]
の範囲内でなければなりません。
Motion JPEG 2000 ファイルを作成する場合:
img
は、1 つ以上のモノクロまたは RGB カラー イメージを表すuint8
、int8
、uint16
またはint16
値の配列です。
データ型: single
| double
| int8
| int16
| uint8
| uint16
frame
— フレーム データ
1 行 1 列の構造体配列 | 1 行 F
列の構造体配列
フレーム データ。1 フレームを表す 1 行 1 列の構造体配列、または複数のフレームを表す 1 行 F
列の構造体配列として指定します。各フレームに cdata
と colormap
の 2 つのフィールドが含まれます。frame
配列は通常、関数 getframe
で返されます。
colormap
が空でない場合、cdata
の各要素は 2 次元 (高さ×幅) の配列となります。高さと幅は 1 つのファイル内の全フレームで一貫していなければなりません。
colormap
には最大 256 個のエントリを含めることができます。colormap
の各要素は、[0,1]
の範囲内になければなりません。
VideoWriter
オブジェクトを作成する場合、profile
の入力と cdata
のサイズによって writeVideo
が frame
を使用する方法が決まります。
VideoWriter オブジェクトの profile | cdata の各要素のサイズ | writeVideo の動作 |
---|---|---|
| 2 次元 (高さ×幅) | 提供されたフレームをそのまま使用します。 |
'Grayscale AVI' | 2 次元 (高さ×幅) | 提供されたフレームをそのまま使用します。colormap は空でなければなりません。 |
他のすべてのプロファイル | 2 次元 (高さ×幅) | colormap フィールドを使用して RGB イメージ フレームを作成します。 |
3 次元 (高さ×幅×3) | colormap フィールドは無視します。cdata フィールドを使用して RGB イメージ フレームを作成します。 |
データ型: struct
バージョン履歴
R2010b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)