MagickCore  6.9.11
Convert, Edit, Or Compose Bitmap Images
compare.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2020 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: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:767
_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:1584
_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:1905
DirectClass
@ DirectClass
Definition: magick-type.h:194
BlueChannel
@ BlueChannel
Definition: magick-type.h:172
IsMagickColorSimilar
MagickExport MagickBooleanType IsMagickColorSimilar(const MagickPixelPacket *p, const MagickPixelPacket *q)
Definition: color.c:1949
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:2233
MagickStatusType
unsigned int MagickStatusType
Definition: magick-type.h:127
RedChannel
@ RedChannel
Definition: magick-type.h:167
statistic.h
ChannelType
ChannelType
Definition: magick-type.h:165
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:714
SetImageMask
MagickExport MagickBooleanType SetImageMask(Image *image, const Image *mask)
Definition: image.c:3150
channel.h
IndexChannel
@ IndexChannel
Definition: magick-type.h:178
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:589
GetPeakSignalToNoiseRatio
static MagickBooleanType GetPeakSignalToNoiseRatio(const Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1401
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:224
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:1265
SetGeometry
MagickExport void SetGeometry(const Image *image, RectangleInfo *geometry)
Definition: geometry.c:1678
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:201
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:2107
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:968
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:175
_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:2332
MagickFalse
@ MagickFalse
Definition: magick-type.h:200
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:427
QueryMagickColor
MagickExport MagickBooleanType QueryMagickColor(const char *name, MagickPixelPacket *color, ExceptionInfo *exception)
Definition: color.c:2945
pixel-private.h
image.h
GetImageChannelDistortions
MagickExport double * GetImageChannelDistortions(Image *image, const Image *reconstruct_image, const MetricType metric, ExceptionInfo *exception)
Definition: compare.c:1747
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:188
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:2058
SimilarityImage
MagickExport Image * SimilarityImage(Image *image, const Image *reference, RectangleInfo *offset, double *similarity_metric, ExceptionInfo *exception)
Definition: compare.c:2088
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:1575
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:439
_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:1905
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:177
PerceptualHashErrorMetric
@ PerceptualHashErrorMetric
Definition: compare.h:40
constitute.h
GetImageChannelDistortions
MagickExport double * GetImageChannelDistortions(Image *, const Image *, const MetricType, ExceptionInfo *)
Definition: compare.c:1747
_Image::signature
size_t signature
Definition: image.h:307
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:199
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:1123
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:1458
_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:2099
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:179
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:1166
GetMeanErrorPerPixel
static MagickBooleanType GetMeanErrorPerPixel(Image *image, const Image *reconstruct_image, const ChannelType channel, double *distortion, ExceptionInfo *exception)
Definition: compare.c:835
SimilarityMetricImage
MagickExport Image * SimilarityMetricImage(Image *, const Image *, const MetricType, RectangleInfo *, double *, ExceptionInfo *)
Definition: compare.c:2099
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: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:1149
ThrowFatalException
#define ThrowFatalException(severity, tag)
Definition: exception-private.h:42
MagickLog10
static double MagickLog10(const double x)
Definition: compare.c:1392
MeanAbsoluteErrorMetric
@ MeanAbsoluteErrorMetric
Definition: compare.h:31
option.h
SetImageStorageClass
MagickExport MagickBooleanType SetImageStorageClass(Image *image, const ClassType storage_class)
Definition: image.c:2587
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:170
_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:634
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:1090
GetImageChannelDistortion
MagickExport MagickBooleanType GetImageChannelDistortion(Image *image, const Image *reconstruct_image, const ChannelType channel, const MetricType metric, double *distortion, ExceptionInfo *exception)
Definition: compare.c:1609