MacでCubemapをEquirectangularにTerminalのコマンドで変換する


MacでCubemapをEquirectangularに変換する方法がやや検索しずらいということで手順を示しておきます

環境

  • perl: v5.18.2
  • MacBook Pro (Retina, 15-inch, Mid 2015) macOS Sierra 10.12.6

Equirectangularとは

以下のような画像(こちらから取得しました)でパノラマ画像として使われます。Thetaなどで撮影された画像はこのようになります。

Cubemapとは

正方形の画像が6枚で一組となった以下のようなものです。Equirectangularに相互変換可能です。

CubemapからEquirectangularに変換するには

cubic2erectのperlモジュールで変換するのですが、他にもインストールしなければいけないものがあるので手順だけ示します。

Hugin(Panorama photo stitcher)のインストール

Huginにはいっているnonaというツールにcubic2ererctが依存しているので、こちらからダウンロードし、.dmgを開きインストールします。

その後、以下のようにPATHを通して、/Applications/Hugin/HuginStitchProject.app/Contents/MacOS以下のファイルを使用できるようにします。

export PATH="$PATH:/Applications/Hugin/HuginStitchProject.app/Contents/MacOS"

perl 5.18.Xのインストール

後ほど、cubic2erectをソースからコンパイルするのですが、その際にperl 5.18.Xを使ったのでそのバージョンをhomebrewでインストールします。最新だとコンパイルエラー(正確にはmake testでこけた)になったので5.18を使っています。

brew install [email protected]

最初にcpanの設定をします。各種きかれますので全部enterボタンをおしていればいいです

cpan

次に以下のように必要なモジュールをインストールしておきます。

sudo cpan install Image::ExifTool
sudo cpan install Image/Size.pm

cubic2erectのインストール

ソースからコンパイルします。こちらのサイトのDownloadからパッケージを任意の位置にダウンロードします。

解凍してからREADMEをみてコンパイルします

perl Makefile.PL
make
make test
sudo make install

cubic2erectの実行

やっと実行できるようになったので、以下のように変換します。front, right, back, left, up, downはそれぞれcubemapの画像です。output.tifが出力ファイルです。

cubic2erect front.jpg right.jpg back.jpg left.jpg up.jpg down.jpg output.tif 

tif画像だと面倒なのでjpgに変換しておきます。

convert output.tif output.jpg

おまけ

ソースを覗いてみます。

  • cubic2erect: nonaをwrapしているだけ
  • nona: 画像の座標などを変換するもの。ndevenish/Huginに説明がある

参考