一時期流行った3Dカメラです 以前に書いた記事の復刻に近い

このカメラでステレオ静止画と動画が撮れますけど、まずは静止画からですね。カメラ本体で立体視できるようになっていますが、なんとかPCやあわよくばココ(blog)で見てもらいたいので、大昔にMFCのダイアログベースのプログラムを書きました。MFCの習作として書いたのですが、一応紹介しておきます。動作画面は、

ここで左上の“MPOを開く”ボタンをクリック。

ファイルを開くダイアログが下図のように出ますから、どれかの*.MPOをクリック。

シングルクリックでファイルを選択するとpreviewが出ます。進めるならば、”開く”をクリック。

このままで慣れれば裸眼立体視はできるはずです。上図は交差法の表示なので、平行法にしたければ”方式”のラジオボタンをクリック。このままで平行法にすると、

スマホから画面をご覧になっている場合は、スマホを回転させて”横長”にして見ると見やすいです。PCで拡大縮小してしまうと、二つの画像の間隔(つまり中心と中心の距離)が両眼の間隔を超えると、そもそも平行法での立体視は不可能なので、その場合は交差法で見てください。)拡張子MPOなファイルの構造は、JPEG画像を2枚(fujiのカメラが出すmpoファイルの場合)連結したものなので、”つなぎ目”を捕まえれば、その前後で2枚のjpegに分解できます。上記mposhowのソースでは、
if (mpoFile.is_open()) {
// read the image data into a buffer
mpoFile.rdbuf()->pubsetbuf(internal_buf, M);
fileSize = (int)mpoFile.tellg();
stereoData = new char[fileSize];
mpoFile.seekg(0, ios::beg);
mpoFile.read(stereoData, fileSize);
mpoFile.close();
// start of the next image
char startOfImage[8] = { 'F', 'F', 'D', '8', 'F', 'F', 'E', '1' };
int imageBreak;
// find the break point between the image pairs
for (int i = 0; i < fileSize; i += 4) {
この辺ですかね。mposhowはmpoファイルしか扱えないので、preview付きのC++ Builder CEで作ったプログラムを後で作りました。そちらと、動画をどうするかは続編の記事で書くかもしれません。
一応バイナリをダウンロードできるようにしておきます。前もしたような記憶があります。一点注意すべきは、このプログラムmposhowは未完で、jpsファイルのpreviewまではできますけど、肝心の表示部分は動きません。それはC++ Builder CE版で。ダウンロードは、以下で、
“mposhow binary” をダウンロード mposhow-bin.zip 10.72 MB交差法を使いすぎると、近年問題になっている”スマホ斜視”の症状が出るかもしれませんので、なるべく平行法で見てください。筆者は反射的に交差法(より目)になってしまうので、あらためて平行法の練習が必要です。平行法は基本的にリラックスするのが吉です。あ、vectorへのアップじゃないので、説明書は付いていません。この記事を参考にしてください。ダイアログの“JPEGセーブ”にチェックを入れてMPOを開くと、左右に分離した二つのJPEG画像が書き出されます。(補足)
mposhowのバイナリだけでは見るべきファイルがないので、おまけで大昔に日光で撮った画像を付けておきます。


コメント