.TH compare 1 "Date: 2009/01/10 01:00:00" "ImageMagick"
.SH NAME
compare \- mathematically and visually annotate the difference between an image and its reconstruction.
.SH SYNOPSIS
.TP
\fBcompare\fP \fIinput-file\fP \fIinput-file\fP [\fIoptions\fP] \fIoutput-file\fP
.SH OVERVIEW
The \fBcompare\fP program is a member of the ImageMagick(1) suite of tools.  Use it to mathematically and visually annotate the difference between an image and its reconstruction.

For more information about the compare command, point your browser to file:///usr/local/share/doc/ImageMagick-7/www/compare.html or http://imagemagick.org/script/compare.php.
.SH DESCRIPTION
Image Settings:
  \-alpha option        on, activate, off, deactivate, set, opaque, copy
                        transparent, extract, background, or shape
  \-authenticate value  decrypt image with this password
  \-background color    background color
  \-colorspace type     alternate image colorspace
  \-compose operator    set image composite operator
  \-compress type       type of pixel compression when writing the image
  \-decipher filename   convert cipher pixels to plain pixels
  \-define format:option
                       define one or more image format options
  \-density geometry    horizontal and vertical density of the image
  \-depth value         image depth
  \-dissimilarity-threshold value
                        maximum distortion for (sub)image match
  \-encipher filename   convert plain pixels to cipher pixels
  \-extract geometry    extract area from image
  \-format "string"     output formatted image characteristics
  \-fuzz distance       colors within this distance are considered equal
  \-gravity type        horizontal and vertical text placement
  \-identify            identify the format and characteristics of the image
  \-interlace type      type of image interlacing scheme
  \-highlight-color color
                       emphasize pixel differences with this color
  \-limit type value    pixel cache resource limit
  \-lowlight-color color
                       de-emphasize pixel differences with this color
  \-metric type         measure differences between images with this metric
  \-monitor             monitor progress
  \-negate              replace each pixel with its complementary color
  \-profile filename    add, delete, or apply an image profile
  \-quality value       JPEG/MIFF/PNG compression level
  \-quiet               suppress all warning messages
  \-quantize colorspace reduce colors in this colorspace
  \-read-mask filename  associate a read mask with the image
  \-regard-warnings     pay attention to warning messages
  \-repage geometry     size and location of an image canvas
  \-respect-parentheses settings remain in effect until parenthesis boundary
  \-sampling-factor geometry
                       horizontal and vertical sampling factor
  \-seed value          seed a new sequence of pseudo-random numbers
  \-set attribute value set an image attribute
  \-similarity-threshold value
                        minimum distortion for (sub)image match
  \-size geometry       width and height of image
  \-subimage-search     search for subimage
  \-synchronize         synchronize image to storage device
  \-taint               declare the image as modified
  \-transparent-color color
                       transparent color
  \-type type           image type
  \-write-mask filename associate a write mask with the image
  \-verbose             print detailed information about the image
  \-virtual-pixel method
                       virtual pixel access method

Image Operators:
  \-brightness-contrast geometry
                        improve brightness / contrast of the image
  \-distort method args
                        distort images according to given method and args
  \-level value         adjust the level of image contrast
  \-resize geometry     resize the image
  \-rotate degrees      apply Paeth rotation to the image
  \-sigmoidal-contrast geometry
                       lightness rescaling using sigmoidal contrast enhancement
  \-trim                trim image edges

Image Channel Operators:
  \-separate            separate an image channel into a grayscale image

Image Sequence Operators:
  \-crop geometry       cut out a rectangular region of the image
  \-write filename      write images to this file

Image Stack Operators:
  \-delete indexes      delete the image from the image sequence

Miscellaneous Options:
  \-channel mask        set the image channel mask
  \-debug events        display copious debugging information
  \-help                print program options
  \-log format          format of debugging information
  \-list type           print a list of supported option arguments
  \-version             print version information

By default, the image format of `file' is determined by its magic number.  To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps).  Specify 'file' as '-' for standard input or output.

Two images are considered similar if their difference according to the specified metric and fuzz value is 0, with the exception of the normalized cross correlation metric (NCC), where two images are considered similar when their normalized cross correlation is 1. The default metric is NCC.

The compare program returns 2 on error, 0 if the images are similar, or a value between 0 and 1 if they are not similar.
.SH SEE ALSO
ImageMagick(1)

.SH COPYRIGHT

\fBCopyright (C) 1999-2019 ImageMagick Studio LLC. Additional copyrights and licenses apply to this software, see file:///usr/local/share/doc/ImageMagick-7/www/license.html or http://imagemagick.org/script/license.php\fP
