Java logo

photo montage

home | software | photo montage

I'd wanted to try and write an application to compose photo-montages for a long time. It turned out to be a fun learning exercise in some simple computer science algorithms, and colour perception.

In 2002 I wrote one in Java. The results are interesting, though tend to be a little grey. This might have been improved by increasing the saturation of the target image before attempting any matching. I'd like to re-write it in C# as I expect to get better performance. The Java2D APIs did a poor job of image scaling, though they may have improved since then.

For now, a few sample images:


My brother Kim and I -- A photo montage
hold the mouse over to see the source image

This one is starting to look a little more promising. This photo of my brother Kim and me has well defined lines and solid colours. The clarity of the lines in the generated image indicates that the algorithm is doing a good job of matching changes in intensity. Check out the strand of hair hanging over my forehead, the clock on the mantle and the definition of Kim's shirt. When this image came out, I realised that being able to draw from a very large number of tile images would be important. This image was generated from a pool of around 2,400 images, automatically collected by a web spider I wrote, that ended up bringing down many JPEG files from a celebrity photo archive. In 2002, digital cameras were not commonplace and it was harder to come by large numbers of JPEG files than it is today.


Ruchie wearing a snorkel and mask -- A photo montage
hold the mouse over to see the source image


Ruchie and Laura -- A photo montage
hold the mouse over to see the source image