2枚の画像を左右にならべて裸眼立体視 (Photoshop CS〜CS4編)

富士フイルムから裸眼で立体視できる画像/映像が撮影できるカメラFinePix REAL 3D W1が発売されました。ということで、早速購入し撮影してきました。このカメラに関しては富士フイルムのページを参照してください。

●FinePix REAL 3D W1のページ
http://fujifilm.jp/personal/3d/camera/finepixreal3dw1/index.html

左右にある2つのレンズで撮影することで左目用と右目用の画像が撮影されます。実際には左目用と右目用の画像をまとめたファイルとJPEG画像の合計2枚の画像が生成されます。(左目用と右目用のJPEG画像を作成するにはカメラの付属ソフトで行います)
レンズの位置が異なるので人間の目と同じように左目と右目で異なる画像が撮影されます。近くにあるものは大きくずれ、遠くにあるものほどずれが少なくなります。あとは、撮影された2枚の画像を頑張って裸眼で平行法/交差法を使って見るか、立体に見える印刷物にするか、専用のフォトフレームを使って見ることになります。

●フォトフレーム:FinePix REAL 3D V1のページ
http://fujifilm.jp/personal/3d/viewer/finepixreal3dv1/index.html

●裸眼立体視:平行法、交差法
http://ja.wikipedia.org/wiki/ステレオグラム

カメラに関しては誰か詳しい人が解説すると思うので、ここでは手抜きプロジェクトということで、カメラで撮影した左目と右目の画像をPhotoshopで横に2つ並べるスクリプトを作成してみました。
カメラに付属している専用のソフトで撮影した画像(MPO形式)を左目と右目用に分けると以下のような名前のファイルができあがります。

2009_08150001_l.JPG
2009_08150001_r.JPG

年月日と撮影番号の後に_lと_rがついています。_lが左目用、_rが右目用になっています。これらの左目用と右目用のファイルをまとめてフォルダに入れておきます。

●フォルダ内
2009_08150001_l.JPG
2009_08150001_r.JPG

以下のように3種類の画像をまとめて入れておくこともできます。この場合では3種類、それぞれの立体視画像が生成されます。

●フォルダ内
2009_08150001_l.JPG
2009_08150001_r.JPG
2009_08150003_l.JPG
2009_08150003_r.JPG
2009_08150005_l.JPG
2009_08150005_r.JPG

あとは以下のスクリプトを実行します。

 

(function(){
preferences.rulerUnits = Units.PIXELS;
var folderName = Folder.selectDialog("フォルダを選択してください");
if (!folderName) return;
var fileList = folderName.getFiles("*.JPG");
for(var i=0; i<fileList.length; i+=2){
open(fileList[i]);
activeDocument.resizeImage(320, 240);
activeDocument.resizeCanvas(640,240,AnchorPosition.TOPLEFT);
open(fileList[i+1]);
activeDocument.resizeImage(320, 240);
activeDocument.selection.selectAll();
activeDocument.selection.copy();
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
activeDocument.paste();
activeDocument.activeLayer.translate(160,0);
var fname = fileList[i].name.split(".")[0];
fname = fname.substring(0, fname.length -2);
var newFilename = fileList[i].path + "/" + fname+"_LR.jpg";

var jpegOpt = new JPEGSaveOptions();
jpegOpt.embedColorProfile = true;
jpegOpt.quality = 8;
jpegOpt.formatOptions = FormatOptions.PROGRESSIVE;
jpegOpt.scans = 3;
jpegOpt.matte = MatteType.NONE;
activeDocument.saveAs(new File(newFilename), jpegOpt, true, Extension.LOWERCASE);
activeDocument.close(SaveOptions.DONOTSAVECHANGES);

}
})();


左目用と右目用のファイルがあるフォルダには以下のような_LRが付いた名前のファイルが作成されます。

2009_08150005_LR.jpg

作成された画像は以下のようになります。

●あじさい
http://footage2.openspc2.org/sozai/3D/flower/ajisai/0001/sample.jpg

画像のサイズは320×240ピクセルになっています。あまり大きくすると裸眼立体視しにくいというのもあります。中央には白線か何かあった方がいいかもしれません(画像の上の方に赤丸などを入れるという方法もあります)。サイズを変えたい場合は

activeDocument.resizeImage(320, 240);
activeDocument.resizeCanvas(640,240,AnchorPosition.TOPLEFT);

の320、240,640の数値を変更してください。また、2枚目の画像の位置は以下の行の160を変更してください。

activeDocument.activeLayer.translate(160,0);

このスクリプトを使って作成した立体視画像は以下のサイトに用意してあります。

●裸眼立体視
http://footage2.openspc2.org/sozai/3D/

造形物を立体的に見せたい場合にはいいかもしれません。映像は画質があまりよくないのですが、まあ許せる範囲でしょう。許せるというより画質云々以前に目が疲れてアウトといった感じがあります。特にカメラを動かすと感覚的に妙というか辛い感じがします。

[サンプルをダウンロード]