MagickCore  6.7.5
statistic.h
Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
00003   dedicated to making software imaging solutions freely available.
00004   
00005   You may not use this file except in compliance with the License.
00006   obtain a copy of the License at
00007   
00008     http://www.imagemagick.org/script/license.php
00009   
00010   Unless required by applicable law or agreed to in writing, software
00011   distributed under the License is distributed on an "AS IS" BASIS,
00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013   See the License for the specific language governing permissions and
00014   limitations under the License.
00015 
00016   MagickCore statistical methods.
00017 */
00018 #ifndef _MAGICKCORE_STATISTIC_H
00019 #define _MAGICKCORE_STATISTIC_H
00020 
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024 
00025 typedef struct _ChannelStatistics
00026 {
00027   size_t
00028     depth;
00029 
00030   double
00031     minima,
00032     maxima,
00033     sum,
00034     sum_squared,
00035     sum_cubed,
00036     sum_fourth_power,
00037     mean,
00038     variance,
00039     standard_deviation,
00040     kurtosis,
00041     skewness;
00042 } ChannelStatistics;
00043 
00044 typedef enum
00045 {
00046   UndefinedEvaluateOperator,
00047   AbsEvaluateOperator,
00048   AddEvaluateOperator,
00049   AddModulusEvaluateOperator,
00050   AndEvaluateOperator,
00051   CosineEvaluateOperator,
00052   DivideEvaluateOperator,
00053   ExponentialEvaluateOperator,
00054   GaussianNoiseEvaluateOperator,
00055   ImpulseNoiseEvaluateOperator,
00056   LaplacianNoiseEvaluateOperator,
00057   LeftShiftEvaluateOperator,
00058   LogEvaluateOperator,
00059   MaxEvaluateOperator,
00060   MeanEvaluateOperator,
00061   MedianEvaluateOperator,
00062   MinEvaluateOperator,
00063   MultiplicativeNoiseEvaluateOperator,
00064   MultiplyEvaluateOperator,
00065   OrEvaluateOperator,
00066   PoissonNoiseEvaluateOperator,
00067   PowEvaluateOperator,
00068   RightShiftEvaluateOperator,
00069   SetEvaluateOperator,
00070   SineEvaluateOperator,
00071   SubtractEvaluateOperator,
00072   SumEvaluateOperator,
00073   ThresholdBlackEvaluateOperator,
00074   ThresholdEvaluateOperator,
00075   ThresholdWhiteEvaluateOperator,
00076   UniformNoiseEvaluateOperator,
00077   XorEvaluateOperator
00078 } MagickEvaluateOperator;
00079 
00080 typedef enum
00081 {
00082   UndefinedFunction,
00083   PolynomialFunction,
00084   SinusoidFunction,
00085   ArcsinFunction,
00086   ArctanFunction
00087 } MagickFunction;
00088 
00089 typedef enum
00090 {
00091   UndefinedStatistic,
00092   GradientStatistic,
00093   MaximumStatistic,
00094   MeanStatistic,
00095   MedianStatistic,
00096   MinimumStatistic,
00097   ModeStatistic,
00098   NonpeakStatistic,
00099   StandardDeviationStatistic
00100 } StatisticType;
00101 
00102 extern MagickExport ChannelStatistics
00103   *GetImageStatistics(const Image *,ExceptionInfo *);
00104 
00105 extern MagickExport Image
00106   *EvaluateImages(const Image *,const MagickEvaluateOperator,ExceptionInfo *),
00107   *StatisticImage(const Image *,const StatisticType,const size_t,const size_t,
00108     ExceptionInfo *);
00109 
00110 extern MagickExport MagickBooleanType
00111   EvaluateImage(Image *,const MagickEvaluateOperator,const double,
00112     ExceptionInfo *),
00113   FunctionImage(Image *,const MagickFunction,const size_t,const double *,
00114     ExceptionInfo *),
00115   GetImageExtrema(const Image *,size_t *,size_t *,ExceptionInfo *),
00116   GetImageMean(const Image *,double *,double *,ExceptionInfo *),
00117   GetImageKurtosis(const Image *,double *,double *,ExceptionInfo *),
00118   GetImageRange(const Image *,double *,double *,ExceptionInfo *);
00119 
00120 #if defined(__cplusplus) || defined(c_plusplus)
00121 }
00122 #endif
00123 
00124 #endif