]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/morphology.h
(no commit message)
[imagemagick] / MagickCore / morphology.h
index 7a74f1ae2b0dedf1702de917ce260123ca988b86..5d8239f0f72d9ed77c1ad842b7c3827a8d4dc127 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2013 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,7 +22,7 @@
 extern "C" {
 #endif
 
-#include <MagickCore/geometry.h>
+#include "MagickCore/geometry.h"
 
 typedef enum
 {
@@ -33,6 +33,7 @@ typedef enum
   LoGKernel,
   BlurKernel,
   CometKernel,
+  BinomialKernel,
   LaplacianKernel,    /* Convolution Kernels, by Name */
   SobelKernel,
   FreiChenKernel,
@@ -69,35 +70,36 @@ typedef enum
 {
   UndefinedMorphology,
 /* Convolve / Correlate weighted sums */
-  ConvolveMorphology,          /* Weighted Sum with reflected kernel */
-  CorrelateMorphology,         /* Weighted Sum using a sliding window */
+  ConvolveMorphology,           /* Weighted Sum with reflected kernel */
+  CorrelateMorphology,          /* Weighted Sum using a sliding window */
 /* Low-level Morphology methods */
-  ErodeMorphology,             /* Minimum Value in Neighbourhood */
-  DilateMorphology,            /* Maximum Value in Neighbourhood */
-  ErodeIntensityMorphology,    /* Pixel Pick using GreyScale Erode */
-  DilateIntensityMorphology,   /* Pixel Pick using GreyScale Dialate */
-  DistanceMorphology,          /* Add Kernel Value, take Minimum */
+  ErodeMorphology,              /* Minimum Value in Neighbourhood */
+  DilateMorphology,             /* Maximum Value in Neighbourhood */
+  ErodeIntensityMorphology,     /* Pixel Pick using GreyScale Erode */
+  DilateIntensityMorphology,    /* Pixel Pick using GreyScale Dialate */
+  IterativeDistanceMorphology,  /* Add Kernel Value, take Minimum */
 /* Second-level Morphology methods */
-  OpenMorphology,              /* Dilate then Erode */
-  CloseMorphology,             /* Erode then Dilate */
-  OpenIntensityMorphology,     /* Pixel Pick using GreyScale Open */
-  CloseIntensityMorphology,    /* Pixel Pick using GreyScale Close */
-  SmoothMorphology,            /* Open then Close */
+  OpenMorphology,               /* Dilate then Erode */
+  CloseMorphology,              /* Erode then Dilate */
+  OpenIntensityMorphology,      /* Pixel Pick using GreyScale Open */
+  CloseIntensityMorphology,     /* Pixel Pick using GreyScale Close */
+  SmoothMorphology,             /* Open then Close */
 /* Difference Morphology methods */
-  EdgeInMorphology,            /* Dilate difference from Original */
-  EdgeOutMorphology,           /* Erode difference from Original */
-  EdgeMorphology,              /* Dilate difference with Erode */
-  TopHatMorphology,            /* Close difference from Original */
-  BottomHatMorphology,         /* Open difference from Original */
+  EdgeInMorphology,             /* Dilate difference from Original */
+  EdgeOutMorphology,            /* Erode difference from Original */
+  EdgeMorphology,               /* Dilate difference with Erode */
+  TopHatMorphology,             /* Close difference from Original */
+  BottomHatMorphology,          /* Open difference from Original */
 /* Recursive Morphology methods */
-  HitAndMissMorphology,        /* Foreground/Background pattern matching */
-  ThinningMorphology,          /* Remove matching pixels from image */
-  ThickenMorphology,           /* Add matching pixels from image */
-/* Experimental Morphology methods */
-  VoronoiMorphology
+  HitAndMissMorphology,         /* Foreground/Background pattern matching */
+  ThinningMorphology,           /* Remove matching pixels from image */
+  ThickenMorphology,            /* Add matching pixels from image */
+/* Directly Applied Morphology methods */
+  DistanceMorphology,           /* Add Kernel Value, take Minimum */
+  VoronoiMorphology             /* Distance matte channel copy nearest color */
 } MorphologyMethod;
 
-typedef struct KernelInfo
+typedef struct _KernelInfo
 {
   KernelInfoType
     type;
@@ -110,16 +112,17 @@ typedef struct KernelInfo
     x,
     y;
 
+  MagickRealType
+    *values;
+
   double
-    *values,
     minimum,
     maximum,
     negative_range,
     positive_range,
-    angle,
-    bias;
+    angle;
 
-  struct KernelInfo
+  struct _KernelInfo
     *next;
 
   size_t
@@ -138,7 +141,8 @@ extern MagickExport Image
 
 extern MagickExport void
   ScaleGeometryKernelInfo(KernelInfo *,const char *),
-  ShowKernelInfo(KernelInfo *);
+  ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags),
+  UnityAddKernelInfo(KernelInfo *,const double);
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }