AVIファイルから画像を取り出す方法がやっと分かった

とりあえず動画再生関数として,ShowAllFramesfromAvifile.mというファイルを作成した例を次に示す.

function ShowAllFramesfromAvifile ( filename )
%ShowAllFramesfromAvifile AVIコンテナ内のフレームをすべて表示
% 返り値 なし
% 途中終了したいときは Ctrl+C する.ただし以下のメッセージが表示される
% エラー ==> ShowAllFramesfromAvifile at 15
%	pause(pausesec); % n秒間待機

info = aviinfo(filename); % AVI情報取得
nframes = info.NumFrames; % フレーム数は NumFramesメンバ が保有
fps = info.FramesPerSecond; % fpsは FramesPerSecondメンバ が保有
pausesec = fps/60;
for k=1:nframes
	avi = aviread(filename, k); % 第kフレームの構造体を得る
	im = imshow(avi.cdata); % RGBデータは cdataメンバ が保有
	pause(pausesec); % n秒間待機
end

今まで,メンバアクセスについて知らなかったためにできなかった.aviinfo()で取り出した構造体から,個別の情報取得ができるか試行し,成功したために先に示した例のように利用した.

さて,画像取得について,他に適切な方法あれば教えてください.aviread(filename, k)が非エレガントに感じるのです.