]> granicus.if.org Git - imagemagick/blobdiff - magick/morphology.h
(no commit message)
[imagemagick] / magick / morphology.h
index 0129273bc0ba7db3552dbb5eea6c5dcfe24fbfda..f32df95fe336b14b3f546f85b0248123f3659ba9 100644 (file)
@@ -26,22 +26,40 @@ extern "C" {
 
 typedef enum
 {
-  UndefinedKernel,    /* also the 'no-op' kernel */
-  GaussianKernel,     /* Convolution Kernels */
+  UndefinedKernel,    /* equivelent to UnityKernel */
+  UnityKernel,        /* The no-op or 'original image' kernel */
+  GaussianKernel,     /* Convolution Kernels, Gaussian Based */
+  DoGKernel,
+  LoGKernel,
   BlurKernel,
   CometKernel,
-  LaplacianKernel,
-  LOGKernel,
-  DOGKernel,
-  RectangleKernel,    /* Shape Kernels */
+  LaplacianKernel,    /* Convolution Kernels, by Name */
+  SobelKernel,
+  FreiChenKernel,
+  RobertsKernel,
+  PrewittKernel,
+  CompassKernel,
+  KirschKernel,
+  DiamondKernel,      /* Shape Kernels */
   SquareKernel,
-  DiamondKernel,
+  RectangleKernel,
   DiskKernel,
   PlusKernel,
+  CrossKernel,
+  RingKernel,
+  PeaksKernel,         /* Hit And Miss Kernels */
+  EdgesKernel,
+  CornersKernel,
+  ThinDiagonalsKernel,
+  LineEndsKernel,
+  LineJunctionsKernel,
+  RidgesKernel,
+  ConvexHullKernel,
+  SkeletonKernel,
   ChebyshevKernel,    /* Distance Measuring Kernels */
-  ManhattenKernel,
+  ManhattanKernel,
   EuclideanKernel,
-  UserDefinedKernel   /* user specified kernel values */
+  UserDefinedKernel   /* User Specified Kernel Array */
 } KernelInfoType;
 
 typedef enum
@@ -61,6 +79,7 @@ typedef enum
   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 */
@@ -73,16 +92,16 @@ typedef enum
   ThickenMorphology            /* Add matching pixels from image */
 } MorphologyMethod;
 
-typedef struct
+typedef struct KernelInfo
 {
   KernelInfoType
     type;
 
-  unsigned long
+  size_t
     width,
     height;
 
-  long
+  ssize_t
     x,
     y;
 
@@ -91,12 +110,17 @@ typedef struct
     minimum,
     maximum,
     negative_range,
-    positive_range;
+    positive_range,
+    angle;
 
-  unsigned long
+  struct KernelInfo
+    *next;
+
+  size_t
     signature;
 } KernelInfo;
 
+
 extern MagickExport KernelInfo
   *AcquireKernelInfo(const char *),
   *AcquireKernelBuiltIn(const KernelInfoType,const GeometryInfo *),
@@ -104,13 +128,13 @@ extern MagickExport KernelInfo
   *DestroyKernelInfo(KernelInfo *);
 
 extern MagickExport Image
-  *MorphologyImage(const Image *,const MorphologyMethod,const long,
+  *MorphologyImage(const Image *,const MorphologyMethod,const ssize_t,
     const KernelInfo *,ExceptionInfo *),
   *MorphologyImageChannel(const Image *,const ChannelType,
-    const MorphologyMethod,const long,const KernelInfo *,ExceptionInfo *);
+    const MorphologyMethod,const ssize_t,const KernelInfo *,ExceptionInfo *);
 
 extern MagickExport void
-  ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags),
+  ScaleGeometryKernelInfo(KernelInfo *,const char *),
   ShowKernelInfo(KernelInfo *);
 
 #if defined(__cplusplus) || defined(c_plusplus)