The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

名前

Cv::Flipbook - パラパラ漫画をビデオとして扱う

概要

 use Cv;
 use Cv::Flipbook;
 
 my $capture = Cv->CaptureFromFlipbook("/path/to/flipbook");
 while (my $frame = $capture->QueryFrame) {
   $frame->Flip(\0, 1)->ShowImage;
   my $c = Cv->WaitKey(100);
   last if $c >= 0;
 }

説明

Cv::Flipbook は、画像ファイルをひとつのディレクトリにまとめ、それを 順番に読み込んでビデオ入力の代わりとして扱います。画像ファイルは、次の 点に注意する必要があります。(1) すべての画像の大きさを揃える。(2) ファ イル名に順序付けのための番号を含める。

メソッド

Cv::Flipbook->new($dir, $flags, $pattern)

パラパラ画像をビデオ入力にするオブジェクトを返します。new の代りに Cv->CaptureFromFlipbookCv::Capture->FromFlipbook も使 えます。

$dir

パラパラ漫画の画像ファイルをまとめたディレクトリです。省略時は、 カレントディレクトリを対象として扱います。

$flags

画像ファイルの読み込みで LoadImage のフラグとして使います。省略時は、 CV_LOAD_IMAGE_COLOR を使いれます。

$pattern

$dir と合わせて画像ファイルの一覧を得るためのパターンとして使います。ス カラかリストを指定します。省略したときには、いくつかの画像ファイルの拡 張子が指定されたものとみなします。

 glob("$dir/$pattern")               # scalar
 map { glob("$dir/$_") } @$pattern   # list
GrabFrame()

次フレームの画像ファイルを準備します。次のフレーム番号は、 CV_CAP_PROP_POS_FRAMES で得られるプロパティです。

NextFrame()

フレーム番号を 1つ進めます。

RetrieveFrame()

フレームを読み込んで返します。フレーム番号は 1つ進みます。次のプロパティ を更新します。

 CV_CAP_PROP_FRAME_WIDTH
 CV_CAP_PROP_FRAME_HEIGHT
 CV_CAP_PROP_POS_MSEC      # CV_CAP_PROP_FPS が定義済なら

3つ目の CV_CAP_PROP_POS_MSEC は、秒あたりのフレーム数 CV_CAP_PROP_FPS が SetCaptureProperty で与えられていれば更新します。最後のフレームを 越えると undef を返します。

QueryFrame()

次のフレームを読み込み、それを返します。

GetCaptureProperty($property_id)

パラパラビデオ入力のプロパティ $property_id を取得します。 取り扱えるプロパティは次のとおり。

 CV_CAP_PROP_FPS
 CV_CAP_PROP_POS_MSEC
 CV_CAP_PROP_POS_FRAMES
 CV_CAP_PROP_FPS
 CV_CAP_PROP_FRAME_WIDTH
 CV_CAP_PROP_FRAME_HEIGHT

詳細は OpenCV のリファレンスを参照してください。

SetCaptureProperty($property_id, $value)

パラパラビデオ入力のプロパティ $property_id に $value を与えます。

エクスポート

ありません。

バグ

参考

Cv::Nihongo

著作権

Yuta MASUDA <yuta.masuda@newdaysys.co.jp>

Copyright (c) 2010, 2011, 2012 by Yuta MASUDA.

All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.