エッジ検出フィルタ sobel, prewitt


ffmpeg 3.2 でリリース予定のビデオフィルタ。エッジ検出フィルタに単体では edgedetectfrei0rsobel があり、カーネルを指定する convolution でもエッジ検出ができるが、今回のこれらのフィルタは edgedetect よりもエッジ部分の線が太く convolution よりも手軽なのでマスクするのにも便利。sobelprewittroberts はカーネルが少し異なるがオプションは同じである。

ffmpeg でエッジ検出をする edgedetect
エッジ検出フィルタ roberts
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

オプション

sobelprewitt のオプションは同じ。

  • planes[int]
    フィルタを当てるチャンネル指定
    背景黒とエッジに色をつけるには Y だけに当てる 1 を指定する
    詳しくは ffmpeg について | チャンネルの順番と注意点 を参照
    既定値:15(すべてのチャンネル)
    範囲:0 から 15 まで
  • scale[float]
    フィルタを当てる乗算値の指定
    既定値:1
    範囲:0 から 65535 まで
  • delta[float]
    フィルタを当てる加算値の指定
    既定値:0
    範囲:-65535 から 65535 まで

サンプル画像

アニメ画像

アニメ「艦隊これくしょん~艦これ~」の11話の大和出撃のシーン

アニメ画像 sobel=1(1st plane だけフィルタを当てている)

アニメ画像 prewitt=1(1st plane だけフィルタを当てている)

実写画像

実物大の戦艦大和

実写画像 sobel=1(1st plane だけフィルタを当てている)

実写画像 prewitt=1(1st plane だけフィルタを当てている)

コメントを残す

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

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