Zerene Stacker

Synthetic Stereo & 3-D Rocking


Stereo and rocking are powerful ways to show off the 3D structure of your subjects. With Zerene Stacker, they are now also easy! Instead of shooting a separate stack for each viewing angle, Zerene Stacker allows you to shoot a single stack and then use synthetic rotation to make multiple images that can become a stereo pair, a rocking animation, even rocking stereo.

In Zerene Stacker, this capability to do synthetic stereo and 3-D rocking from a single stack works well with a wide variety of subjects, including those with transparency, strong overlaps, bristles, and so on, that often cause problems for other packages.

Some Examples

These images were made from a single 82-frame stack of a green lacewing.

First, here is a side-by-side stereo display of the full frame (crossed-eye layout).


Second, here is a rocking version. (If it’s not rocking, please click on the image and wait for a 0.5 MB download. Also be sure that your browser is set to allow GIF animation).

Third, a rocking stereo (crossed-eye, and again, click if it’s not rocking).

Finally, a side-by-side stereo display of a smaller part of the frame (again, crossed-eye layout).


How Is This Done?

In the menus at Options > Preferences > Stereo/Rocking, you’ll see a control panel that looks like this:


When you check the box for “Generate stereo pair or rocking sequence”, you change the behavior of PMax and DMap stacking operations. Normally, each of those operations creates one output image by aligning and stacking the source files. But when the box is checked, PMax and DMap shift each image a little bit just before accumulating it into the stacked output. The shift is varied throughout the stack in such a way that the final image looks as if the stack had been shot from a different angle. Two or more of these images can be combined to make a stereo pair, a rocking animation, and so on.

When the panel is set as shown above, each execution of PMax or DMap will generate 9 output images, varying the maximum X shift in uniform increments from -4% to +4%. (You can type in any values you choose.)

Different stacks will need different shifts to make a good looking stereo pair. To help in finding a good shift, Zerene Stacker provides a simple stereo previewing facility. Just go to Tools > Stereo… > Start Preview. This will set up two side-by-side synchronized windows that act like Retouching except that there’s no brush and you can choose whatever output image you want in either window. Just click on the window, then click on an entry in the Output Images list. Repeat for the other window, and adjust your selections until the two images work well together.

Note that for some stacks the images may initially appear in the wrong order, so that depth is inverted. In that case, you can reverse the order of the images in preview with four mouse clicks: select left window, select the Output Image to appear in the left window, select right window, select Output Image to appear in the right window. If you consistently find that you need to reverse the order in preview, you can also change Preferences so that the images are created in the opposite order to start with. Simply go to Options > Preferences > Stereo/Rocking and swap the values for first and last image shifts. For example if -3,+3 produces images in reversed order, then swap them to be +3,-3.

Here is what the screen looked like when Stereo Previewing the sample shown above. The left window is showing image _002, as indicated by the highlighted title bar and highlighted image name. The right window happens to be showing image _006, although we can’t tell that from this screen capture.


These two images happen to make a good crossed-eye stereo pair.

When we Tools > Stereo… > Stop Preview, the screen is left with the previewed images selected:


At this point, we can Tools > Stereo… > Make Stereo Pair(s), to make a single output image containing the two views in a side-by-side layout as shown by the preview. This image can be saved as usual.

To generate a sequence of stereo pairs, simply select all the output images that will be involved and again Tools > Stereo… > Make Stereo Pairs(). Zerene Stacker will then step through the list of selected output images, using the offset that was most recently selected by Stereo Preview. In the current example the offset is 4 images, so if we select _000 through _008, then we get _000 paired with _004; _001 paired with _005; and so on through _004 paired with _008.

The built-in command Tools > Stereo… > Make Stereo Pair(s) creates a plain side-by-side pair, either crossed-eye or parallel viewing depending on how you selected the images.

