Stippler: Turning photos into dots

A few weeks ago, I stumbled over a paper by Adrian Secord describing an algorithm to turn a greyscale image into stipples. Here are the results of my implementation of his algorithm. UPDATE: I added the original photo of Marie, as well as the version that was used as input by stippler.

The subject today is called Marie. She's one of my two cats.

Perspective removed with an image editor:

This image has 4600 dots in a 3.5x5" area of a 5x7" piece of plexiglass. The dots are drilled 0.004" (.1mm) into a 0.032" (.8mm) piece of plexiglass . In ambient light, the dots are barely visible. In this image, the dots are lit from a single LED. In the final product, the plexiglass will be mounted in a frame and lit by several LEDs which should not be directly visible to the viewer.

This photo was taken by a Canon Digital Rebel in a 20-second exposure at ISO 200.

The input image was manipulated by hand to remove the background, increase the contrast, and to re-add whiskers that were removed with the background.

You'll notice that the image is backwards. The viewing side is the undrilled side, because the drills create small cones which direct light out of the plexiglass towards the viewer. I failed to take this into account, but I should have known better.

This is far and away better than my earlier effort, which simply used edge detection and the output of a dithering algorithm:

(Update, 20051222: image seems to have been lost)

I hope to package up the "stippler" software (which runs on Unix machines with OpenGL) sometime soon. It can create "g-code" and postscript output from .pgm input images. (Update, 20051122: The software is here)

Entry first conceived on 17 February 2005, 3:37 UTC, last modified on 15 January 2012, 3:46 UTC
Website Copyright © 2004-2014 Jeff Epler