Sorry… I can’t show you the mosaic since it contains 100% private pictures. Maybe I’ll go download a couple of hundred pictures from Flickr and show you! I just don’t have the time right now.
Anyways, I quickly spottet a small “error” with my algorithm. Lets say you have a source image of a clear sky. After you divide the image into a grid, and scan the cells, it’s more than likely that the average color of all the cells will be the same.
This means that the same picture will be selected from you database to draw the sky, which actually looks kind of lame. So I suggest a minor change. Find the top 5 matches for the sky color, and select a random image to draw. But before you do that, you have to check the spread of the top 5 matches. The first image might be spot on, but the next 4 images are not even close. Thats why you have to implement some sort of threshold to eliminate far of values. If the first image is the only “true” match, well… then you only got one image!
Another thing that might be worth looking into: Hough transformation (line and circle transformations) (Wiki-link). First you look for a line match (lines tilting the same way in the images), then you look for a color match! The same should be possible with circles! This will most likely be the last thing Itry to implement.
Comments are more than welcome 🙂