To produce any other format, you must use some external program. The free software StereoPhoto Maker (http://stereo.jpn.org/eng/stphmkr/) allows cropping and can generate output in a wide variety of formats, including color anaglyphs for viewing with red/cyan or red/green glasses. Animated GIF images for rocking displays can be generated by programs such as Adobe’s ImageReady and the free GIMP software (http://www.gimp.org/). It can also be done with regular Adobe Photoshop, using Timeline animation as described at https://helpx.adobe.com/photoshop/how-to/make-animated-gif.html. Longer sequences can be generated as looping movies, by programs such as Apple’s QuickTime Player Pro (http://www.apple.com/quicktime/pro/, for Macintosh or Windows).

Tips For Best Results

The best shifts to use depend on your application and preferences. For our test stacks, values of +-2% or +-3% often work well.

In some cases, you may wish to use a one-sided shift such as 0% and 4%. This will generate one highest quality image (at 0%), paired with a somewhat degraded partner (at 4%). Stereo depth perception is generally very tolerant of fuzzy images, so this approach works well with most people. However, it is somewhat risky. In some people one eye is strongly dominant, and they won’t like the result if their strong eye happens to match up with the degraded image.

In most cases, Options > Preferences > Preprocessing > Image Pre-sizing can be used to reduce your processing time. It is rare to display a stereo pair at anything approaching full camera resolution. By pre-sizing your images to 50% or even smaller, you can reduce processing time to a small fraction of what it would be with full-size images, while making little or no change in the final result.

For repeated use with similar subjects, you can also save some time by generating only the images you really need, as opposed to a group of images to choose between. First, find a good pair of shifts using the approach described above. In the example, we made 9 images from -4% to +4%, so the shifts were -4%, -3%, -2%, …, +2%, +3%, +4%. We found that the best pair used images _002 and _006, corresponding to shifts of -2% and +2%. To do more stacks of a similar type, we would set Options > Preferences > Stereo/Rocking to make just 2 images with a “First image maximum shift” of -2% and a “Last image maximum shift” of +2%.

If you are on a Windows computer or have Windows emulation software, you should consider getting a copy of the free StereoPhoto Maker software (http://stereo.jpn.org/eng/stphmkr/). It provides an excellent viewer that allows displaying a single image in various display formats, including crossed-eye, parallel viewing, red-cyan anaglyphs, and many other less common forms. It also provides a variety of editing capabilities. Cropping is especially handy, since this feature is not yet built into Zerene Stacker.

Calculating Shift Based On Viewing Angle

You can calculate the shift percents if you know three things:

  • subjectStackWidth = frame width at the subject
  • subjectStackDepth = stack depth at the subject
  • viewAngle = viewing angle, measured as angular deviation from the usual straight-on view

Given these values, the calculation is straightforward:

  • maximumShiftInX = tan(viewAngle) * (subjectStackDepth/subjectStackWidth) * 100%

For example, if you want a viewing angle that is 4 degrees off-axis, with a stack whose frame width is 10 mm and stack depth is 5 mm, then you would calculate as follows:

  • subjectStackWidth = 10
  • subjectStackDepth = 5
  • viewAngle = 4 degrees
  • maximumShiftInX = tan(4 degrees) * (5/10) * 100% = 3.4963%

If you're doing the calculation in Excel, then remember to convert degrees to radians. The formula in Excel would be:

  • =TAN(RADIANS(4)) * (5/10) * 100

For generating stereo pairs, simply use viewAngle = (plus and minus) separationAngle / 2 .

Viewing angles that are off axis vertically use the same rules, substituting height for width and Y for X. Note that this means the same angle will require different shift percents for X and Y, in proportion to the frame dimensions.

Recent versions of Zerene Stacker include a Stereo Shift Calculator, which automates the above computations.

Here is an example of its use, corresponding to the numbers shown above:


Other Resources

Some additional discussion and more example images can be found at http://www.photomacrography.net/forum/viewtopic.php?t=7819 .

For a comparison of synthetic stereo versus true stereo, see https://www.photomacrography.net/forum/viewtopic.php?t=33923 .


Synthetic stereo and rocking works best with longer stacks (many frames) that were shot at large aperture so that each source image has only a shallow depth of field.

Output image quality degrades for larger shifts (both positive and negative), particularly at lower magnifications and smaller apertures where there is more depth of field in each source image.

Currently, the retouching tool does not know about shifts and thus does not work well with shifted output images. This will be addressed in a future update.

However, be aware that the current version works fine to retouch between two output files that have the same shift. This use, in conjunction with Stack > Stack Selected, provides a powerful method of dealing with the “transparent foreground” problem that often appears in shifted stacks. For more information, see the tutorial Using Stack Selected to Retouch Transparent Foreground.

stacker/docs/syntheticstereo.txt · Last modified: 2022/02/23 23:26 by rjlittlefield
Copyright 2009-2023, Zerene Systems LLC, all rights reserved.