ImgMatch is a framework for image comparison and pattern recognition.
ImgMatch is free. It is licensed under LGPL.
It can be used to find similar images in a set or between two sets using different, configurable algorithms.
Future plans include more matching algorithms implementation, benchmarking, speed optimizations and more complex tasks like recognizing/searching faces, shapes, fingerprints and text in images.
ImgMatch is written in C++, in an object-oriented and modular fashion. It has a platform-independent GUI, which uses Qt framework.
To compile the source in Windows environment you need Qt SDK plus MinGW and MSYS (for bash) in the path. In Linux (or Cygwin) environment you need g++, qt-devel and make. If you want to use OpenCV, you may need to specify the location of its headers, libraries and its version in defines.mk. Then just run "make" in project's root directory. The executable file will be in "bin" directory.