The Making of HairSki

By Matthew Kerner

mattker at u dot washington dot edu

The Artifact

HairSki

The Initial Conception

I wanted to combine images which shared a common theme, but whose contents could never be found together in reality. I had the idea of combining a skier and a woman with flowing hair.

The Originals

Google Images made it easy to find two candidate images to start with. I found a great image of Eva Mendes at Celebs, Inc.:

Eva Mendes Original

I found a great image of a skier at Smugglers' Notch's website.

Smugglers' Notch Skier

The Contour and Masking Process

After converting the .jpg over to .tga with GIMP, I used my intelligent scissors executable to trace the skier's contour. The original skier jpg was 1.42MB in size, and the .tga was 6.84MB. As a result, the memory consumption of intelligent scissors at runtime was over 400 MB, and LiveWireDP took on the order of 5 seconds per seed point (there were dozens, especially tracing the pole on the right hand side of the image as it lay against a similarly-colored background, and the reflection of light on the pole caused the edge-detection algorithm to choose paths running down the middle of the pole, along the edge of the reflection. One idea I had to speed this up was to implement the brush, and thereby limit the number of nodes that needed to be considered for the shortest path. Similarly, if the code for LiveWireDP could be more closely integrated with the UI code, it would be possible to calculate the shortest path for the active subset of the image to improve runtime.

The contour I drew looks like this:

Smugglers' Notch Skier's Contour

That gave me this mask:

Smugglers' Notch Skier's Mask

Although I drew contours around the open space in the middle of the glove loops on the skier's left glove, the mask didn't exclude these spaces. I could probably have achieved this by adding them in as subsequent composite images if I was better at GIMP.

The Composite

Next, I followed Jiun-Hung's GIMP instructions to build the artifact. I scaled the skier and mask layers down by about 50% (with cubic interpolation) in order to ensure that the components of the artifact had the correct scale. That gave me this composite:

HairSki (pre-filtered)

I decided that I would apply a filter approximating a gaussian to the composite image to smooth the edges around the edges.  I tried a 3x3 gaussian kernel, but decided in the end to use this 5x5 kernel (with a scaling factor of 51):

0.25 1 2 1 0.25
1 3 4 3 1
2 4 6 4 2
1 3 4 3 1
0.25 1 2 1 0.25

I applied this filter in my image scissors app, and saved the result as a jpeg with GIMP.  Here it is one more time:

HairSki