レンズ補正フィルタは他にperspective
、remap
フィルタやfrei0r
、lensfun
などの外部フィルタがある。手動補正なのであらかじめレンズの視野(Field of View)を調べておくと設定が楽になる。魚眼レンズの修正もできる。
写真など傾いた対象を修正する perspective
ffmpeg で使える frei0r フィルタの使い方
基本コマンド
既定値での設定。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 のデータが公開されている。
HERO5 Black の FOV (視野角) 情報より
垂直画角(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 |
- HERO7 の視野角 (FOV) 情報
- HERO10 Black:デジタルレンズ視野角 (FOV) 情報
- HERO12 Black:デジタルレンズ視野角 (FOV) 情報
- 視野角(FOV)情報 GoPro ゴープロ | 日本正規代理店 タジマモーターコーポレーション
公式ドキュメント: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の指定値