Create VR Photos for Google Cardboard Camera App

UPDATED 2015/12/28 
Correction 2016/05/01

Google's Cardboard Camera app can shoot and view VR/3D panoramic photos with your Android phone. After using it a while my opinion is that the app is amazing, but unfortunately the image quality is not as good as a 3D camera and sometimes the photos gives me eyestrain. The app has a viewer mode for the 3D panoramic photos you shoot with the app, but does not provide any way for me to see 3D photos I have already created in other formats.

Thanks to the work of Andrew Perry, he wrote a web app Cardboard Camera Toolkit that will Split a VR photo from the Cardboard Camera app into left and right images and a mode to Join left and right images to create a Cardboard Camera VR image. You might want to do these operations so you can edit your photo and then replace your original VR photo with your new version. This can also be used to help you replace or edit the sound portion of the VR photo.

I have stereo photos that I would like to view in the Cardboard Camera app and with Andrew Perry's Cardboard Camera Toolkit Join procedure I can do this. 

When I connect my phone to my PC USB port, the VR/3D photos I shot are found at:

PC\Galaxy S6\Phone\DCIM\CardboardCamera

This is where I will store my finished VR photos.

I took a stereo photo with a FujiFilm W3 3D camera to get a MPO file format 3D photo. Using the Stereo Photo Maker toolkit, I split the W3 MPO 3D photo into left and right images, aligned the original left and right images, and saved the aligned left and right pair as JPGs appending_left and _right to the filenames. 

The image sizes for the photo pair are identical but smaller than the original left/right pair due to alignment. The original image size was 3584 width x 2016 height. Here are my example aligned photos, 3427 width x 2002 height.

Left

Right

Because the Cardboard Camera app expects panoramic images, I have to set the XMP parameters in the image file. See Google's photo sphere XMP metadata description. Since my 3D photos are not panoramic I made adjustments to the XMP parameters as follows:

The FujiFilm W3 camera shoots with a 62 degree field of view since it has a 35 mm equivalent lens. See the BH Photo Video Angle of view chart. The photos above were cropped so that the FOV changed to 59 degrees for this photo.

(3427 / 3584) x 62 = 59

Using the photo width 3427 pixels, the 360 degree full pano width is calculated as

(3427 x 360) / 59 = 20810

Using the photo height 2002 pixels, the 180 degree full pano height is calculated as

(2002 x 180) / 59 = 6108

I calculated the CroppedAreaTopPixels as half the difference between the pano height and cropped image height.

(6108 - 2002) / 2 = 2053

I copied the left and right images into the Join procedure toolkit box and set the XMP properties using the advanced drop down menu.

GPano:CroppedAreaLeftPixels   0
GPano:CroppedAreaTopPixels   2053
GPano:CroppedAreaImageWidthPixels   3427
GPano:CroppedAreaImageHeightPixels   2002
GPano:FullPanoWidthPixels   20810
GPano:FullPanoHeightPixels   6108
GPano:InitialViewHeadingDegrees   90

Click on the Join button and download the output photo from the Join procedure:


6BXrkroSFHx.vr.jpg


I copied this to the DCIM/CardboardCamera folder on my phone and it shows up in the Cardboard Camera app when started.

Thanks Andrew Perry!

My photo was taken at the Bonnet House, Museum and Gardens in Ft. Lauderdale, Florida last September.

Here are parameters for the same photo to show it zoomed. The parameters were determined by experimentation:


GPano:CroppedAreaLeftPixels   0
GPano:CroppedAreaTopPixels   1001
GPano:CroppedAreaImageWidthPixels   3427
GPano:CroppedAreaImageHeightPixels   2002
GPano:FullPanoWidthPixels   6854
GPano:FullPanoHeightPixels   4004
GPano:InitialViewHeadingDegrees   62

CrChAx9RBs8.vr.jpg