This tool computes (dis)similarity between two PNG images using (my approximation of) algorithms approximating human vision.
conversion assumes D65 white point and uses gamma from PNG file, defaulting to 2.2.
Comparison is done in L*a*b* color space using a multi-scale variant of the SSIM algorithm.
- Supports alpha channel.
- Supports gamma correction.
- Written in safe Rust. Works without external dependencies.
- Available as a library with a C API (can be seamlessly used from any language that integrates with native libraries).
Source and download
Usage
dssim file.png file-modified.png
Will output something like 0.2341
. 0
means exactly the same image, >0
(unbounded) is amount of difference.
dssim -o totally-rad-visualisation.png file.png file-modified.png
Will also output map of differences. Transparent areas will have funky pattern added.
Example
Differences between original and a compressed version of an image. Different scales of analysis pick different distortions (in case of JPEG: noisy edges, blurred out edges, blockiness and quantized color).