From cbac78bbec726017355cb455a776f193e7fc3022 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Sat, 8 Jan 2011 17:48:30 +0100 Subject: initial checkin --- dmagick/c/statistic.d | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 dmagick/c/statistic.d (limited to 'dmagick/c/statistic.d') diff --git a/dmagick/c/statistic.d b/dmagick/c/statistic.d new file mode 100644 index 0000000..b63a184 --- /dev/null +++ b/dmagick/c/statistic.d @@ -0,0 +1,86 @@ +module dmagick.c.statistic; + +import dmagick.c.exception; +import dmagick.c.image; +import dmagick.c.magickType; + +extern(C) +{ + struct ChannelStatistics + { + size_t + depth; + + double + minima, + maxima, + sum, + sum_squared, + sum_cubed, + sum_fourth_power, + mean, + variance, + standard_deviation, + kurtosis, + skewness; + } + + enum MagickEvaluateOperator + { + UndefinedEvaluateOperator, + AddEvaluateOperator, + AndEvaluateOperator, + DivideEvaluateOperator, + LeftShiftEvaluateOperator, + MaxEvaluateOperator, + MinEvaluateOperator, + MultiplyEvaluateOperator, + OrEvaluateOperator, + RightShiftEvaluateOperator, + SetEvaluateOperator, + SubtractEvaluateOperator, + XorEvaluateOperator, + PowEvaluateOperator, + LogEvaluateOperator, + ThresholdEvaluateOperator, + ThresholdBlackEvaluateOperator, + ThresholdWhiteEvaluateOperator, + GaussianNoiseEvaluateOperator, + ImpulseNoiseEvaluateOperator, + LaplacianNoiseEvaluateOperator, + MultiplicativeNoiseEvaluateOperator, + PoissonNoiseEvaluateOperator, + UniformNoiseEvaluateOperator, + CosineEvaluateOperator, + SineEvaluateOperator, + AddModulusEvaluateOperator, + MeanEvaluateOperator, + AbsEvaluateOperator + } + + enum MagickFunction + { + UndefinedFunction, + PolynomialFunction, + SinusoidFunction, + ArcsinFunction, + ArctanFunction + } + + ChannelStatistics* GetImageChannelStatistics(const Image*, ExceptionInfo*); + + Image* EvaluateImages(const Image*, const MagickEvaluateOperator, ExceptionInfo*); + + MagickBooleanType EvaluateImage(Image*, const MagickEvaluateOperator, const double, ExceptionInfo*); + MagickBooleanType EvaluateImageChannel(Image*, const ChannelType, const MagickEvaluateOperator, const double, ExceptionInfo*); + MagickBooleanType FunctionImage(Image*, const MagickFunction, const size_t, const double*, ExceptionInfo*); + MagickBooleanType FunctionImageChannel(Image*, const ChannelType, const MagickFunction, const size_t, const double*, ExceptionInfo*); + MagickBooleanType GetImageChannelExtrema(const Image*, const ChannelType, size_t*, size_t*, ExceptionInfo*); + MagickBooleanType GetImageChannelMean(const Image*, const ChannelType, double*, double*, ExceptionInfo*); + MagickBooleanType GetImageChannelKurtosis(const Image*, const ChannelType, double*, double*, ExceptionInfo*); + MagickBooleanType GetImageChannelRange(const Image*, const ChannelType, double*, double*, ExceptionInfo*); + MagickBooleanType GetImageExtrema(const Image*, size_t*, size_t*, ExceptionInfo*); + MagickBooleanType GetImageRange(const Image*, double*, double*, ExceptionInfo*); + MagickBooleanType GetImageMean(const Image*, double*, double*, ExceptionInfo*); + MagickBooleanType GetImageKurtosis(const Image*, double*, double*, ExceptionInfo*); +} -- cgit v1.2.3