18#ifndef MAGICKCORE_STATISTIC_H
19#define MAGICKCORE_STATISTIC_H
21#if defined(__cplusplus) || defined(c_plusplus)
25#include "magick/draw.h"
27#define MaximumNumberOfImageMoments 8
28#define MaximumNumberOfPerceptualHashes 7
72} ChannelPerceptualHash;
76 UndefinedEvaluateOperator,
79 DivideEvaluateOperator,
80 LeftShiftEvaluateOperator,
83 MultiplyEvaluateOperator,
85 RightShiftEvaluateOperator,
87 SubtractEvaluateOperator,
91 ThresholdEvaluateOperator,
92 ThresholdBlackEvaluateOperator,
93 ThresholdWhiteEvaluateOperator,
94 GaussianNoiseEvaluateOperator,
95 ImpulseNoiseEvaluateOperator,
96 LaplacianNoiseEvaluateOperator,
97 MultiplicativeNoiseEvaluateOperator,
98 PoissonNoiseEvaluateOperator,
99 UniformNoiseEvaluateOperator,
100 CosineEvaluateOperator,
101 SineEvaluateOperator,
102 AddModulusEvaluateOperator,
103 MeanEvaluateOperator,
105 ExponentialEvaluateOperator,
106 MedianEvaluateOperator,
108 RootMeanSquareEvaluateOperator,
109 InverseLogEvaluateOperator
110} MagickEvaluateOperator;
131 StandardDeviationStatistic,
132 RootMeanSquareStatistic
135extern MagickExport ChannelStatistics
136 *GetImageChannelStatistics(
const Image *,ExceptionInfo *);
138extern MagickExport ChannelMoments
139 *GetImageChannelMoments(
const Image *,ExceptionInfo *);
141extern MagickExport ChannelPerceptualHash
142 *GetImageChannelPerceptualHash(
const Image *,ExceptionInfo *);
144extern MagickExport Image
145 *EvaluateImages(
const Image *,
const MagickEvaluateOperator,ExceptionInfo *),
146 *PolynomialImage(
const Image *,
const size_t,
const double *,ExceptionInfo *),
147 *PolynomialImageChannel(
const Image *,
const ChannelType,
const size_t,
148 const double *,ExceptionInfo *),
149 *StatisticImage(
const Image *,
const StatisticType,
const size_t,
const size_t,
151 *StatisticImageChannel(
const Image *,
const ChannelType,
const StatisticType,
152 const size_t,
const size_t,ExceptionInfo *);
154extern MagickExport MagickBooleanType
155 EvaluateImage(Image *,
const MagickEvaluateOperator,
const double,
157 EvaluateImageChannel(Image *,
const ChannelType,
const MagickEvaluateOperator,
158 const double,ExceptionInfo *),
159 FunctionImage(Image *,
const MagickFunction,
const size_t,
const double *,
161 FunctionImageChannel(Image *,
const ChannelType,
const MagickFunction,
162 const size_t,
const double *,ExceptionInfo *),
163 GetImageChannelEntropy(
const Image *,
const ChannelType,
double *,
165 GetImageChannelExtrema(
const Image *,
const ChannelType,
size_t *,
size_t *,
167 GetImageChannelMean(
const Image *,
const ChannelType,
double *,
double *,
169 GetImageChannelKurtosis(
const Image *,
const ChannelType,
double *,
double *,
171 GetImageChannelRange(
const Image *,
const ChannelType,
double *,
double *,
173 GetImageEntropy(
const Image *,
double *,ExceptionInfo *),
174 GetImageExtrema(
const Image *,
size_t *,
size_t *,ExceptionInfo *),
175 GetImageMean(
const Image *,
double *,
double *,ExceptionInfo *),
176 GetImageKurtosis(
const Image *,
double *,
double *,ExceptionInfo *),
177 GetImageRange(
const Image *,
double *,
double *,ExceptionInfo *);
179#if defined(__cplusplus) || defined(c_plusplus)