README.rst
1==============
2perceptualdiff
3==============
4
5A program that compares two images using a perceptually based image metric.
6
7.. image:: https://travis-ci.org/myint/perceptualdiff.svg?branch=master
8 :target: https://travis-ci.org/myint/perceptualdiff
9 :alt: Build status
10
11.. image:: https://scan.coverity.com/projects/1561/badge.svg
12 :target: https://scan.coverity.com/projects/1561
13 :alt: Static analysis status
14
15Copyright (C) 2006-2011 Yangli Hector Yee
16
17Copyright (C) 2011-2016 Steven Myint, Jeff Terrace
18
19This program is free software; you can redistribute it and/or modify it under
20the terms of the GNU General Public License as published by the Free Software
21Foundation; either version 2 of the License, or (at your option) any later
22version.
23
24This program is distributed in the hope that it will be useful, but WITHOUT ANY
25WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
26PARTICULAR PURPOSE. See the GNU General Public License for more details in the
27file ``LICENSE``.
28
29
30Build Instructions
31==================
32
33#. Download CMake from http://www.cmake.org if you do not already have it on
34 your system.
35#. Download FreeImage from https://sourceforge.net/projects/freeimage.
36 - On OS X with MacPorts: ``port install freeimage``
37 - On OS X with Brew: ``brew install freeimage``
38 - On Ubuntu: ``apt-get install libfreeimage-dev``
39#. Type::
40
41 $ cmake .
42
43#. Type::
44
45 $ make
46
47#. To specify the install directory, use::
48
49 $ make install DESTDIR="/home/me/mydist"
50
51
52Usage
53=====
54
55Command line::
56
57 Usage: perceptualdiff image1 image2
58
59 Compares image1 and image2 using a perceptually based image metric.
60
61 Options:
62 --verbose Turn on verbose mode
63 --fov deg Field of view in degrees [0.1, 89.9] (default: 45.0)
64 --threshold p Number of pixels p below which differences are ignored
65 --gamma g Value to convert rgb into linear space (default: 2.2)
66 --luminance l White luminance (default: 100.0 cdm^-2)
67 --luminanceonly Only consider luminance; ignore chroma (color) in the
68 comparison
69 --colorfactor How much of color to use [0.0, 1.0] (default: 1.0)
70 --downsample How many powers of two to down sample the image
71 (default: 0)
72 --scale Scale images to match each other's dimensions
73 --sum-errors Print a sum of the luminance and color differences
74 --output o Write difference to the file o
75
76
77Check that perceptualdiff is built with OpenMP support::
78
79 $ ./perceptualdiff | grep -i openmp
80 OpenMP status: enabled
81
82
83Credits
84=======
85
86- Hector Yee, project administrator and originator - hectorgon.blogspot.com.
87- Scott Corley, for png file IO code.
88- Tobias Sauerwein, for make install, package_source Cmake configuration.
89- Cairo Team, for bugfixes.
90- Jim Tilander, rewrote the IO to use FreeImage.
91- Steven Myint, for OpenMP support and bug fixes.
92- Jeff Terrace, for better FreeImage support and new command-line options.
93
94
95Version History
96===============
97
98- 1.0 - Initial distribution
99- 1.0.1 - Fixed off by one convolution error and libpng interface to 1.2.8
100- 1.0.2 - [jt] Converted the loading and saving routines to use FreeImage
101- 1.1 - Added colorfactor and downsample options. Also always output
102 difference file if requested. Always print out differing pixels even if the
103 test passes.
104- 1.1.1 - Turn off color test in low lighting conditions.
105- 1.1.2 - Add OpenMP parallel processing support and fix bugs.
106- 1.2 - Add ``--sum-errors``, use more standard option style, and fix bugs.
107- 1.3 - Add MSVC compatibility.
108- 1.4 - Detect differences due to the alpha channel. This was lost in 1.0.2
109 when FreeImage was introduced.
110- 2.0 - Support usage as a library.
111- 2.1 - Allow accessing stats directly when used as a library.
112
113
114Links
115=====
116
117* Coveralls_
118
119.. _`Coveralls`: https://coveralls.io/r/myint/perceptualdiff
120