FujiFilm W3 3D Stereo Movie Viewing With Cardboard

UPDATED with additions and corrections (2015/4/4, 2015/4/12 )

This post describes procedures I used to prepare a FujiFilm W3 camera 3D stereo movie for viewing with Google's Cardboard VR viewer on my Android Sony Xperia Z1S smart phone.

First download Stereo Movie Maker (SMM for Windows) from Muttyan's site:  http://stereo.jpn.org/eng/stvmkr/index.html
I use this program to convert and re-size a FujiFilm W3 AVI movie file to a side by side version for viewing with Cardboard.

Next I downloaded 32-bit ffdshow:  http://sourceforge.net/projects/ffdshow-tryout/  to provide Stereo Movie Maker with video codecs for reading and writing the movie file. If you do not, SMM gives an error about a missing MJPEG decoder. To configure I used information supplied by http://3dstereophoto.blogspot.com/2011/05/fujifilm-finepix-real-3d-w3.html  Make sure you run the VFW configuration program (View for Windows), not the video decoder configuration program, turning on libavdecoder for MJPEG.

Now open your video file using SMM:


Next you should align with the Adjust menu, Auto Alignment since the W3 cameras may be slightly misaligned. Also make any other adjustments you might want, such as under View, auto color adjustment, for example to fix the brightness.



Save your movie in side by side format. I chose to re-size for the Cardboard viewer for my phone's display screen 1920x1080. The SMM re-size parameters are 960x540 (each eye). If I had a phone with larger display, like Samsung Galaxy S6 with its 2560x1440 display, I would not need to re-size to X 1280 and Y 720 since this is nearly the resolution of W3 movies out of the camera (1196x720).

Unfortunately my codec does not have a license for HD 2560x1440 size. Initially I used 960x540 for the re-size. I found I could crop to 4x3 aspect ratio and avoid the resize to approximate 960x720 per eye. With this aspect ratio my video looked best in the Cardboard viewer.


A video compression window will appear. If you leave uncompressed the file size is large and video is low quality. I chose GoPro since I own a GoPro and have their software installed on my computer. The quality is very good if you choose to configure. I tried several video compression formats, but only had success with GoPro-CineForm  and Cinepac codecs. You can get a GoPro codec from here.





After saving the movie file, I transferred it to my Z1S via USB cable. A dialog box appears recommending conversion, do this. The transfer program converts the file to MP4 format that the Sony phone can show. With MAGIX Movie Edit Pro 2014 video editor I am also able to convert from AVI to MP4 so as to not rely on my phone transfer to do this.

On the phone I used the VLC for Android media player app for viewing the movie. https://play.google.com/store/apps/details?id=org.videolan.vlc
I also tried Cardboard Theater, but found VLC much easier to use.


Celebrating PI Day


And Einstein's birthday and any other irrational activities you can think of!

Photographer's Dilemma

http://www.nytimes.com/2015/02/22/style/shutterbug-parents-and-overexposed-lives.html
"A photograph may distort or even push out our actual memory of an event, studies suggest."

As a photographer I am sometimes concerned if I shoot pictures at an event that I will miss out in experiencing the event. The above excellent article made clear some problems with shooting events and at same time trying to experience an event. Doing both observer and participant roles together are not always possible, I can't multitask.

3D Photo Viewing With Cardboard


Updated 2015/4/12, Major revision

Got Google's Cardboard, it's an inexpensive VR (virtual reality) viewer for smartphone displays. Bought mine from "Unofficial Cardboard" with the idea of seeing how my 3D stereoscopic photos look on my phone with the Cardboard viewer compared  to my 3D tablet (Inferno/Gadmei INF2890)

None of the Android stereo viewing or VR apps I tried worked as I would like with my photos. The cardboard lenses limit the viewing area on the phone since the headset is meant to move around to change the display with VR apps. I don't want to have to move my head around with the viewer just to see a stereo 3D slideshow. Of course for panoramic photos that is a great feature, but my photos are not panoramas.  With many photo apps, it was cumbersome to get my photos to be the right size for viewing in Cardboard. So instead I used an easy method to view my 3D photos in Cardboard without VR apps.

