ffmpeg 3.2 でリリース予定のビデオフィルタ。エッジ検出フィルタに単体では edgedetect
と frei0r
の sobel があり、カーネルを指定する convolution
でもエッジ検出ができるが、今回のこれらのフィルタは手軽でエッジ部分の線が太いのでマスクするのにも便利。sobel
と prewitt
はカーネルが少し異なるがオプションは同じである。
ffmpeg でエッジ検出をする edgedetect
ffmpeg で使える frei0r フィルタの使い方
先鋭化やぼかし、エンボス処理などができる convolution
ffmpeg でエッジマスク
基本コマンド
既定値のオプションを当てる
ffmpeg -i input -vf sobel=planes=15:scale=1:delta=0 output
ffmpeg -i input -vf sobel=15:1:0 output
ffplay -i input -vf sobel=15:1:0
公式ドキュメント:FFmpeg Filters Documentation : sobel
公式ドキュメント:FFmpeg Filters Documentation : prewitt
オプション
sobel
と prewitt
のオプションは同じ。
- planes[int]
フィルタを当てるチャンネル指定
背景黒とエッジに色をつけるには Y だけに当てる 1 を指定する
詳しくは ffmpeg について | チャンネルの順番と注意点 を参照
既定値:15(すべてのチャンネル)
範囲:0 から 15 まで - scale[float]
フィルタを当てる乗算値の指定
既定値:1
範囲:0 から 65535 まで - delta[float]
フィルタを当てる加算値の指定
既定値:0
範囲:-65535 から 65535 まで
サンプル画像
アニメ画像
実写画像