Example Usage • Option Summary

Use the `compare` program to mathematically and visually annotate the difference between an image and its reconstruction. See Command Line Processing for advice on how to structure your `compare` command or see below for example usages of the command.

## Example Usage

We list a few examples of the `compare` command here to illustrate its usefulness and ease of use. To get started, lets compare an image to one thats been sharpened:

    magick convert rose.jpg -sharpen 0x1 reconstruct.jpg
    magick compare rose.jpg reconstruct.jpg difference.png
    magick compare -compose src rose.jpg reconstruct.jpg difference.png

The red areas of the difference image emphasizes (highlight) pixels that are affected by the image sharpening, whereas white de-emphasizes (lowlight) pixels that are untouched by the sharpening process.

In addition to the visual interpretation of the difference in an image and its reconstruction, we report a mathematical measure of the difference:

    -> magick compare -verbose -metric mae rose.jpg reconstruct.jpg difference.png
    Image: rose.jpg
     Channel distortion: MAE
      red: 2282.91 (0.034835)
      green: 1853.99 (0.0282901)
      blue: 2008.67 (0.0306503)
      all: 1536.39 (0.0234439)

Or, if you just want the red channel distortion, use this command:

    -> magick compare -channel red -metric PSNR rose.jpg reconstruct.jpg difference.png
    19.63

Or, if you just want the overall image distortion, use this command:

    -> magick compare -metric PSNR rose.jpg reconstruct.jpg difference.png
    28.31

If the reconstructed image is a subimage of the image, the compare program returns the best match offset. In addition, it returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between:

    -> magick compare -metric RMSE -subimage-search logo.png wizard.jpg similarity.gif
    85.05 (0.00129778) @ 353,157

You can find additional examples of using `compare` in Graphics from the Command Line. Further discussion is available in More Graphics from the Command Line and Examples of ImageMagick Usage.

The compare program returns 2 on error otherwise 0 if the images are similar or 1 if they are dissimilar.

## Option Summary

The `compare` command recognizes these options. Click on an option to get more details about how that option works.

Option | Description
--- | ---
-alpha | on, activate, off, deactivate, set, opaque, copy", transparent, extract, background, or shape the alpha channel
-authenticate value | decrypt image with this password
-background color | background color
-brightness-contrast geometry | improve brightness / contrast of the image
-channel type | apply option to select image channels
-colorspace type | set image colorspace
-compose operator | set image composite operator
-crop geometry | crop the image
-decipher filename | convert cipher pixels to plain
-debug events | display copious debugging information
-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 (default 0.2)
-distort type coefficients | distort image
-encipher filename | convert plain pixels to cipher pixels
-extract geometry | extract area from image
-fuzz distance | colors within this distance are considered equal
-gravity type | horizontal and vertical text placement
-help | print program options
-highlight-color color | emphasize pixel differences with this color
-identify | identify the format and characteristics of the image
-interlace type | type of image interlacing scheme
-level value | adjust the level of image contrast
-limit type value | pixel cache resource limit
-log format | format of debugging information
-lowlight-color color | de-emphasize pixel differences with this color
-metric type | measure differences between images with this metric
-negate | replace each pixel with its complementary color
-profile filename | add, delete, or apply an image profile
-quality value | JPEG/MIFF/PNG compression level
-quantize colorspace | reduce image colors in this colorspace
-quiet | suppress all warning messages
-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
-resize geometry | resize the image
-respect-parentheses | settings remain in effect until parenthesis boundary.
-rotate degrees | apply Paeth rotation to the image
-sampling-factor geometry | horizontal and vertical sampling factor
-seed value | seed a new sequence of pseudo-random numbers
-separate | separate an image channel into a grayscale image
-set attribute value | set an image attribute
-sigmoidal-contrast geometry | increase the contrast without saturating highlights or shadows
-similarity-threshold value | minimum distortion for (sub)image match (default 0.0)
-size geometry | width and height of image
-subimage-search | search for subimage
-synchronize | synchronize image to storage device
-taint | mark the image as modified
-transparent-color color | transparent color
-trim | trim image edges
-verbose | print detailed information about the image
-version | print version information
-virtual-pixel method | access method for pixels outside the boundaries of the image
-read-mask filename | associate a write mask with the image