/*
- Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization
+ Copyright 1999-2015 ImageMagick Studio LLC, a non-profit organization
dedicated to making software imaging solutions freely available.
You may not use this file except in compliance with the License.
extern "C" {
#endif
+#define MaximumNumberOfImageMoments 8
+#define MaximumNumberOfPerceptualHashes 7
+
typedef struct _ChannelStatistics
{
size_t
variance,
standard_deviation,
kurtosis,
- skewness;
+ skewness,
+ entropy;
} ChannelStatistics;
+typedef struct _ChannelMoments
+{
+ double
+ invariant[MaximumNumberOfImageMoments+1];
+
+ PointInfo
+ centroid,
+ ellipse_axis;
+
+ double
+ ellipse_angle,
+ ellipse_eccentricity,
+ ellipse_intensity;
+} ChannelMoments;
+
+typedef struct _ChannelPerceptualHash
+{
+ double
+ srgb_hu_phash[MaximumNumberOfImageMoments+1],
+ hclp_hu_phash[MaximumNumberOfImageMoments+1];
+} ChannelPerceptualHash;
+
typedef enum
{
UndefinedEvaluateOperator,
PoissonNoiseEvaluateOperator,
PowEvaluateOperator,
RightShiftEvaluateOperator,
+ RootMeanSquareEvaluateOperator,
SetEvaluateOperator,
SineEvaluateOperator,
SubtractEvaluateOperator,
MinimumStatistic,
ModeStatistic,
NonpeakStatistic,
+ RootMeanSquareStatistic,
StandardDeviationStatistic
} StatisticType;
extern MagickExport ChannelStatistics
*GetImageStatistics(const Image *,ExceptionInfo *);
+extern MagickExport ChannelMoments
+ *GetImageMoments(const Image *,ExceptionInfo *);
+
+extern MagickExport ChannelPerceptualHash
+ *GetImagePerceptualHash(const Image *,ExceptionInfo *);
+
extern MagickExport Image
*EvaluateImages(const Image *,const MagickEvaluateOperator,ExceptionInfo *),
*PolynomialImage(const Image *,const size_t,const double *,ExceptionInfo *),
ExceptionInfo *),
FunctionImage(Image *,const MagickFunction,const size_t,const double *,
ExceptionInfo *),
+ GetImageEntropy(const Image *,double *,ExceptionInfo *),
GetImageExtrema(const Image *,size_t *,size_t *,ExceptionInfo *),
GetImageMean(const Image *,double *,double *,ExceptionInfo *),
GetImageKurtosis(const Image *,double *,double *,ExceptionInfo *),