For my Sony Xperia Z1S phone (1920 W x 1080 H screen)  I used StereoPhotoMaker to resize side_by_side stereo photos to 1920x540 pixels (with black borders if necessary to match the display width of 1920 specifically for the Z1S). Each eye view has an aspect ratio of 16x9. In the Cardboard viewer I look at photos in full screen mode with an app like Full Screen Pic. Full screen viewing mode is a requirement. The result looked good with Cardboard, and actually much better than my 3D tablet. However I can see the pixels of the photos due to lens magnification. 

With more experimentation I improved the viewing experience using side_by_side photos resize to 1920x720 pixels. Each eye view has an aspect ratio of 4x3. This turned out to be a better viewing experience with cardboard. The cardboard lenses prevent seeing the entire photo (on the edges), but with more pixels the images look better. Finally after yet more experimentation, I cropped the photo to 8x9 aspect ratio to get the best results. On the 1920x1080 phone this produced full screen images. Looks great if you can use this aspect ratio for your photo. Finally I used different lenses that do not limit my field of view in a homemade cardboard viewer. I may discuss this topic in another post. 

Placing the main subject in the center of the photo helped too. This may detract from the art of composing photo subjects as would be done in 2D photos (such as with rule of Thirds).

I also experienced some eyestrain discomfort, but this may be due to how near my eyes are to the lenses in the cardboard frame, because when I back away the image is sharper.

Full Screen Pic has a slideshow mode that works well because it does not use or can turn off annoying transitions or zooms and it works in full screen.

Photographer's LED Light Stick Version 2


 Light Painted Flag (20 seconds)


Changing Colors Pattern (20 seconds)


Light Painted Mask (20 seconds)

Recently I finished building my second version of a photographer's LED light stick shown below. A couple years ago I built my first LED light stick to experiment with light painting photographic art. See what I did then at:
http://andymodlaphotography.blogspot.com/2012/05/photographers-led-light-stick.html
http://andymodlaphotography.blogspot.com/2012/09/light-painting-photo-shoot.html
http://andymodlaphotography.blogspot.com/2014/03/the-scream-two.html
Now I wanted a better tool.

The second version is longer than the first stick at 64 inches vs. 48 inches, and has more LEDs: 230 vs. 64. Unlike the first version, it uses a 1 MByte SPI Flash memory chip to store images instead of a Flash memory card. The computer board, an Adafruit Flora (Arduino based), sends image data to Adafruit Neopixel Digital RGB LED strips (144 LEDs per meter). The Flora SPI bus reads images from an external Flash memory chip that was previously programmed over Flora's USB port from a PC.




The LED strip is mounted in a 3/4 inch aluminum channel. A diffusion sheet covers the strip.


The handle is a re-purposed car wash sponge holder. The USB cable is not connected for normal use.


I used Java like Processing language and library code to process for gamma correction/orientation and download images to the Flora for storage or display. Five images fit in the 1 MB Flash memory. One future project is to use an Android phone or tablet to paint images real-time over the USB port. The Flora code can display an image directly from the USB port instead of Flash memory.


This is top view of the control box with power switch, center knob switch for selecting images or patterns to display, and start/stop switch. Power to the LEDs come out the sides of the box and the top plug is the control line to the Neopixel strip.


At the top a Cactus V5 wireless transceiver trigger starts the LED image paint from Flora and closes the shutter on my tripod mounted camera, before I begin to move the stick for painting. 


Internal view of  case with Flora in center and batteries left and right.


Work in progress Flash memory board soldered to Flora 


The 1 MByte Flash Memory chip board

I found the Neopixel LEDs to be very bright. In the future I'll use a 3 stop neutral density filter on my camera lens to cut down on the light. This will allow me to go from an overexposed F22 to F11. I like the filter approach because then I don't have to reduce the number of image colors to lower the brightness and can use a image as edited in Photoshop without changing image brightness just for use in the light stick.


Android and Processing - 3D Photo Display

I'm learning to write Android apps using both Eclipse and Android Studio. As a fan of the Processing language and platform, I recently found out I can generate an Android app written in Processing too. Processing is a programming environment based on Java for artists and designers. The Processing IDE (Integrated Development Environment) has an alternate output mode for generating Android apps in addition to generating Java applets and applications. There are a number of Android limitations when using Processing, but I think it is pretty cool to be able to write a program in Processing and run it on my Android phone and tablets.

