2009/01/19(月) [n年前の日記]
#1 [iappli] ムービーの中に特定の画像パターンがあるかどうかを調べたくて色々と
参考資料として大量にムービーが届いていて。しかもそのムービー中に、どこでループするのかが、映像として記録されていたり。さらに、それらを全部チェックせよ、という指示が。さすがにこれは、手動&目視でやる数じゃないだろうと思い始める。
元ムービーはQuickTime形式、かつ、複数のフォルダに分類されて入ってる。コマンドプロンプト上から dir /s /b *.mov すればファイルパスを列挙したものが得られるから、それをテキストファイルにして(dir /s /b *.mov > hoge_list.txt みたいな)。1行ずつ何かで読んで QuickTime Player を呼べば…。ちなみに、QuickTime Player でしか再生できないデータがいくつか含まれてるらしいので、他の再生ソフトを使って楽をすることはできないっぽい。
再生ソフト起動&ムービー再生まではいいとして。問題は、ムービー再生画面の中に特定の画像パターンがあるかどうかをどうやって調べるか、なわけで。何か良いツールはないかと思って検索していたら、AutoHotKey に、画像の比較をする関数が存在することを知った。コレだ。
元々AutoHotKeyは、デスクトップ操作の各種自動化を目的として作成されたモノらしいので、リストファイルを読み込んで QuickTime Player に .mov のパスを渡しながら起動、という処理についてもできなくはない。いや、言語仕様?が判らなくて少しハマったけど。文字列を「"」で挟むのか挟まないのか、変数への代入は「=」なのか「:=」なのか、どっちやねん。みたいな。
QuickTime Player は、一時停止状態の際に、カーソルキーの左右でコマ送りが出来るらしく。正確なコマ送りではない・フレーム単位の移動ではないのかもしれないけど、おそらく画像比較という処理は結構な処理時間を食いそうだから、処理が終わったら映像を次に進められるだけでも実に助かりそう。
ムービーの再生終了を判別できないと多数のファイルを順々に処理していくことができない。どうやって再生終了を検知するか悩んだけれど。再生中の場所を示すバーが一番右に来た時の、バーのマーク周辺画像を画像比較することでどうにか。再生終了時のウインドウをキャプチャして、バー周辺の必要な部分だけトリミングした画像を作成。ソレと画像比較することで、再生終了を判別。
甘かった。元ムービー中の、画像パターンの表示位置・サイズが、ムービーによってまちまちなことに気づいた。しかも色まで違う。
元ムービーはQuickTime形式、かつ、複数のフォルダに分類されて入ってる。コマンドプロンプト上から dir /s /b *.mov すればファイルパスを列挙したものが得られるから、それをテキストファイルにして(dir /s /b *.mov > hoge_list.txt みたいな)。1行ずつ何かで読んで QuickTime Player を呼べば…。ちなみに、QuickTime Player でしか再生できないデータがいくつか含まれてるらしいので、他の再生ソフトを使って楽をすることはできないっぽい。
再生ソフト起動&ムービー再生まではいいとして。問題は、ムービー再生画面の中に特定の画像パターンがあるかどうかをどうやって調べるか、なわけで。何か良いツールはないかと思って検索していたら、AutoHotKey に、画像の比較をする関数が存在することを知った。コレだ。
元々AutoHotKeyは、デスクトップ操作の各種自動化を目的として作成されたモノらしいので、リストファイルを読み込んで QuickTime Player に .mov のパスを渡しながら起動、という処理についてもできなくはない。いや、言語仕様?が判らなくて少しハマったけど。文字列を「"」で挟むのか挟まないのか、変数への代入は「=」なのか「:=」なのか、どっちやねん。みたいな。
QuickTime Player は、一時停止状態の際に、カーソルキーの左右でコマ送りが出来るらしく。正確なコマ送りではない・フレーム単位の移動ではないのかもしれないけど、おそらく画像比較という処理は結構な処理時間を食いそうだから、処理が終わったら映像を次に進められるだけでも実に助かりそう。
ムービーの再生終了を判別できないと多数のファイルを順々に処理していくことができない。どうやって再生終了を検知するか悩んだけれど。再生中の場所を示すバーが一番右に来た時の、バーのマーク周辺画像を画像比較することでどうにか。再生終了時のウインドウをキャプチャして、バー周辺の必要な部分だけトリミングした画像を作成。ソレと画像比較することで、再生終了を判別。
甘かった。元ムービー中の、画像パターンの表示位置・サイズが、ムービーによってまちまちなことに気づいた。しかも色まで違う。
[ ツッコむ ]
以上、1 日分です。