Unix
Mac OS X
Windows
Processing
Options
Usage
MagickWand
MagickCore
PerlMagick
Magick++
Unix
Windows
Links

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.

## 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
-channel type | apply option to select image channels
-colorspace type | set image colorspace
-compose operator | set image composite operator
-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
-disimilarity-threshold value | maximum RMSE for (sub)image match (default 0.2)
-encipher filename | convert plain pixels to cipher pixels
-extract geometry | extract area from image
-fuzz distance | colors within this distance are considered equal
-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
-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
-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
-regard-warnings | pay attention to warning messages.
-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
-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
-verbose | print detailed information about the image
-version | print version information
-virtual-pixel method | access method for pixels outside the boundaries of the image

Discourse Server • Studio