Brian R. Zaugg and Dr. Robert P. Burton, Computer Science
Although single-image stereograms were invented in 1979, they were virtually unknown until the 1990’s. The last eight years have seen an explosion in stereogram popularity. Stereograms have become the subject of books, posters, calendars, screen savers, and more. Stereograms are images which have 3D information hidden within them. At first glance, most stereograms looks like nothing more than a jumble of colors and repeated patterns. When properly viewed, however, a stunning 3D image becomes visible. Proper viewing is the trick. Unfortunately, many people have difficulty seeing the 3D images hidden within the stereograms. The aim of this project was to develop ways to assist these stereogramically challenged individuals.
A stereogram image is created by taking a thin vertical strip of image and repeating it horizontally across the the width of the stereogram. The vertical strip is not repeated exactly, however. Modifications are made on each repeat of the image based on a depth map which defines the 3D image being encoded in the stereogram. The strip is altered so that if the eyes of the viewer are focused at the correct distance behind the image, the left eye will see one vertical strip, and the right eye will see the strip adjacent to it. If the eyes are focused correctly, both eyes will see nearly the same image. The images seen by the two eyes will be slightly different, just as the images seen by the two eyes are slightly different when viewing a 3D scene. Thus when the viewer’s eyes are focused the correct distance behind the stereogram, the hidden 3D image will become visible.
Stereograms are difficult to see for several reasons. For one thing, since the eyes must be focused behind the stereogram, they can’t be focused on the stereogram. This may seem obvious, but it isn’t easy to look at an image and focus behind it instead of on it. It order to do so, the eyes must be slightly diverged, causing the stereogram to go out of focus. It is also difficult to know how far behind the stereogram to focus, and the correct distance varies from one stereogram to the next. Another difficulty is that it takes some time for the brain to decode the 3D image hidden in the stereogram, even if the eyes are correctly focused. It is hard for the viewer to know if his eyes are correctly focused and about to see 3D, or if he is just staring at a blurry jumble of colors.
This project consisted of the implementation of three techniques to help the stereogramically challenged. The implementation has taken the form of SeeIt, a Win32 program written with Visual C++. SeeIt allows the user to create stereograms from depthmaps, which can be either drawn by hand or created with a ray tracer. Either a user-supplied bitmap or random dots can be used for vertical strip in which the stereogram is encoded. Three techniques can then be used to assist the user to see the stereogram. The first technique helps the eyes learn to diverge by interactively changing a picture which requires no eye divergence into a stereogram. The second method helps the eyes remain correctly diverged until the 3D image can be decoded by the brain by providing guides for the eyes that help keep them focused properly. The third technique is to use training stereograms that are easier to see. I have discovered some properties of stereograms that affect how hard they are to see.
The first of the three techniques was also the least successful. When using this method, the stereogram starts out as a 2D image of the depth map. A very shallow 3D stereogram which requires very little eye divergence is then created, producing a flattened looking 3D image. The user can then gradually increase the depth of the stereogram (also increasing the amount the eyes must diverge) until the stereogram is at full depth. This method sounded good in theory, but didn’t work very well in practice for two reasons. First, it seems to be more difficult to diverge the eyes just a little (focusing barely behind the screen) than it is to diverge them a lot. This resulted in the flattened stereogram being even more difficult to see than the full-depth one. The second problem was that when the depth of the stereogram is increased, the entire image must be recalculated and redisplayed. Not only is this somewhat slow, especially at higher resolutions, but it also causes the entire image to change, making it very difficult to keep the eyes focused.
The second technique was very successful. Two large red dots are used as guides to help the eyes to focus the correct distance behind the screen and stay focused until the 3D image is decoded. The two red guides replace the mouse cursor and can be moved around over the stereogram. The distance between the guides is adjusted as the mouse is moved based on the depth of the stereogram at the point the mouse cursor is over. All the user has to do is focus the eyes behind the screen such that the two red dots appear to become three red dots. When three dots are visible and in focus, the eyes are focused at the correct distance behind the image and the viewer need only wait for the 3D image to appear. Once the encoded image appears, a right click of the mouse does away with the three red dots. This method was a great help to the people who tried it out. I, for one, was never able to see a stereogram until I developed this method. Now, after practicing a lot with this technique, I can see them much more easily, even without using the guides.
The third technique was to find out what properties of stereograms affect how hard they are to see, then create easy ones for the stereogramically challenged. The properties that I investigates were resolution, number of colors, and random dots vs. a bitmap as the repeated pattern. Although only a few people viewed my test set of stereograms, all agreed on which were easiest to see. Stereograms at moderate resolution are easiest to see. On a 17 inch monitor, stereograms displayed at 640×480 or 800×600 were much easier to see than stereograms displayed at 320×200, 1024×768, or 1280×1024. The number of colors in the stereogram only makes a difference up to a point. Stereograms with eight colors are easier to see than black and white stereograms, and those with 256 colors are easier to see than those with eight colors. More than 256 colors doesn’t make a very big difference, however. The most dramatic difference in viewing difficulty is between a repeated bitmap and random dots. Stereograms encoded in random dots are far easier to see than those with pretty bitmaps. This is probably because the eyes aren’t drawn to focus on the random dots like they are on a repeated image. With this knowledge, it is easy to make training stereograms that are much easier to see than those found on store shelves. After practicing on these easy stereograms, it is much easier to see the standard ones.
The techniques developed as part of this project make it much easier for the stereogramically challenged to conquer their handicap and learn to see stereograms. They worked for me, and they can work for you.