I gave a talk about an autostereogram decoder for a Gcafe on April 17, 2003.
Here's the talk abstract:
An Autostereogram Decoder
An autostereogram is a seemingly-random 2D collection of dots that produces a 3D effect without requiring any special devices like 3D glasses. The catch is that you have to look at them correctly. They were a fad a few years ago.
I have never been able to see the images hidden in autostereograms. In order to tap into this mystery world, I decided to write an autostereogram decoder that converts an autostereogram into a depth image, reversing the process that created the autostereogram in the first place. In my talk, I'll discuss how autostereograms work, how they're made, and how they can be decoded.
I actually started writing the decoder a day or two before the talk, and in a rush to prepare my slides the morning of the talk, I left out a slide describing previous and related work. On the encoding side, I relied heavily on a paper called Displaying 3D Images: Algorithms for Single Image Random Dot Stereograms, by Thimbleby, Inglis, and Witten. On the decoding side, of course there's the whole body of literature concerned with using correspondences in stereo images to determine depth. I didn't really look into this literature at all, but it certainly exists and some of it could probably be used to improve the decoder I wrote. I also made use of some images I downloaded from Keith Goldfarb's Autostereogram Page, plus a scanned image of the cover of The Dave Matthews Band's Remember Two Things. (A great album, by the way.)
This work was mainly a hack. All the documentation that exists are my
slides and my source code. The slides are on this page, of course, but
they are also available as a PDF file.
The source code is available here; the important file is
Slides are ordered by row, from left to right.