ffmpeg 4.3 から使える予定のフィルタ。映像の指定したピクセル内のピクセル中央値を返すのでマスクしてデノイズするのに使える。マスクはcolorkey、chromakeyフィルタで作れる。

ffmpeg でクロマキー合成
ffmpeg でクロマキー合成 その2

複数ファイルの中央値を返すのならxmediaフィルタを使う。

複数ファイルの映像のピクセル中央値を返す xmedian

基本コマンド

横方向に10ピクセル、縦方向に20ピクセルにすべてのチャンネルの中央値を返す。
ffmpeg -i input -vf median=radius=10:planes=15:radiusV=20:percentile=0.5 -c:a copy output
ffplay -i input -vf median=10:15:20:0.5

緑にcolorkeyフィルタを当てて緑以外をマスクして緑部分にmedianフィルタを当てている。比較用にマスクしない例も併記。
ffplay -f lavfi -i rgbtestsrc,median=1:15:59
ffplay -f lavfi -i rgbtestsrc,split[v],colorkey=green:0.5[ov];[v]median=1:15:59[bv];[bv][ov]overlay=format=rgb

オリジナルのrgbtestsrc

マスクしない median

マスクした median

公式ドキュメント:FFmpeg Filters Documentation : median

オプション

半径オプションのピクセル数は入力した映像の縦横それぞれ4分の1引く1以下にする。

  • radius[int]
    フィルタを当てる横の半径
    既定値:1
    範囲:1 から 127 まで
  • planes[int]
    フィルタを当てるチャンネル指定
    詳しくは ffmpeg について | チャンネルの順番と注意点を参照
  • radiusV[int]
    フィルタを当てる縦の半径
    既定値:0(0指定はradiusと同じ値)
    範囲:0 から 127 まで
  • percentile[float]
    百分位数の指定。0.5 なら中央値。0 なら最小値。1 なら最大値
    既定値:0.5
    範囲:0 から 1 まで

コメントを残す

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

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