messyなkitchenなブログ

ただひたすらに散らかった台所や人生やその他を晒す。

MENU

魚眼レンズ画像・動画を正距円筒図法に変換したい

タイトルのとおり。

Kodak PIXPRO SP360 っていうカメラ

半天球の画像や動画を録画できます。 そして PCの純正ツールを使うと VRで使用されるような 正距円筒図法 の画像・動画に変換できます。

しかしながら、マウスでポチポチやったり 1個1個操作したりで、あんまり使い勝手がよいとは言えません。

てことで、ネットで調べてみたら、ffmpeg で変換できそうだったのでやってみました。

実行

Windows 10 で、てきとうに拾ってきた ffmpeg を用いています。

コマンド

DOS窓 を開き、次のように入力してエンター。

> ffmpeg -i input.mp4 -y ^
  -vf rotate=-90*PI/180,^
  v360=fisheye:e:pitch=-90:interp=linear,^
  crop=2144:536:0:0,pad=2144:1072:0:0 ^
  -c:a copy output.mp4

パラメータのざっくり説明

  • -vf : フィルタ使うよ。
  • rotate : 入力画像を回転させます。ラジアン指定。
    • 正距円筒図法にしたとき、画像を左右に移動させることに相当します。純正ツールの出力と同じになるように調整。
  • v360 : 360°画像のフィルタ。
    • fisheye : 魚眼。単眼。
    • e : 正距円筒図法 で出力するように指定します。
    • pitch : ピッチ。度。純正ツールの出力と同じになるように調整。
    • interp : 画素の補完方法を指定します。
  • crop : 使用する画素の範囲を切り出します。
    • 今回は 2144 x 1072 の画素数。下半分(=レンズ周辺部分)は捨てるので、高さを 1072 の半分の 536 を使う。
  • pad : 範囲外を塗りつぶし。
    • crop で切り出した範囲外で 2044 x 1072 のなかを塗りつぶし。

まとめ

  • 動画ファイルを変換したところ、期待する見え方に変換できていました。
  • 変換前と後の動画ファイルを比較してみると、ファイルサイズが思いっきり(1/10くらい)小さくなっていました。 もともと圧縮がゆるいのか、それとも ffmpeg で必要以上に圧縮されてしまったのか。 もうちょっと調べる。
  • 画素の補完方法について、最適なものを調べてみる。
  • サンプル画像を記事にのっける。文字だけだとわかりづらいし。
  • AviUtl のフィルタも存在するらしい。試してみる。 ドーム射影変換フィルタ for AviUtl

参考