mail4 google-plus3 facebook3 twitter3 vimeo3 github menu list next prev

[oF] THETA Sのライブビューをリアルタイムにパノラマ画像に変換

2015-11-24

theta1
先日、THETA Sを購入したので、openFrameworksでライブビューの動画を取得してみました。

ライブビュー自体はTHETA SをUSBケーブルで接続して、ofVideoGrabberで取得できるのですが、未加工の状態では、二つの魚眼画像が並んでるもの(Dual Fish-eye)が表示されます。
theta2
このままでは使い勝手がよくないので、正距円筒図法(Equirectangular)でパノラマ画像に変換するシェーダーを探していたところ、Nora氏(@Stereoarts)の作成したシェーダーを見つけました。
http://stereoarts.jp/
元々はUnity向けにHLSLで書かれていたのですが、oF用にGLSLで書き直して使わせていただきました。
oFのソースコードは以下に置いておきます。(シェーダーは#version 400で書いています。必要であれば適宜修正してご使用ください。)
https://github.com/yasuhirohoshino/thetaRealtimeEquirectangular

thetagif
パノラマに変換したものをFBOに書き出して、球面に貼り付けてみました。

現状、表裏のカメラから取得した画像の切れ目が少し見えてしまうのですが、もっと境界をなじませた画像を作りたければ、ブレンディング処理などを入れる必要がありそうです。
これについては、今後もし業務などで必要になったら試してみようかと思っています。

ちなみにライブビューをUSBから取得した場合、入力される動画は1280x720pxの15fpsになってしまいます。
HDMIであれば1920x1080px/30fpsで取得できるので、より高画質な画像が欲しければ、Blackmagic DesignのUltraStudio Mini Recorderなどでキャプチャーすることも可能です。

*2015年11月24日現在、ofxBlackMagicを使用したところ、アプリを実行すると延々とログを吐きまくって一向に起動しないバグがありました。。。
ofxBlackMagic.cppのgetColorPixels()内のコメントアウトを外すと動きます。githubでIssue出しておきました。

Pocket

Category : openFrameworks, THETA

3 / 6