MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
compare.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2019 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.
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:120
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:129
CloneImage
MagickExport Image * CloneImage(const Image *image, const size_t columns, const size_t rows, const MagickBooleanType detach, ExceptionInfo *exception)
Definition: image.c:788
_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:1573
_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:1894
DirectClass
@ DirectClass
Definition: magick-type.h:187
BlueChannel
@ BlueChannel
Definition: magick-type.h:165
IsMagickColorSimilar
MagickExport MagickBooleanType IsMagickColorSimilar(const MagickPixelPacket *p, const MagickPixelPacket *q)
Definition: color.c:1977
MagickMaximumValue
#define MagickMaximumValue
Definition: magick-type.h:116
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:2242
MagickStatusType
unsigned int MagickStatusType
Definition: magick-type.h:127
RedChannel
@ RedChannel
Definition: magick-type.h:160
statistic.h
ChannelType
ChannelType
Definition: magick-type.h:158
CropImage
MagickExport Image * CropImage(const Image *image, const RectangleInfo *geometry, ExceptionInfo *exception)
Definition: transform.c:613
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:703
SetImageMask
MagickExport MagickBooleanType SetImageMask(Image *image, const Image *mask)
Definition: image.c:3162
channel.h
IndexChannel
@ IndexChannel
Definition: magick-type.h:171
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:578
GetPeakSignalToNoiseRatio
static MagickBooleanType GetPeakSignalToNoiseRatio(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1390
GetImageChannelDistortion
MagickExport MagickBooleanType GetImageChannelDistortion(Image *, const Image *, const ChannelType, const MetricType, double *, ExceptionInfo *)
_RectangleInfo
Definition: geometry.h:123
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:217
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:1254
SetGeometry
MagickExport void SetGeometry(const Image *image, RectangleInfo *geometry)
Definition: geometry.c:1672
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:194
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:130
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:2103
GetMeanSquaredDistortion
static MagickBooleanType GetMeanSquaredDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:957
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:26
OpacityChannel
@ OpacityChannel
Definition: magick-type.h:168
_Image::exception
ExceptionInfo exception
Definition: image.h:287
SetPixelBlue
#define SetPixelBlue(pixel, value)
Definition: pixel-accessor.h:71
ClampToQuantum
static Quantum ClampToQuantum(const MagickRealType value)
Definition: quantum.h:87
GetImageChannelStatistics
MagickExport ChannelStatistics * GetImageChannelStatistics(const Image *image, ExceptionInfo *exception)
Definition: statistic.c:2328
MagickFalse
@ MagickFalse
Definition: magick-type.h:193
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:416
QueryMagickColor
MagickExport MagickBooleanType QueryMagickColor(const char *name, MagickPixelPacket *color, ExceptionInfo *exception)
Definition: color.c:2942
pixel-private.h
image.h
GetImageChannelDistortions
MagickExport double * GetImageChannelDistortions(Image *image, const Image *reconstruct_image, const MetricType metric, ExceptionInfo *exception)
Definition: compare.c:1736
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:181
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:2047
SimilarityImage
MagickExport Image * SimilarityImage(Image *image, const Image *reference, RectangleInfo *offset, double *similarity_metric, ExceptionInfo *exception)
Definition: compare.c:2077
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:1587
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:86
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:428
_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:1894
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:170
PerceptualHashErrorMetric
@ PerceptualHashErrorMetric
Definition: compare.h:40
constitute.h
GetImageChannelDistortions
MagickExport double * GetImageChannelDistortions(Image *, const Image *, const MetricType, ExceptionInfo *)
Definition: compare.c:1736
_Image::signature
size_t signature
Definition: image.h:307
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:192
StringToDouble
static double StringToDouble(const char *magick_restrict string, char **magick_restrict sentinal)
Definition: string-private.h:42
AbsoluteErrorMetric
@ AbsoluteErrorMetric
Definition: compare.h:30
composite-private.h
RelinquishMagickMemory
MagickExport void * RelinquishMagickMemory(void *memory)
Definition: memory.c:1077
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:1447
_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:2088
studio.h
MagickRealType
MagickDoubleType MagickRealType
Definition: magick-type.h:125
monitor-private.h
GetImageArtifact
MagickExport const char * GetImageArtifact(const Image *image, const char *artifact)
Definition: artifact.c:266
CompositeChannels
@ CompositeChannels
Definition: magick-type.h:172
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:1187
GetMeanErrorPerPixel
static MagickBooleanType GetMeanErrorPerPixel(Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:824
SimilarityMetricImage
MagickExport Image * SimilarityMetricImage(Image *, const Image *, const MetricType, RectangleInfo *, double *, ExceptionInfo *)
Definition: compare.c:2088
transform.h
DeactivateAlphaChannel
@ DeactivateAlphaChannel
Definition: image.h:36
memory_.h
GetMagickPrecision
MagickExport int GetMagickPrecision(void)
Definition: magick.c:681
color.h
SimilarityImage
MagickExport Image * SimilarityImage(Image *, const Image *, RectangleInfo *, double *, ExceptionInfo *)
MagickEpsilon
#define MagickEpsilon
Definition: magick-type.h:115
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:1068
ThrowFatalException
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
MagickLog10
static double MagickLog10(const double x)
Definition: compare.c:1381
MeanAbsoluteErrorMetric
@ MeanAbsoluteErrorMetric
Definition: compare.h:31
option.h
SetImageStorageClass
MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class)
Definition: image.c:2610
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:1399
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:633
_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:27
PeakSignalToNoiseRatioMetric
@ PeakSignalToNoiseRatioMetric
Definition: compare.h:35
client.h
GreenChannel
@ GreenChannel
Definition: magick-type.h:163
_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:544
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:135
GetNormalizedCrossCorrelationDistortion
static MagickBooleanType GetNormalizedCrossCorrelationDistortion(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1079
GetImageChannelDistortion
MagickExport MagickBooleanType GetImageChannelDistortion(Image *image, const Image *reconstruct_image, const ChannelType channel, const MetricType metric, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1598