自動フレーム切り出し

やはり、手作業で画像からフレームを切り出す気にはとてもならないです。フィルムの形状は決まっているので、自動で切り出すプログラムを作成できそうな気がします。世の中にはopenCVという便利な画像処理ツールがあるので試してみます。

まずは、斜めに撮影されたフィルムを真っ直ぐにします。実際は劣化により多少曲がっていたりするのですが、まずは気にしないことにします。フィルムのエッジを抽出するためにエッジ抽出した後、ハフ変換をかけます。線分が求まるので、その角度で回転します。これで真っ直ぐになります。

次にフレームの位置を抽出するために、まず、抽出しやすそうな穴に着目します。穴はテンプレートマッチで抽出します。穴の位置が抽出されたら、その位置を基準にフレームを抽出します。

簡単そうですね。

と思ったのは大間違いで、作ってみるとopenCVの機能は予想外に単純なので、後処理をかなり頑張る必要がありました。でも、なんとか抽出できたフレームがこれです。

白線の四角が抽出結果で、穴とフレームの場所を示しています。実際にそれぞれのフレームを切り出すとこんな感じです。

これで1画像から5フレーム程度が抽出することができます。ただ、次の一連のフレームを1画像で撮影したら、どのフレームは既に抽出していて、どのフレームから抽出すれば良いのでしょうか?これを手作業で管理するのは大変です。