]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/statistic.h
Update web pages
[imagemagick] / MagickCore / statistic.h
index 6df0cbdb46470192df4a62ff5ca7d5e14874dc99..2d8f9dca605163cc6026023a8f05e803ac8fdf90 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  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.
@@ -22,6 +22,9 @@
 extern "C" {
 #endif
 
+#define MaximumNumberOfImageMoments  8
+#define MaximumNumberOfPerceptualHashes  7
+
 typedef struct _ChannelStatistics
 {
   size_t
@@ -39,9 +42,32 @@ typedef struct _ChannelStatistics
     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,
@@ -67,6 +93,7 @@ typedef enum
   PoissonNoiseEvaluateOperator,
   PowEvaluateOperator,
   RightShiftEvaluateOperator,
+  RootMeanSquareEvaluateOperator,
   SetEvaluateOperator,
   SineEvaluateOperator,
   SubtractEvaluateOperator,
@@ -97,12 +124,19 @@ typedef enum
   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 *),
@@ -114,6 +148,7 @@ extern MagickExport MagickBooleanType
     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 *),