- NAME
- SYNOPSIS
- FUNCTION DESCRIPTIONS

- CompareImageChannels
- CompareImageCommand
- IsImagesEqual

# NAME

compare - Compare an Image to a Reconstructed Image

# SYNOPSIS

Image * CompareImageChannels( const Image *image, const Image *reconstruct_image, const ChannelType channel, const MetricType metric, double *distortion, ExceptionInfo *exception );

MagickBooleanType CompareImageCommand( ImageInfo *image_info, int argc, char ** argv, char ** metadata, ExceptionInfo *exception );

MagickBooleanType IsImagesEqual( Image *image, const Image *reconstruct_image );

# FUNCTION DESCRIPTIONS

## CompareImageChannels

> CompareImageChannels() compares one or more image channels and returns the specified distortion metric.

The format of the CompareImageChannels method is:

> Image *CompareImageChannels ( const Image *image, const Image *reconstruct_image, const ChannelType channel, const MetricType metric, double *distortion, ExceptionInfo *exception );

A description of each parameter follows:

image:
  The image.

reconstruct_image:
  The reconstruct image.

channel:
  The channel.

metric:
  The metric.

distortion:
  The computed distortion between the images.

exception:
  Return any errors or warnings in this structure.

## CompareImageCommand

> CompareImageCommand() compares two images and returns the difference between them as a distortion metric and as a new image visually annotating their differences.

The format of the CompareImageCommand method is:

> MagickBooleanType CompareImageCommand ( ImageInfo *image_info, int argc, char **argv, char **metadata, ExceptionInfo *exception );

A description of each parameter follows:

image_info:
  The image info.

argc:
  The number of elements in the argument vector.

argv:
  A text array containing the command line arguments.

metadata:
  any metadata is returned here.

exception:
  Return any errors or warnings in this structure.

## IsImagesEqual

> IsImagesEqual() measures the difference between colors at each pixel location of two images. A value other than 0 means the colors match exactly. Otherwise an error measure is computed by summing over all pixels in an image the distance squared in RGB space between each image pixel and its corresponding pixel in the reconstruct image. The error measure is assigned to these image members:

mean_error_per_pixel:
  The mean error for any single pixel in the image.

normalized_mean_error:
  The normalized mean quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in the image.

normalized_maximum_error:
  The normalized maximum quantization error for any single pixel in the image. This distance measure is normalized to a range between 0 and 1. It is independent of the range of red, green, and blue values in your image.

A small normalized mean square error, accessed as image->normalized_mean_error, suggests the images are very similiar in spatial layout and color.

The format of the IsImagesEqual method is:

> MagickBooleanType IsImagesEqual ( Image *image, const Image *reconstruct_image );

A description of each parameter follows.

image:
  The image.

reconstruct_image:
  The reconstruct image.

"Image manipulation software that works like magick"