More about installing Processing and writing code for Android can be found at
http://blog.blprnt.com/blog/blprnt/processing-android-mobile-app-development-made-very-easy
and
https://github.com/processing/processing-android/wiki

I wrote a simple test program in Processing to display a photo on my Android phones and tablets.

/*
Simple photo display test for Android device
Written by Andy Modla
*/
String filename;
PImage photo;
void setup() {
    // DO NOT call size() for Android devices!!
    //filename= "walksequence_1920x1080.jpg";
    filename ="hwS14037C.JPG";
    println("displayWidth="+displayWidth + " displayHeight="+displayHeight);
    getImage();
}
void getImage() {
    photo = loadImage(filename);
    if (photo.width > photo.height)
        orientation(LANDSCAPE);
    else
        orientation(PORTRAIT);
    image(photo, 0, 0, displayWidth, displayHeight);
    println( "Image width="+photo.width + " height="+photo.height);
}
void draw() {
}
To install this app on my Android devices, I  first had to reconfigure the tablet or phone in developer mode. This was done by pressing the Settings->About Tablet->Android version label 7 times to see the Settings->Developer Options screen. Then I set USB debugging mode. See http://developer.android.com/tools/device.html for details.

Prior to installing an app from my Windows 7 PC I also had to have USB device drivers installed. By installing PDANet for Android software, hard to find drivers were installed for all my Android tablet devices. For Sony, I used the Sony phone support site USB driver.

Processing makes it very easy to compile, install, and run a Processing sketch as an Android app on the device. Just press "Run on Device" with the tablet connected to the computer via USB cable.

With the above test program running on my Inferno 3D tablet, could I display a 3D photo too?

Since I do not yet know what code to use to set 3D display mode on the tablet using Processing or Java, I did it in a round about way. My solution was to first install the Gadmei 3D Activator app to allow me to toggle/change hardware mode in the tablet to 3D mode. Next the 3D photo used in the test was reworked in Stereo Photo Maker to

1) Resize to 1280x752  with Keep aspect ratio with border option set. The display size is actually 1280x800, but the system menu stays on the screen, so the photo size was adjusted instead of removing the system menu.

2) change it to "Column Interlaced". This is done by the SPM (Stereo Photo Maker) menu Stereo->Interlaced->Column Interlaced and then save as JPG stereo image. When the above app-sketch runs, it displays the photo in 3D after toggling 3D mode on.


The Processing sketch above could be enhanced to resize and interlace the photo before displaying it, but that is for another time. In mean time I'll just use 3DSteroid app.

Glasses Free 3D Tablet


It's not easy to show people my 3D photos with my 21 inch 3D monitor. I have to carry the monitor and computer to an event and setup everything and then provide glasses. To make it simpler, I recently bought a glasses-free Inferno 3D tablet (model 2890). This Android 4.1 tablet has an 8 inch diagonal display (1280x800 pixels) and is similar to Gadmei E8-3D tablets.

Overall I'm pleased with the tablet displaying 3D, it is bright and does a decent job. However looking at the display ghosting will appear in 3D images unless the tablet is held just right, at the sweet spot for viewing. This hand held adjustment is very small and prevents others from viewing 3D photos at the same time -its a one person at a time experience. That is the main drawback to this tablet for 3D viewing. I have similar issues with my large 3D monitor, but the viewing angle is much less critical and the large screen makes up for having to use glasses.

To improve the sharpness and quality of displayed 3D images I had to change the default settings in the tablet. I got a sharper image from the display by turning off Settings->Display->Dynamic Backlight. I also set the brightness slider in Settings->Display->Brightness to about two thirds max.

Amazon reviewers described a better experience with 3D photos after installing the 3DSteroid Android app. The author, Masuji SUTO (Muttyan), also wrote the Stereo Photo Maker for Windows which I use to post-process my photos into 3D images. Many thanks to Masuji SUTO for his excellent and generous work to the stereoscopic community.

I bought the 3DSteroid pro version and found it worked very well with different 3D formats, such as MPO and side_by_side JPG 3D photo files. Plus the pro edition lets you create and adjust 3D photos. Some documentation is at http://stereo.jpn.org/eng/android/help/3dsteroid.htm

I also installed the Stereoscope app by Stereoscopie.fr to more easily set up and use slide shows. I recommend this app too.