手習ひデジタル信号処理(167) Scilab、{IPCV}、ビテオのハンドリング

Joseph Halfmoon

前回はオブジェクト・トラッキングを行うために動画像から数枚のフレームを取り出し。そういうことでScilabのIPCVには動画像をハンドリングするためのツール類も含まれています。静止画から動画をエンコードしたり、動画像から静止画を切り出したりする程度のプリミティブな作業っすけど。今回は使いそうな奴らを撫でてみます。

※「手習ひデジタル信号処理」投稿順 Indexはこちら

※Windows11上の    Scilab2024.0.0およびScilab上のScilab IPCVツールボックスを使用させていただいております。

aviinfo

前回は、動画からフレームを切り出すのに以下の2関数を使ってました。

    • aviopen
    • avireadframe

open あれば closeあり、ちゃんと avicloseという関数もあるのですが、前回はリードオンリな使い方だったので飛ばしていただけ。

さっそく書き込みへ行く前に、動画の素性を確かめるための関数 aviinfo というものがあったので、それを試用してみたいと思います。題材は前回オブジェクトトラッキングに使った動画です。こんな感じ。aviinfo

フレーム数、横幅、縦幅、フレームレートなど最低限の情報はGetできますな。しかし、コーデックなどは不明。

Scilab IPCVのHelpファイルを読んでみると気づくのは、codecがIPCVパッケージに含まれているわけじゃない、必要なコーデックは各自でインストールが必要ってことであります。その割には手元環境では何の問題も起きてません。元々インストールされていたのか、動画再生ソフトのインストールの際についでに入れてくれていたのか?その辺は不明。

Helpファイルの処理例ではフリーのコーデック Xvid を使ってます。これについても手元環境にはインストール済でした。念のため Xvid のURLが以下に。

https://www.xvid.com/

動画の作成例

avifileという動画像を作成するために新たなファイルを開く関数があり、その関数のHelpに処理例が掲載されています。以下はその通りに処理したもの。avifile_addframe

上記の処理により、毎度お馴染み「お猿様」のご尊顔にゆっくり寄っていくという動画 baboon.aviを生成することができます。黄色マーカのavifile関数の引数にxvid とコーデックが指定されているのが見えますな。また緑色マーカ部分が、お猿様のご尊顔から領域を切り出してフレームを次々と追加しておる部分です。

上記の動画をWindows上でプロパティを見たものが以下に。baboon_avi_property

 

まあ、aviinfoと同等な情報は得られるけれども、とおり一遍じゃね。

そこでみんな大好き「VLCメディアプレイヤー」を使ってコーデックを確認してみたものが以下に。baboon_avi_codec

コーデックのフォーマットが分かったからといってどうよ、という話だが。なお「VLCメディアプレイヤー」を使ってコーデックを確認できるのは再生中のストリームに対してみたいです。

手習ひデジタル信号処理(166) Scilab、{IPCV}、Object Tracking へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です