/* [<][>][^][v][top][bottom][index][help] */
/*
Copyright (C) 2008 GraphicsMagick Group
This program is covered by multiple licenses, which are described in
Copyright.txt. You should have received a copy of Copyright.txt with this
package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
GraphicsMagick Image Comparison Methods.
*/
#ifndef _MAGICK_COMPARE_H
#define _MAGICK_COMPARE_H
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif /* defined(__cplusplus) || defined(c_plusplus) */
/*
Pixel differencing algorithms.
*/
typedef enum
{
UndefinedHighlightStyle,
AssignHighlightStyle,
ThresholdHighlightStyle,
TintHighlightStyle,
XorHighlightStyle
} HighlightStyle;
typedef struct _DifferenceImageOptions
{
ChannelType channel; /* Channel(s) to difference */
HighlightStyle highlight_style; /* Pixel annotation style */
PixelPacket highlight_color; /* Changed pixel highlight color */
} DifferenceImageOptions;
extern MagickExport void
InitializeDifferenceImageOptions(DifferenceImageOptions *options,
ExceptionInfo *exception);
extern MagickExport Image
*DifferenceImage(const Image *reference_image,const Image *compare_image,
const DifferenceImageOptions *difference_options,
ExceptionInfo *exception);
/*
Pixel error metrics.
*/
typedef enum
{
UndefinedMetric,
MeanAbsoluteErrorMetric,
MeanSquaredErrorMetric,
PeakAbsoluteErrorMetric,
PeakSignalToNoiseRatioMetric,
RootMeanSquaredErrorMetric
} MetricType;
/*
Pixel difference statistics.
*/
typedef struct _DifferenceStatistics
{
double
red,
green,
blue,
opacity,
combined;
} DifferenceStatistics;
extern MagickExport void
InitializeDifferenceStatistics(DifferenceStatistics *difference_statistics,
ExceptionInfo *exception);
extern MagickExport MagickPassFail
GetImageChannelDifference(const Image *reference_image,
const Image *compare_image,
const MetricType metric,
DifferenceStatistics *statistics,
ExceptionInfo *exception),
GetImageChannelDistortion(const Image *reference_image,
const Image *compare_image,
const ChannelType channel,
const MetricType metric,
double *distortion,
ExceptionInfo *exception),
GetImageDistortion(const Image *reference_image,
const Image *compare_image,
const MetricType metric,
double *distortion,
ExceptionInfo *exception);
extern MagickExport MagickBool
IsImagesEqual(Image *,const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif /* defined(__cplusplus) || defined(c_plusplus) */
#endif /* _MAGICK_COMPARE_H */
/*
* Local Variables:
* mode: c
* c-basic-offset: 2
* fill-column: 78
* End:
*/