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: http://www.youtube.com/watch?v=c3af_HyhLI4 . 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.
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!
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?
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...
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
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.
- Better GUI for sub images choosing.
- Better GUI- sub-image size.
- Compatibility issue with R2011b (fileparts) resolved.
07 Feb 2012
- Compatibility with R2011b (fileparts outputs change) resolved.
- Integration of "List of files form directories/files list or browser" allows flexible choice of sub-image files/directories.
- sub-image size GUI updated.
14 Feb 2012
Some bugs fixed, some new features added or modified.
15 Feb 2013
- Packed into an App, for easier use.
- Files selection function modified
05 Mar 2013
- some documentation inprovements
- filesListFromInput changed to support recursive files listing via (slightly modified) fuf.m thanks to Francesco di Pierro.
20 Jul 2014
Added persistent variable to prevent re-reading images. Consumes memeory.
Updated filesListFromInput function used
21 Jul 2014
Taken care of disappearing persistent variable (when Matlab is closed for example).