主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

イメージシーケンスとビデオとの間の変換

VideoReaderVideoWriterを使用して,ビデオファイルとイメージファイルのシーケンスとの間で変換します。

shuttle.aviというサンプルファイルには,121枚のフレームが含まれています。VideoReaderおよび関数imwriteを使用し,これらのフレームをイメージファイルに変換します。次に,VideoWriterを使用して,このイメージファイルをAVIファイルに変換します。

設定

イメージシーケンスを保存するための一時作業フォルダーを作成します。

workingDir = tempname;mkdir (workingDir) mkdir (workingDir,“图片”

VideoReaderの作成

ファイルからのフレーム読み取りに使用するVideoReaderを作成します。

shuttleVideo = VideoReader (“shuttle.avi”);

イメージシーケンスの作成

ビデオ内をループして,imgという名前の幅x高さx 3の配列に各フレームを読み取ります。imgN.jpgという形式の名前をもつJPEGファイルに各イメージを書き込みます。Nはフレーム番号です。

| img001.jpg |

| img002.jpg |

| |…

| img121.jpg |

2 = 1;hasFrame(shutlevideo) img = readFrame(shutlevideo);文件名= [sprintf (' % 03 d ',(二)“jpg”];fullname = fullfile (workingDir,“图片”文件名);fullname imwrite (img)%写入一个JPEG文件(img1.jpg, img2.jpg等)2 = 2 + 1;结束

イメージファイル名の検索

图片フォルダーにあるすべてのJPEGファイルの名前を検出します。イメージ名のセットを细胞配列に変換します。

imageNames = dir (fullfile (workingDir“图片”‘* . jpg”));imageNames = {imageNames.name} ';

イメージシーケンスによる新しいビデオの作成

既定でjpeg AVIファイルを作成するVideoWriterオブジェクトを作成します。

outputVideo = VideoWriter (fullfile (workingDir“shuttle_out.avi”));outputVideo。帧速率= shuttleVideo.FrameRate;打开(outputVideo)

イメージシーケンス内で繰り返し,各イメージを読み取り,それをビデオに書き込みます。

ii = 1:length(imageNames) img = imread(fullfile(workingDir,“图片”, imageNames {2}));writeVideo (outputVideo img)结束

ビデオファイルを完成します。

关上(outputVideo)

最終的なビデオの表示

リーダーオブジェクトを作成します。

shuttleAvi = VideoReader (fullfile (workingDir“shuttle_out.avi”));

ビデオフレームから,MATLABムービー構造体を作成します。

2 = 1;hasFrame(shutleavi) mov(ii) = im2frame(readFrame(shutleavi)); / /输出2 = 2 + 1;结束

ビデオの幅および高さに基づいて現在の图および轴のサイズを調整し,ムービーの最初のフレームを表示します。

图imshow (mov .cdata (1),“边界”“紧”

ビデオのフレームレートでムービーを1回再生します。

电影(mov 1 shuttleAvi.FrameRate)

图中包含一个坐标轴。轴包含一个image类型的对象。

著作権表示

航天飞机的视频由美国宇航局提供。