はじめに
こんにちは!
メロンパン大好きリコーの@meronpanです。
主にTHETAプラグインに関連する記事を書いてます。
THETAプラグインをご存じない方はこちらをご覧ください。
もし、興味を持たれた方はTwitterのフォローと
[THETAプラグイン開発コミュニティ(Slack)]
(https://join.slack.com/t/thetadeveloper/shared_invite/enQtNzcxODI2MTk2ODg0LWY5YmU2ZTIxNGYwNzlmNWZjMWMyMWFlMzY3ZmQ3NGU3ZjZiZjI0Njk4MGIxMDU5NDJiMzQ4Y2FkNDEzYmFlNGU)への参加もよろしくおねがいします。
前回記事ではTHETA内でインスタ映え画像を表示するTHETAプラグインについて書きました。
今回はその続きと思いきや、気まぐれのメロンパン
THETAの画像(Equirectangular形式の画像)を扱う場合の作法についてやんわりと説明して行きたいと思います。
いやー、メロンパンのやること想像つかない。
というわけで早速内容に入ります。
目次
- THETAで撮影した画像形式(Equirectangular)
- Equirectangularの扱い方を学ぼう
- 球体モデルを作成しよう
- メロンパンの戯れ
- メロンパンの呟き
THETAで撮影した画像形式(Equirectangular)
「Equirectangular」は日本語で正距円筒図法といいます。
「正距円筒図法(Equirectangular)」は地図投影法の一種であり、緯線・経線が直角でなおかつ等間隔に交差するように描かれている図法です。
この図法で描かれた世界地図を見たことがある人も多いと思います。
メロンパンがたった1人でみなとみらいに行った時の画像を使って説明します。
THETAでとった360°画像は以下のようになってます。
こちらが「正距円筒図法(Equirectangular)」です。
Equirectangularの扱い方を学ぼう
世界地図が地球儀に置き換えられるように、Equirectangularは球体モデルに変換することが出来ます。
全天球画像で画像処理を行うときは、Equirectangularから球体に形式を変換してから処理することが非常に多いです。
下図にあるように、Equirectangular上の点Peを単位球上の点Psに変換する場合を考えたいと思います。
λは経度、φは緯度を表します。
Equirectangular ↔ 単位球の相互変換式は以下の図のように、点と軸と平行な線で構成された立方体から考えます。
(分かりやすくするために、単位球上の点周りを拡大して補助線を引きました。)
変換式は、下図の右側のようになります。
球体モデルを作成しよう
やり方としてはグラフィック処理で、球体の型を作成し、そこにEquirectangularの画像を貼り付けることを行います。
実際には、「Equirectangularの扱い方を学ぼう」で説明した計算式を使ってEquirectangular形式の画像を球面に置き換える処理を行っています。
作成した球体の型は以下の写真です。
型は頂点の集合体となっており、わかりやすいように頂点間を繋いで格子状に表示してみました。
同様にEquirectangularも格子状に分割し、球体の型に貼り付けていくイメージです。
型に貼り付けるとー
じゃじゃーん!!
球体のモデルができましたー
メロンパンの戯れ
ここでは数式を変えるだけで球体以外にも画像を貼り付けられることを紹介したいと思います。
以下を参考にボンヌ図法で表示させてみました。
リンク先よりボンヌ図法の数式を参考に「球体モデルをみてみよう」で説明したようにボンヌ図法の型を作成するとー
さらに、撮影した画像をボンヌ図法で作成した型に貼り付けていくとー
できましたー
メロンパンの呟き
openGLを使ったTHETAで撮影した画像の扱い方を紹介しました。
数式を使ってモデルを表すことができればもっと色々なことができると思います。
メロンパンはあまり数学得意ではないので、脳みそフル回転させました。
みなさんもメロンパンフル回転させて、ぜひ色々な表現方法を試してみてください。
これであなたもTHETAプラグインにメロメロン