|
MagickCore
6.7.5
|
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