Eikon is the Greek root word for the English word "icon". It means image, representation, or likeness. I thought that was a fitting name for my project. I was hoping for a 6 letter long word to complete the Google parody/homage effect, but I liked Eikon enough to stick with that name, even though it is only 5 letters long.
Wavelet decomposition is called "multiresolution" because the a wavelet encoded image can be reconstituted at any level of detail (this allows for progressive transmission of images, for example). Multiresolution image query takes advantage of this property to determine the most important features of an image.
No. Eikon does not save a copy of the image. This is not infringing any copyrights. It computes the wavelet decomposition, then adds the image's SHA hash to the search arrays. The decomposition, and the original image, are then thrown away.
That's the size that the images are rescaled to for processing. If the query image was smaller than that, it would actually be made larger by this rescaling process. Since you can't add detail by making an image larger, this makes the search results more inaccurate. Most images you'll want to look at are larger than 128 x 128 anyway. For the purpose of searching for company logos and the like, I have removed the restriction that the image must be larger than 128 x 128. However, don't expect much.
A little less than 2K. I arrive at this number by dividing the size of the serialized database by the number of images. I haven't performed extensive profiling.
The database isn't very big, so the "closest" matches can be ... not very close! Basically, differently sized versions of images match each other very closely, and everything else is pretty weird. Also, the database is a straight-up implementation of the one described in the Finkelstein paper. They spent months tuning and experimenting to find the proper image weights for their database and their input. I just used theirs. So there is probably some room for improvement (see also my flaws page).