"It happened at the Santa Fe Complex"

 

Turn a webcam and a projector into a 3D scanner

View this 3D scan in your browser

 

Steps to making a 3D scanner:

1) generate a sinusoidal grayscale banded image in Processing or any graphics application. The pixels brightness will look like:

pixelBrightness = cos(y) * 128.0 + 128

 

2) Project the striped image three times on 3D subject. Scroll the image 1/3 of the width of a stripe (120 degrees) each time. Capture images with a webcam placed above projector. (Place webcam to the side of projector if using vertical stripes)

 

Here's our undocumented Processing sketch that creates these stripes and offsets.

 

3) Average all three striped images together into one image. This will be used as a texture map on the 3D model to be generated next.

 

4) For each pixel in image, infer the phase shifts in grayscale images based on intensity ratio calculations as described in the paper Zhang and Huang (2006) below. From the phase shifts, one can triangulate the z-values for each pixel. A full Implementation of algorithm is available in Processing by Florian (fjenett). Florian's code assumes the 3 striped images are already availabe in the "data" folder.

View the 3D applet in your browser

 

5) Come to the Santa Fe Complex to figure out what we can combine this with to make something fun!

 

 


 

References and Credits:

Song Zhang's PhD Thesis, "High-resolution, Real-time 3-D Shape Measurement"

Zhang and Huang (2006) "High-resolution, real-time three-dimensional shape measurement" Optical Engineering

implemented C++ code by Alex at MediaMolecule
translated to Processing by fjenett

Modified May 1, 2008 at Redfish Group by Stephen Guerin, Ben Goldsmith, Ben Lichtner, Shawn Barr and Simon Mehalek
Additional thanks to Carl Diegert and Roger Critchlow