追記 2015年7月17日
同じ効果のフィルタがネイティブフィルタに取り入れられた。
avfilter: add erosion, dilation, deflate & inflate filter :: git.videolan.org Git – ffmpeg.git/commitdiff

追記ここまで

Zeranoe FFmpeg には OpenCV が有効になっていないのでこれを有効にして使える3つのフィルタについて。

OpenCV をコンパイルする

公式サイト:OpenCV | OpenCV
github:Releases · opencv/opencv
VERSION 2.4.13.2 を保存する。(追記 3.0 がうまくリンクできなくなっていたので変更した。2017年2月22日)

OpenCV のコンパイルには CMake から主に Visual Studio を使う場合と、MSYS を使う場合があり、今回は手軽に導入できる MSYS でコンパイルする。

Visual Studio を使う場合はこちらを参考にする。
OpenCV3.0.0のビルド – AkiWiki

Releases · msysgit/msysgit · GitHubXhmikosR’s Builds の full を上書きして環境を作り、etc の fstab のドライブレターを解凍先に変更する。

msys.bat を実行すると home フォルダが出来てその中のユーザー名フォルダの中にソースコードを解凍してコンパイルしていく。

opencv-2.4.13.2.zip を解凍して、build ディレクトリを作る。次に cmake をインストールするか zip なら環境変数にパスを通しておく。

Download | CMake

git から取得する場合。ffmpeg に不要なライブラリはコンパイルしない。x86 用の DLL しかできなかったので 64bit ffmpeg はよく分からない。

インストールが終わると、build/unix-install に opencv.pc があり、 opencv.pc を書き換えて、mingw/i686-w64-mingw32/lib/pkgconfig に移動する。

dll を mingw/i686-w64-mingw32/x86/mingw/bin から mingw/i686-w64-mingw32/lib に移動する。

そして ffmpeg の configure に --enable-libopencv をつけてビルドする。ffmpeg の実行には opencv.pc で指定した libopencv_core2413.dll, libopencv_imgproc2413.dll が必要になる。

OpenCV のフィルタ内容

ffmpeg で使える OpenCV フィルタは dilate, erode, smooth の3つ。

公式ドキュメント:FFmpeg Filters Documentation : ocv
該当コード:FFmpeg/vf_libopencv.c at master · FFmpeg/FFmpeg

  • dilate
    色の境界を縮小する。設定を強めるほど白っぽくなり小さい文字などの細かい描写の境がなくなる
    最初のかけ算で明度のピクセル指定で、次のかけ算は最初のかけ算の値より小さくなければならない
    次の文字列は rect, cross, ellipse が指定できるが詳細不明
    最後の引数はどれだけフィルタを強く掛けるか。1以上の整数を指定する
    -vf "ocv=dilate:3x3+0x0/rect|1"
  • erode
    色の境界を拡大する。設定を強めるほど線が太くなり細かい描写の堺がなくなる
    設定内容は dilate と同じ
    -vf "ocv=erode:3x3+0x0/rect|1"
  • smooth
    映像をスムーズ(のっぺり)させる
    アルゴリズムは blur, blur_no_scale, median, gaussian, bilateral が使え、既定値は gaussian
    blur, gaussian は映像がぼける
    数字の引数が 4つあるが最初の 1つしか効果が無い
    最初の引数は 1以上の正の奇数の整数を指定する
    -vf "ocv=smooth:gaussian:3:0:0:0"

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)