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
CloseMorphology, /* Erode then Dilate */
OpenIntensityMorphology, /* Pixel Pick using GreyScale Open */
CloseIntensityMorphology, /* Pixel Pick using GreyScale Close */
-/* Third-level Morphology methods */
+ 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 */
+ 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 */
} MorphologyMethod;
-typedef struct
+typedef struct KernelInfo
{
KernelInfoType
type;
- unsigned long
+ size_t
width,
height;
- long
+ ssize_t
x,
y;
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 *),
*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)