Marziliano, Pinaらの”A no-reference perceptual blur metric.”を基としたフレームのぼやけ度を判定するblurdetectフィルタの使い方。フィルタを通しても映像は変化しない。メタデータに出力するのでffprobe連携できる。

フレームのブロックノイズを数値化するblockdetectフィルタもある。
ブロックノイズを数値化するblockdetect

基本コマンド

コンソールの最後に統計の平均を表示する。
ffmpeg -i input -vf blurdetect=high=50/255:high=20/255:radius=50:block_pct=80:block_width=32:block_height=32 -an -f null -
ffmpeg -i input -vf blurdetect=50/255:20/255:50:80:32:32 -an -f null -

metadataフィルタでコンソールにフレーム毎の結果を表示する。
ffmpeg -i input -vf blurdetect=50/255:20/255:50:80:32:32,metadata=print:key=lavfi.blur -an -f null -
ffplay -i input -vf blurdetect=50/255:20/255:50:80:32:32,metadata=print:key=lavfi.blur

drawtextフィルタで映像にフレーム毎の結果を描写する。
ffplay -i input -vf blurdetect,drawtext=y=40:fontfile=C\\://WINDOWS/Fonts/arial.ttf:fontsize=20:fontcolor=white:box=1:boxcolor=black@0.4:text='"blurdetect ("%{metadata\:lavfi.blur})'

ffprobeで統計をログで出力する。
ffprobe -v error -f lavfi -i movie=input.mp4,blurdetect -select_streams v:0 -show_entries packet=pts_time -show_entries packet_tags=lavfi.blur -of csv=print_section=0 > blurdetect.csv
ffprobe -v error -f lavfi -i movie=input.mp4,blurdetect -select_streams v:0 -show_entries packet=pts_time -show_entries packet_tags=lavfi.blur -of csv=print_section=0 -o blurdetect.csv

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

オプション

  • high[float]
    Cannyアルゴリズムで使用される上限しきい値の指定。高いしきい値によって強いエッジピクセルが選択される
    既定値:0.117647
    範囲:0から1まで
  • low[float]
    Cannyアルゴリズムで使用される下限しきい値の指定。high以下の値にする
    既定値:0.0588235
    範囲:0から1まで
  • radius[int]
    エッジピクセルの周囲で局所的な最大値を検索する半径を定義する
    既定値:50
    範囲:1から100まで
  • block_pct[int]
    パーセンテージの範囲で最も重要なブロックのみのぼやけ度を決める
    既定値:80
    範囲:1から100まで
  • block_width[int]
    指定したブロックの横幅でぼやけ度を決める。1より小さい値はblock_heightに関係なく画面全体で処理する。そのときはblock_pctも関係なくなる
    既定値:-1
    範囲:-1からINT_MAXまで
  • block_height[int]
    指定したブロックの縦幅でぼやけ度を決める。1より小さい値はblock_widthに関係なく画面全体で処理する。そのときはblock_pctも関係なくなる
    既定値:-1
    範囲:-1からINT_MAXまで
  • planes[int]
    フィルタを当てるチャンネル指定
    既定値:1
    詳しくは ffmpeg について | チャンネルの順番と注意点を参照

メタデータ出力内容。

lavfi.blur

One thought on “フレームのぼやけ度を判定するblurdetect”

  • 匿名

    「カメラをゆっくり動かしてください」というメッセージを表示するかどうか、他にもフィードバックしてぼやけ抑制の制御に使える。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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