17

lenscorrectionフィルターのおかげで、ffmpeg を使用して魚眼の歪みを補正できるようです。

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-.25:k2=-.25" out.mp4

特にgoproの場合、k1との値は何ですか? k2それらを計算する方法はありますか?

4

6 に答える 6

19

すべての GoPro モデルとレンズをカバーする一般的な設定はないと思います。人々がカスタマイズされた/交換用レンズを使用できることも考慮してください.

私はあなたが働かなければならないものをフィーチャーしたサンプル画像を望んでいましたが、気にしないでください...
以下が何らかの形であなたに役立つことを願っています

このリンクを確認してくださいGoPro Hero 3 settings(他のモデルに適用されます)。k1最適な値と値の大まかなアイデアを得るには、画像の解像度に最も近い縦横比k2を見つける必要があります...

を で割り、結果H. FOV degV. FOV degで掛けDiag. FOV degます。

例:画像サイズが 1920 x 1080 の場合: 16:9 のワイドスクリーンになります。

GoPro 3 設定: 16 x 9 ワイドスクリーン :: H fov= 69.5 || V fov= 118.2 || Diag= 133.6

そう118.2 / 69.5 * 133.6 = 227.216 etc

k1結果は整数になり ました227(小数点を削除します)。

k2値は普遍的なようです0.022(すべてのテスト画像)ので、試すことができますk2=-.022.

のためcxに、cyそれらを : として保持しますcx=0.5:cy=0.5:

例:

ffmpeg -i in.mp4 -vf "lenscorrection=cx=0.5:cy=0.5:k1=-0.227:k2=-0.022" out.mp4

結果 : (元の画像は GoPro Hero-2 ビデオのGoogle 画像を介して見つかりました)。

于 2016-11-17T15:59:54.693 に答える
4

FFmpeg には、lenscorrectionビデオの放射状の歪みを修正するために使用できるフィルターがあります。とはいえ、カメラのモデルや設定などのコンテキストがなければ、これ以上の情報を提供することは困難です。とにかく試行錯誤が必要だと思います。

PS: カメラのソフトウェアをWINEで実行してみましたか? 一部のバージョンでは、この種の修正フィルターが事前定義されており、簡単にアクセスできるようです。

于 2015-06-14T17:39:31.227 に答える
3

ffmpeg を使用して歪みを補正するためのさまざまな方法についての投稿を書きました -lensfunまたはv360フィルターは lenscorrection フィルターよりも優れたオプションだと思います。

とは言っても、理論的には、OpenCV- calibrationCamera関数を使用して k1 と k2 の値を計算できるはずです。フラグCALIB_FIX_PRINCIPAL_POINT(lenscorrection が想定するように画像の中心に主点を固定するための座標とともに)、CALIB_FIX_K3(lenscorrection は を使用しないためk3)、およびCALIB_FIX_S1_S2_S3_S4(lenscorrection は接線方向の歪みを考慮しないため) を使用することをお勧めします。これを行うために簡単に変更できるサンプル コードがあります。

しかし、試してみると、OpenCV で焦点距離を修正する方法が見つからなかったため行き詰まりましたが、レンズ補正では焦点距離が画像の対角線の半分にハードコードされています。

于 2020-03-25T09:28:50.270 に答える
3

ffmpeg の を使用して魚眼レンズを修正できますlenscorrectionが、結果はエッジで見栄えが悪くなります。

エッジの見え方のイメージ

于 2019-09-17T19:07:17.290 に答える