/pyssim

A Python module for computing the Structural Similarity Image Metric (SSIM)

Primary LanguagePython

pyssim

This module implements the Structural Similarity Image Metric (SSIM). Original code written by Antoine Vacavant from http://isit.u-clermont1.fr/~anvacava/code.html, with modifications by Christopher Godfrey and Jeff Terrace.

Build Status

Installation

pip install pyssim

Running

$ pyssim --help
usage: pyssim [-h] image1.png image path with* or image2.png

Compares an image with a list of images using the SSIM metric.
  Example:
    pyssim test-images/test1-1.png "test-images/*"

positional arguments:
  image1.png
  image path with* or image2.png

optional arguments:
  -h, --help            show this help message and exit

Compatibility

pyssim is known to work with Python 2.7 and 3.2 and we test these versions on Travis CI to make sure they keep working. 2.6 and 3.3 will probably work, but we omit them from testing due to complications with setting them up on Travis CI.

Development

To run from a local git client:

PYTHONPATH="." python ssim

To run the lint checks:

pylint --rcfile=.pylintrc -r n ssim setup.py

To test:

$ PYTHONPATH="." python ssim test-images/test1-1.png "test-images/*"
test-images/test1-1.png - test-images/test1-1.png: 1
test-images/test1-1.png - test-images/test1-2.png: 0.9981071
test-images/test1-1.png - test-images/test2-1.png: 0.67301
test-images/test1-1.png - test-images/test2-2.png: 0.6488112

References

  • [1] Z. Wang, A. C. Bovik, H. R. Sheikh and E. P. Simoncelli. Image quality assessment: From error visibility to structural similarity. IEEE Transactions on Image Processing, 13(4):600--612, 2004.
  • [2] Z. Wang and A. C. Bovik. Mean squared error: Love it or leave it? - A new look at signal fidelity measures. IEEE Signal Processing Magazine, 26(1):98--117, 2009.