I'm looking for a program that does a "diff" between two JPG images.
Requirements:
The diff algorithm used by the app is known.
Ideally, it should be verifiable via code inspection, but that's a nice-to-have, not a requirement.
This excludes things like Beyond Compare.
The diff algorithm (or even better, the specific implementation in this software) has been somehow proven to be reliable in the conditions of requirements below.
"proven" means something like consensus of experts in image processing/computer vision field; peer reviewed publications, published large scale test results, etc...
The algorithm and ideally the implementation needs to be resilient to type 1 and type 2 errors (e.g. it should have a provable and demonstrable low rate of both falsely showing large differences for nearly identical images, AND low rate of showing no differences for different images).
The program should be able to handle images that have been minorly manipulated compared to each other, for example:
Small cropping of edges (say <10%)
Change in image quality (saving with slightly different compression)
Other minor changes (sharpness, contrast).
Desired output should indicate the degree of similarity, either textually (92% similar) or visually (heat map, diff color coded map, etc...)
Nice-to-haves:
Open source (more specifically, ability to independently verify that the program indeed uses the algorithm it claims to use and that it was implemented in a correct way. E.g. if a reputable independent resource verified it and publicly acknowledged that, it's just as good as open source).
Freeware or low cost prefered. This isn't a requirement, but a strong preference. A professional service costing $100/image (or $100k license) isn't a good option.
OS/platform doesn't matter much (Windows, Linux, OS/2, webapp, whatever).
diff
command.