名前

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.