レンズ補正フィルタは他に frei0rlensfun などの外部フィルタがある。手動補正なのであらかじめレンズの視野(Field of View)を調べておくと設定が楽になる。魚眼レンズの修正もできる。

基本コマンド

既定値での設定。k1, k2 が0なので変化しない。
ffmpeg -i input -vf lenscorrection=cx=0.5:cy=0.5:k1=0:k2=0 output

video – Is there a way to remove GoPro fisheye using ffmpeg – Stack Overflow より k1 の計算方法。

GoPro 3 setting: 16 x 9 Widescreen :: H fov = 69.5 || V fov = 118.2 || Diag = 133.6
118.2 / 69.5 * 133.6 = 227.216, k1=227

GoPro のここでは HERO5 の FOV のデータが公開されている。
jp.gopro.com/help/articles/Question_Answer/HERO5-Black-Field-of-View-FOV-Information より

垂直画角(V. FOV) 水平画角(H. FOV) 対角画角(Diag)
4 x 3 W 94.4 122.6 149.2
4 x 3 M 72.2 94.4 115.7
4 x 3 N 49.1 64.6 79.7
16 x 9 W 69.5 118.2 133.6
16 x 9 M 55 94.4 107.1
16 x 9 N 37.2 64.4 73.6

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

オプション

  • cx[double]
    ゆがみ補正する中心を横方向の相対位置で指定
    既定値:0.5
    範囲:0 から 1 まで
  • cy[double]
    ゆがみ補正する中心を縦方向の相対位置で指定
    既定値:0.5
    範囲:0 から 1 まで
  • k1[double]
    補正係数
    既定値:0
    範囲:-1 から 1 まで
  • k2[double]
    補正係数の2乗
    既定値:0
    範囲:-1 から 1 まで

変換例

サンプル画像は縦横平行な格子状の画像
ffmpeg -f lavfi -i color=white:s=502x402 -vf drawgrid=width=20:height=20:thickness=1:color=black -frames 1 output.png
k1, k2 の指定値

-1, 0

-0.5, 0

-0.1, 0

0.1, 0

0.5, 0

1, 0

0, -1

0, -0.5

0, -0.1

0, 0.1

0, 0.5

0, 1

-1, -1

-0.5, -0.5

-0.1, -0.1

0.1, 0.1

0.5, 0.5

1, 1

コメントを残す

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

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