MagickCore  6.9.11-60
Convert, Edit, Or Compose Bitmap Images
compare.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License. You may
6  obtain a copy of the License at
7 
8  https://imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore image compare methods.
17 */
18 #ifndef MAGICKCORE_COMPARE_H
19 #define MAGICKCORE_COMPARE_H
20 
21 #include "magick/image.h"
22 
23 #if defined(__cplusplus) || defined(c_plusplus)
24 extern "C" {
25 #endif
26 
27 typedef enum
28 {
42 
43 extern MagickExport double
45  ExceptionInfo *);
46 
47 extern MagickExport Image
49  const MetricType,double *,ExceptionInfo *),
50  *CompareImages(Image *,const Image *,const MetricType,double *,
51  ExceptionInfo *),
52  *SimilarityImage(Image *,const Image *,RectangleInfo *,double *,
53  ExceptionInfo *),
55  RectangleInfo *,double *,ExceptionInfo *);
56 
59  const MetricType,double *,ExceptionInfo *),
60  GetImageDistortion(Image *,const Image *,const MetricType,double *,
61  ExceptionInfo *),
62  IsImagesEqual(Image *,const Image *);
63 
64 #if defined(__cplusplus) || defined(c_plusplus)
65 }
66 #endif
67 
68 #endif
_Image::colorspace
ColorspaceType colorspace
Definition: image.h:158
QuantumScale
#define QuantumScale
Definition: magick-type.h:124
MagickExport
#define MagickExport
Definition: method-attribute.h:80
_Image::debug
MagickBooleanType debug
Definition: image.h:290
_Image::filename
char filename[MaxTextExtent]
Definition: image.h:278
NormalizedCrossCorrelationErrorMetric
@ NormalizedCrossCorrelationErrorMetric
Definition: compare.h:37
_Image::progress_monitor
MagickProgressMonitor progress_monitor
Definition: image.h:264
_RectangleInfo::x
ssize_t x
Definition: geometry.h:130
CloneImage
MagickExport Image * CloneImage(const Image *image, const size_t columns, const size_t rows, const MagickBooleanType detach, ExceptionInfo *exception)
Definition: image.c:771
_Image::error
ErrorInfo error
Definition: image.h:258
GetRootMeanSquaredDistortion
static MagickBooleanType GetRootMeanSquaredDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1582
_Image::matte
MagickBooleanType matte
Definition: image.h:171
SetImageProgress
MagickExport MagickBooleanType SetImageProgress(const Image *image, const char *tag, const MagickOffsetType offset, const MagickSizeType extent)
Definition: monitor.c:136
OpaqueOpacity
#define OpaqueOpacity
Definition: image.h:27
IsImagesEqual
MagickExport MagickBooleanType IsImagesEqual(Image *image, const Image *reconstruct_image)
Definition: compare.c:1903
DirectClass
@ DirectClass
Definition: magick-type.h:198
BlueChannel
@ BlueChannel
Definition: magick-type.h:176
IsMagickColorSimilar
MagickExport MagickBooleanType IsMagickColorSimilar(const MagickPixelPacket *p, const MagickPixelPacket *q)
Definition: color.c:1949
MagickMaximumValue
#define MagickMaximumValue
Definition: magick-type.h:120
GetMagickModule
#define GetMagickModule()
Definition: log.h:29
DestroyCacheView
MagickExport CacheView * DestroyCacheView(CacheView *cache_view)
Definition: cache-view.c:256
GetMagickPixelPacket
MagickExport void GetMagickPixelPacket(const Image *image, MagickPixelPacket *pixel)
Definition: pixel.c:2233
MagickStatusType
unsigned int MagickStatusType
Definition: magick-type.h:131
RedChannel
@ RedChannel
Definition: magick-type.h:171
statistic.h
ChannelType
ChannelType
Definition: magick-type.h:169
CropImage
MagickExport Image * CropImage(const Image *image, const RectangleInfo *geometry, ExceptionInfo *exception)
Definition: transform.c:614
geometry.h
MagickCoreSignature
#define MagickCoreSignature
Definition: method-attribute.h:86
SimilarityImageTag
#define SimilarityImageTag
GetCacheViewVirtualIndexQueue
MagickExport const IndexPacket * GetCacheViewVirtualIndexQueue(const CacheView *cache_view)
Definition: cache-view.c:638
GetMeanAbsoluteDistortion
static MagickBooleanType GetMeanAbsoluteDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:706
SetImageMask
MagickExport MagickBooleanType SetImageMask(Image *image, const Image *mask)
Definition: image.c:3158
channel.h
IndexChannel
@ IndexChannel
Definition: magick-type.h:182
GetCacheViewAuthenticPixels
MagickExport PixelPacket * GetCacheViewAuthenticPixels(CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache-view.c:473
_ErrorInfo::normalized_mean_error
double normalized_mean_error
Definition: color.h:68
magick_restrict
#define magick_restrict
Definition: MagickCore.h:41
GetFuzzDistortion
static MagickBooleanType GetFuzzDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:581
GetPeakSignalToNoiseRatio
static MagickBooleanType GetPeakSignalToNoiseRatio(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1399
GetImageChannelDistortion
MagickExport MagickBooleanType GetImageChannelDistortion(Image *, const Image *, const ChannelType, const MetricType, double *, ExceptionInfo *)
_RectangleInfo
Definition: geometry.h:124
property.h
SetPixelRed
#define SetPixelRed(pixel, value)
Definition: pixel-accessor.h:82
PeakAbsoluteErrorMetric
@ PeakAbsoluteErrorMetric
Definition: compare.h:34
_ErrorInfo::mean_error_per_pixel
double mean_error_per_pixel
Definition: color.h:67
_ChannelPerceptualHash::P
double P[32]
Definition: statistic.h:70
image-private.h
monitor.h
_Image::columns
size_t columns
Definition: image.h:174
artifact.h
SetPixelGreen
#define SetPixelGreen(pixel, value)
Definition: pixel-accessor.h:77
IndexPacket
Quantum IndexPacket
Definition: pixel.h:129
resource_.h
ConvertRGBToCMYK
static void ConvertRGBToCMYK(MagickPixelPacket *pixel)
Definition: colorspace-private.h:40
FuzzErrorMetric
@ FuzzErrorMetric
Definition: compare.h:38
GetFuzzyColorDistance
static double GetFuzzyColorDistance(const Image *p, const Image *q)
Definition: color-private.h:35
compare.h
INFINITY
#define INFINITY
Definition: magick-type.h:228
GetPixelRed
#define GetPixelRed(pixel)
Definition: pixel-accessor.h:50
utility.h
_CacheView
Definition: cache-view.c:66
GetPeakAbsoluteDistortion
static MagickBooleanType GetPeakAbsoluteDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1260
SetGeometry
MagickExport void SetGeometry(const Image *image, RectangleInfo *geometry)
Definition: geometry.c:1685
version.h
RootMeanSquaredErrorMetric
@ RootMeanSquaredErrorMetric
Definition: compare.h:36
_ChannelPerceptualHash
Definition: statistic.h:68
string_.h
CompareImages
MagickExport Image * CompareImages(Image *, const Image *, const MetricType, double *, ExceptionInfo *)
UndefinedMetric
@ UndefinedMetric
Definition: compare.h:29
MagickTrue
@ MagickTrue
Definition: magick-type.h:205
QueueCacheViewAuthenticPixels
MagickExport PixelPacket * QueueCacheViewAuthenticPixels(CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache-view.c:883
_RectangleInfo::y
ssize_t y
Definition: geometry.h:131
OpaqueAlphaChannel
@ OpaqueAlphaChannel
Definition: image.h:38
_Image::compose
CompositeOperator compose
Definition: image.h:235
GetPixelAlpha
#define GetPixelAlpha(pixel)
Definition: pixel-accessor.h:36
GetPixelIndex
#define GetPixelIndex(indexes)
Definition: pixel-accessor.h:44
SyncCacheViewAuthenticPixels
MagickExport MagickBooleanType SyncCacheViewAuthenticPixels(CacheView *magick_restrict cache_view, ExceptionInfo *exception)
Definition: cache-view.c:1000
GetImageChannelPerceptualHash
MagickExport ChannelPerceptualHash * GetImageChannelPerceptualHash(const Image *image, ExceptionInfo *exception)
Definition: statistic.c:2113
ClampToQuantum
static Quantum ClampToQuantum(const MagickRealType quantum)
Definition: quantum.h:88
GetMeanSquaredDistortion
static MagickBooleanType GetMeanSquaredDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:963
MetricType
MetricType
Definition: compare.h:28
_ChannelStatistics::mean
double mean
Definition: statistic.h:42
thread-private.h
CompareImages
MagickExport Image * CompareImages(Image *image, const Image *reconstruct_image, const MetricType metric, double *distortion, ExceptionInfo *exception)
Definition: compare.c:111
TraceEvent
@ TraceEvent
Definition: log.h:38
ThrowImageException
#define ThrowImageException(severity, tag)
Definition: exception-private.h:70
SetImageAlphaChannel
MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, const AlphaChannelType alpha_type)
Definition: channel.c:652
_Image
Definition: image.h:153
GetCacheViewAuthenticIndexQueue
MagickExport IndexPacket * GetCacheViewAuthenticIndexQueue(CacheView *cache_view)
Definition: cache-view.c:564
AcquireAuthenticCacheView
MagickExport CacheView * AcquireAuthenticCacheView(const Image *image, ExceptionInfo *exception)
Definition: cache-view.c:111
CompareImageChannels
MagickExport Image * CompareImageChannels(Image *, const Image *, const ChannelType, const MetricType, double *, ExceptionInfo *)
_MagickPixelPacket
Definition: pixel.h:105
ImageError
@ ImageError
Definition: exception.h:69
FormatImageProperty
MagickExport MagickBooleanType FormatImageProperty(Image *image, const char *property, const char *format,...)
Definition: property.c:349
MaximumNumberOfImageMoments
#define MaximumNumberOfImageMoments
Definition: statistic.h:27
MagickMax
#define MagickMax(x, y)
Definition: image-private.h:36
OpacityChannel
@ OpacityChannel
Definition: magick-type.h:179
_Image::exception
ExceptionInfo exception
Definition: image.h:287
SetPixelBlue
#define SetPixelBlue(pixel, value)
Definition: pixel-accessor.h:71
GetImageChannelStatistics
MagickExport ChannelStatistics * GetImageChannelStatistics(const Image *image, ExceptionInfo *exception)
Definition: statistic.c:2338
MagickFalse
@ MagickFalse
Definition: magick-type.h:204
MagickProgressMonitor
MagickBooleanType(* MagickProgressMonitor)(const char *, const MagickOffsetType, const MagickSizeType, void *)
Definition: monitor.h:26
GetPixelBlue
#define GetPixelBlue(pixel)
Definition: pixel-accessor.h:38
GetImageDistortion
MagickExport MagickBooleanType GetImageDistortion(Image *image, const Image *reconstruct_image, const MetricType metric, double *distortion, ExceptionInfo *exception)
Definition: compare.c:422
QueryMagickColor
MagickExport MagickBooleanType QueryMagickColor(const char *name, MagickPixelPacket *color, ExceptionInfo *exception)
Definition: color.c:3035
pixel-private.h
image.h
GetImageChannelDistortions
MagickExport double * GetImageChannelDistortions(Image *image, const Image *reconstruct_image, const MetricType metric, ExceptionInfo *exception)
Definition: compare.c:1745
GetPixelOpacity
#define GetPixelOpacity(pixel)
Definition: pixel-accessor.h:49
ValidateImageMorphology
static MagickBooleanType ValidateImageMorphology(const Image *magick_restrict image, const Image *magick_restrict reconstruct_image)
Definition: compare.c:141
DefaultChannels
@ DefaultChannels
Definition: magick-type.h:192
GetSimilarityMetric
static double GetSimilarityMetric(const Image *image, const Image *reference, const MetricType metric, const ssize_t x_offset, const ssize_t y_offset, ExceptionInfo *exception)
Definition: compare.c:2057
SimilarityImage
MagickExport Image * SimilarityImage(Image *image, const Image *reference, RectangleInfo *offset, double *similarity_metric, ExceptionInfo *exception)
Definition: compare.c:2087
color-private.h
CompositeImage
MagickExport MagickBooleanType CompositeImage(Image *image, const CompositeOperator compose, const Image *source_image, const ssize_t x_offset, const ssize_t y_offset)
Definition: composite.c:1593
GetImageDistortion
MagickExport MagickBooleanType GetImageDistortion(Image *, const Image *, const MetricType, double *, ExceptionInfo *)
PerceptibleReciprocal
static double PerceptibleReciprocal(const double x)
Definition: pixel-accessor.h:124
QuantumRange
#define QuantumRange
Definition: magick-type.h:90
CMYKColorspace
@ CMYKColorspace
Definition: colorspace.h:39
GetAbsoluteDistortion
static MagickBooleanType GetAbsoluteDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:434
_Image::rows
size_t rows
Definition: image.h:175
CompareImageChannels
MagickExport Image * CompareImageChannels(Image *image, const Image *reconstruct_image, const ChannelType channel, const MetricType metric, double *distortion, ExceptionInfo *exception)
Definition: compare.c:154
IsImagesEqual
MagickExport MagickBooleanType IsImagesEqual(Image *, const Image *)
Definition: compare.c:1903
cache-view.h
SetMagickPixelPacket
static void SetMagickPixelPacket(const Image *image, const PixelPacket *color, const IndexPacket *index, MagickPixelPacket *pixel)
Definition: pixel-private.h:78
_ExceptionInfo::signature
size_t signature
Definition: exception.h:124
colorspace.h
log.h
BlackChannel
@ BlackChannel
Definition: magick-type.h:181
PerceptualHashErrorMetric
@ PerceptualHashErrorMetric
Definition: compare.h:40
constitute.h
GetImageChannelDistortions
MagickExport double * GetImageChannelDistortions(Image *, const Image *, const MetricType, ExceptionInfo *)
Definition: compare.c:1745
_Image::signature
size_t signature
Definition: image.h:307
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:203
StringToDouble
static double StringToDouble(const char *magick_restrict string, char **magick_restrict sentinal)
Definition: string-private.h:82
AbsoluteErrorMetric
@ AbsoluteErrorMetric
Definition: compare.h:30
composite-private.h
RelinquishMagickMemory
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1162
UndefinedErrorMetric
@ UndefinedErrorMetric
Definition: compare.h:39
GetPerceptualHashDistortion
static MagickBooleanType GetPerceptualHashDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1456
_ExceptionInfo
Definition: exception.h:103
SimilarityMetricImage
MagickExport Image * SimilarityMetricImage(Image *image, const Image *reference, const MetricType metric, RectangleInfo *offset, double *similarity_metric, ExceptionInfo *exception)
Definition: compare.c:2098
studio.h
MagickRealType
MagickDoubleType MagickRealType
Definition: magick-type.h:129
monitor-private.h
GetImageArtifact
MagickExport const char * GetImageArtifact(const Image *image, const char *artifact)
Definition: artifact.c:266
CompositeChannels
@ CompositeChannels
Definition: magick-type.h:183
AcquireVirtualCacheView
MagickExport CacheView * AcquireVirtualCacheView(const Image *image, ExceptionInfo *exception)
Definition: cache-view.c:153
GetNumberChannels
static size_t GetNumberChannels(const Image *image, const ChannelType channel)
Definition: compare.c:122
MeanSquaredErrorMetric
@ MeanSquaredErrorMetric
Definition: compare.h:33
DestroyImage
MagickExport Image * DestroyImage(Image *image)
Definition: image.c:1174
GetMeanErrorPerPixel
static MagickBooleanType GetMeanErrorPerPixel(Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:830
SimilarityMetricImage
MagickExport Image * SimilarityMetricImage(Image *, const Image *, const MetricType, RectangleInfo *, double *, ExceptionInfo *)
Definition: compare.c:2098
transform.h
DeactivateAlphaChannel
@ DeactivateAlphaChannel
Definition: image.h:36
memory_.h
GetMagickPrecision
MagickExport int GetMagickPrecision(void)
Definition: magick.c:690
color.h
SimilarityImage
MagickExport Image * SimilarityImage(Image *, const Image *, RectangleInfo *, double *, ExceptionInfo *)
MagickEpsilon
#define MagickEpsilon
Definition: magick-type.h:119
exception-private.h
ThrowMagickException
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
Definition: exception.c:1149
ThrowFatalException
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
MagickLog10
static double MagickLog10(const double x)
Definition: compare.c:1390
MeanAbsoluteErrorMetric
@ MeanAbsoluteErrorMetric
Definition: compare.h:31
option.h
SetImageStorageClass
MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class)
Definition: image.c:2595
GetPixelGreen
#define GetPixelGreen(pixel)
Definition: pixel-accessor.h:43
_ChannelPerceptualHash::Q
double Q[32]
Definition: statistic.h:71
list.h
LogMagickEvent
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
Definition: log.c:1420
Log10Epsilon
#define Log10Epsilon
_ChannelStatistics::standard_deviation
double standard_deviation
Definition: statistic.h:44
MeanErrorPerPixelMetric
@ MeanErrorPerPixelMetric
Definition: compare.h:32
GetCacheViewVirtualPixels
MagickExport const PixelPacket * GetCacheViewVirtualPixels(const CacheView *cache_view, const ssize_t x, const ssize_t y, const size_t columns, const size_t rows, ExceptionInfo *exception)
Definition: cache-view.c:723
string-private.h
colorspace-private.h
InheritException
MagickExport void InheritException(ExceptionInfo *exception, const ExceptionInfo *relative)
Definition: exception.c:692
_ErrorInfo::normalized_maximum_error
double normalized_maximum_error
Definition: color.h:69
ResourceLimitFatalError
@ ResourceLimitFatalError
Definition: exception.h:78
MagickMin
#define MagickMin(x, y)
Definition: image-private.h:37
PeakSignalToNoiseRatioMetric
@ PeakSignalToNoiseRatioMetric
Definition: compare.h:35
client.h
GreenChannel
@ GreenChannel
Definition: magick-type.h:174
_PixelPacket
Definition: pixel.h:132
ThrowBinaryException
#define ThrowBinaryException(severity, tag, context)
Definition: exception-private.h:29
_ChannelStatistics
Definition: statistic.h:31
SetPixelPacket
static void SetPixelPacket(const Image *image, const MagickPixelPacket *pixel, PixelPacket *color, IndexPacket *index)
Definition: pixel-private.h:103
AcquireQuantumMemory
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:665
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:139
GetNormalizedCrossCorrelationDistortion
static MagickBooleanType GetNormalizedCrossCorrelationDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1085
GetImageChannelDistortion
MagickExport MagickBooleanType GetImageChannelDistortion(Image *image, const Image *reconstruct_image, const ChannelType channel, const MetricType metric, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1607