readFrame
次のビデオ フレームの読み取り
説明
例
サンプル ビデオ ファイル xylophone_video.mp4 の VideoReader オブジェクトを作成します。
v = VideoReader("xylophone_video.mp4");ビデオから、1 フレームずつすべてのフレームを読み取ります。
while hasFrame(v) frame = readFrame(v); end
readFrame によって返された最後のフレームに関する情報を表示します。
whos frameName Size Bytes Class Attributes frame 240x320x3 230400 uint8
VideoReader オブジェクトをクリアします。
clear vサンプル ビデオ ファイル xylophone_video.mp4 の VideoReader オブジェクトを作成します。
v = VideoReader("xylophone_video.mp4");ビデオの先頭から 2.5 秒後にフレームの読み取りを開始するように指定します。
v.CurrentTime = 2.5;
フレームを表示する axes オブジェクトを作成します。次に、読み取り可能なフレームがなくなるまで、ビデオ フレームの読み取りと表示を続行します。
currAxes = axes; while hasFrame(v) vidFrame = readFrame(v); image(vidFrame,"Parent",currAxes) currAxes.Visible = "off"; pause(1/v.FrameRate) end


VideoReader オブジェクトをクリアします。
clear vサンプル ビデオ ファイル xylophone_video.mp4 の VideoReader オブジェクトを作成します。次にビデオの幅と高さを決めます。
xyloObj = VideoReader("xylophone_video.mp4");
vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;ビデオ構造体配列を作成します。
mov = struct("cdata",zeros(vidHeight,vidWidth,3,"uint8"),colormap=[]);
ビデオの最後までフレームを 1 つずつ読み取ります。
k = 1; while hasFrame(xyloObj) mov(k).cdata = readFrame(xyloObj); k = k+1; end
ビデオの幅と高さに基づいて Figure のサイズを設定し、ビデオを 1 回再生します。
vf = figure(Position=[0 0 xyloObj.Width xyloObj.Height]);
imshow(mov(1).cdata,Border="tight")
movie(vf,mov,1,xyloObj.FrameRate)
VideoReader オブジェクトをクリアします。
clear xyloObj入力引数
入力 VideoReader オブジェクト。関数 VideoReader を使用してビデオ ファイルから VideoReader オブジェクトを作成します。
出力引数
ビデオ フレーム データ。配列として返されます。video の次元とデータ型は obj の VideoFormat プロパティで決まります。
次の表は、video のデータ型と次元をファイル形式別にリストしたものです。H はイメージ フレームの高さを示し、W はイメージ フレームの幅を示します。obj の VideoFormat プロパティが 'Indexed' の場合、video のデータ型と次元は引数 'native' を指定して readFrame を呼び出したかどうかによって決まります。
obj.VideoFormat の値 | video のデータ型 | video の次元 | 説明 |
|---|---|---|---|
'RGB24' ('native' の指定はオプション) | uint8 |
| RGB24 イメージ |
'Grayscale' (次を指定しない) 'native' | uint8 |
| グレースケール イメージ |
'Indexed' (次を指定しない) 'native' | uint8 |
| RGB24 イメージ |
'Grayscale' または 'Indexed' ('native' を指定する) | struct | 1 行 1 列 | MATLAB® ムービー。フレーム構造体配列の配列。各配列にはフィールド |
Motion JPEG 2000 のファイルでは、video のデータ型と次元は次のようになります。
obj.VideoFormat の値 | video のデータ型 | video の次元 | 説明 |
|---|---|---|---|
'Mono8' | uint8 |
| モノ イメージ |
'Mono8 Signed' | int8 |
| モノ符号付きイメージ |
'Mono16' | uint16 |
| モノ イメージ |
'Mono16 Signed' | int16 |
| モノ符号付きイメージ |
'RGB24' | uint8 |
| RGB24 イメージ |
'RGB24 Signed' | int8 |
| RGB24 符号付きイメージ |
'RGB48' | uint16 |
| RGB48 イメージ |
'RGB48 Signed' | int16 |
| RGB48 符号付きイメージ |
制限
Windows® 上の一部の AVI、MOV、または MP4 ファイルでは、関数
readFrameを使用してファイル内のすべてのフレームを読み取った結果のフレーム数が、VideoReaderオブジェクトのNumFramesプロパティによって返される値と異なる場合があります。
拡張機能
使用上の注意および制限:
readFrameのコード生成で、オプションの位置引数nativeはサポートされません。行優先のレイアウトを使用するコードを生成 — 行優先の配列レイアウトを使用するコードの生成 (MATLAB Coder)
配列サイズの制限 — コードを生成する場合、配列の最大要素数は、コード ジェネレーターとターゲット ハードウェアによって制限されます。詳細については、コード生成における配列サイズの制限 (MATLAB Coder)を参照してください。
バージョン履歴
R2014b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)