File Exchange

image thumbnail

Mosaic generator

version (64.6 KB) by Nikolay S.
Photo mosaic generator. Choose a tile image, and a directory with images, and see the magic.


Updated 28 Aug 2014

View Version History

View License

This functions goal generate a mosaic image based on a single (usually large) main image, and multiple small tile images. A large mosaic image will be randomly generated from the multiple tile images. The resulting mosaic image will be combined with the main image, forming the desired result. The ratio between images “strength” is defined by the Overlay Ratio ranging between [0:1]. Smaller value will make the large main image be dominant, while larger Overlay Ratio will make the mosaic image (formed from tiles images) more obvious, at the expense of the main image. The user can (and should) define regions with different Overlay Ratio values. For example when the main image is a portrait, the Overlay Ratio value around the face should be small (about 0.2), while it can be high about 0.7) in other less important areas. The user can also resize the final image, sharpen the small images, convert them to color (RGB) or Gray images, if needed.
The program was inspired by this video: . After a few attempts via Photoshop I’ve decided to switch to a field where I feel more confident (Matlab), and enjoyed doing it. Later on I’ve seen the other Matlab based implementation, some better than mine, but I believe mine can be useful to someone as well.

Have fun!
In case of comments I'll try to fix the code.
Get the most updated "input to files list" function (submission 34944- for this one.

Cite As

Nikolay S. (2021). Mosaic generator (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (20)

k vinay reddy

Nikolay S.

Hi Pe.
Thanks for the flattering grade and kind words.
You’ve hardly mentioned your role in the application optimization. You have brought some problems to my attention, helped with a few wishes, form the user side, and also did excellent QA work on my improvements. This indeed resulted in an improved application.
Thanks for your help!


The author (Nikolay) did an awesome job in optimizing the way this app works.
Loaded images now remain in the memory of Matlab, making it super easy to play around with the parameters such as the overlay ratio without having to load all the images again.
Feedback by me was really appreciated by Nikolay and he implemented everything I wished for.
Thanks again for making this app even more accessible and better to work with!

Nikolay S.

Hi Pe.
I believe I've found a solution for your problem, using persistent variable type. Try the updated version. Hope this will help.


This app gives some really nice results!

I was wondering if it is possible to use the loaded/read images more than once:
If I make a mosaic and want to play around with settings such as tile size or overlay value(s) I have to re-run the entire program and re-load all the images I want to use. Off course I can use the previously used settings, but that does not prevent the app from loading all the images into its memory again.
With 500+ images this takes several minutes each time I want to tweak the resulting mosaic.
Is it possible to keep using the images that I have already loaded for creating new mosaics?

Nikolay S.

Thanks GianCarlo Pacitti


This is really cool! Awesome stuff.

Hanan Kavitz

Nikolay S.

Hi Nitin
You should either install the app, and pressing the app button will run the mosaic, or run the "NS_mosaic_main.m" function, when the functions folder is in Matlab path. You'll be shown relevant dialog menus- follow the instructions...
best regrds


plz tell me how to use this code

Nikolay S.

Good morning Claz.
You should either install the app, and pressing the app button will run the mosaic, or run the "NS_mosaic_main.m" function.
If running "NS_mosaic_main.m" still shows errors, please send me the error text
Best regards.


sir, which file to run?? i have tried running all files, but it shows error

Lyuboslav Petrov

Great Stuff!

Ruth Livingstone

Very cool! and fun as well :o)

Nikolay S.

You're welcome to ask, I usually answer quickly. Most of my contributions are GUI's, which (I hope) pretty intuitive. Anyways if there are many questions you can email me.


Btw, i have ML R2010a 7.10


I'm a starter in MatLab, the few things i know about it are the basics, for math operations, and i founded very interesting that you can mke your own scripts and share it, I found this pretty interesting but as the newbie i am, im going to ask you for help to use it, i already download the codes, so, what else? i'll appreciate it.

deniz kumlu

excellent work thanks for sharing

Nikolay S.

hactor fjdkfjdkf- thanks for the flattering comment "excellent work". Too bad the grade you choose is 2/5, which is a bit confusing...

hactor fjdkfjdkf

excellent work

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!