Fractal Mosaics is a rotation, scale, and translation invariant photomosaic algorithm (i.e., the images can be placed at arbitrary locations, can be scaled to any size, and can be rotated by any angle).
The figure below shows a Fractal Mosaic and traditional photomosaic made using the same target image and image set.
For a detailed description of the algorithm, see my adademic-style "paper" on it and documentation below.
Fractal Mosaics is implemented in Matlab. You’ll need a copy of Matlab with the Signal Processing toolbox - most versions should have the Signal Processing toolbox.
- Clone the Fractal-Mosaics repository (or, if you don't have git, just download the zip file).
- Navigate to the /code folder and unpack the 'FractalMosaics_package' zip or tar.gz file. This contains the demo example.
- Download the example image set (9.1 GB database of greyscale images of graffiti).
- Unpack the zip file containing the example image set and copy its contents into the /library_images folder in the demo example.
- Navigate to the /m-files directory in the demo example.
- Run ‘fractal_mosaic.m’.
Your mosaic is now rendering.
WARNING: it takes a long time to render a mosaic (~10.5 hrs on my macbook pro). If you want to optimize it, please do ;)
The demo example creates a black and white mosaic. This is because color takes ~3X as long. To create a color mosaic, download the color image set and set Fractal Mosaics to color mode (see the Variables page for how to do this). Due to file size limits in Google Drive, the color image set is divided into two zip files (image set 1, image set 2).
- Fractal Mosaic “paper”: academic-style paper explaining how the algorithm works.
- Wiki: details on how to create your own mosaic.
- Gallery: Flickr page showing finished mosaics.
Fractal Mosaics is licensed under the GNU General Public License (GPL). Some functions used in Fractal Mosaics are from the Matlab File Exchange and use the BSD license. This license is "permissive" (can be used for any purpose, commercial or non). If you wish to use Fractal Mosaics for proprietary software, let's talk! ([email protected])