概要
動画ファイル中の画像で、イメージハッシュが大きく異なる画像を抽出する処理を作成した。
処理手順
- 動画ファイルをOpenCVを使ってフレーム単位で読み込み
- OpenCV形式をPIL形式に変換
- 変換したファイルのImageHash(アルゴリズム dhash)を取得
- 直前のフレームのイメージハッシュと比較し、閾値以上の場合、画像ファイルを作成
- 2~4を繰り返す
結果
閾値を30にしたところ差分の大きい画像のみ抽出できたが、1場面で複数の画像が抽出される。
画像数を減らしたいのであれば、閾値を上げる必要がある。
感想
閾値30では同一場面で複数枚の画像が出てきてしまうため、1場面1画像とするのであれば閾値を大きくしたほうがよさそう。
動画ファイルからの画像の抽出、OpenCV形式→PIL形式変換を理解できた。
ソースコード