]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/statistic.h
Update web pages
[imagemagick] / MagickCore / statistic.h
index efcacaae7cc37c2a141247ed3eae617a75b14f2e..2d8f9dca605163cc6026023a8f05e803ac8fdf90 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2011 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
     depth;
 
   double
+    area,
     minima,
     maxima,
     sum,
@@ -38,42 +42,67 @@ 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,
+  AbsEvaluateOperator,
   AddEvaluateOperator,
+  AddModulusEvaluateOperator,
   AndEvaluateOperator,
+  CosineEvaluateOperator,
   DivideEvaluateOperator,
+  ExponentialEvaluateOperator,
+  GaussianNoiseEvaluateOperator,
+  ImpulseNoiseEvaluateOperator,
+  LaplacianNoiseEvaluateOperator,
   LeftShiftEvaluateOperator,
+  LogEvaluateOperator,
   MaxEvaluateOperator,
+  MeanEvaluateOperator,
+  MedianEvaluateOperator,
   MinEvaluateOperator,
+  MultiplicativeNoiseEvaluateOperator,
   MultiplyEvaluateOperator,
   OrEvaluateOperator,
+  PoissonNoiseEvaluateOperator,
+  PowEvaluateOperator,
   RightShiftEvaluateOperator,
+  RootMeanSquareEvaluateOperator,
   SetEvaluateOperator,
+  SineEvaluateOperator,
   SubtractEvaluateOperator,
-  XorEvaluateOperator,
-  PowEvaluateOperator,
-  LogEvaluateOperator,
-  ThresholdEvaluateOperator,
+  SumEvaluateOperator,
   ThresholdBlackEvaluateOperator,
+  ThresholdEvaluateOperator,
   ThresholdWhiteEvaluateOperator,
-  GaussianNoiseEvaluateOperator,
-  ImpulseNoiseEvaluateOperator,
-  LaplacianNoiseEvaluateOperator,
-  MultiplicativeNoiseEvaluateOperator,
-  PoissonNoiseEvaluateOperator,
   UniformNoiseEvaluateOperator,
-  CosineEvaluateOperator,
-  SineEvaluateOperator,
-  AddModulusEvaluateOperator,
-  MeanEvaluateOperator,
-  AbsEvaluateOperator,
-  ExponentialEvaluateOperator,
-  MedianEvaluateOperator
+  XorEvaluateOperator
 } MagickEvaluateOperator;
 
 typedef enum
@@ -85,17 +114,41 @@ typedef enum
   ArctanFunction
 } MagickFunction;
 
+typedef enum
+{
+  UndefinedStatistic,
+  GradientStatistic,
+  MaximumStatistic,
+  MeanStatistic,
+  MedianStatistic,
+  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 *);
+  *EvaluateImages(const Image *,const MagickEvaluateOperator,ExceptionInfo *),
+  *PolynomialImage(const Image *,const size_t,const double *,ExceptionInfo *),
+  *StatisticImage(const Image *,const StatisticType,const size_t,const size_t,
+    ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
   EvaluateImage(Image *,const MagickEvaluateOperator,const double,
     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 *),