File indexing completed on 2025-01-18 10:01:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef MAGICKCORE_MORPHOLOGY_H
0019 #define MAGICKCORE_MORPHOLOGY_H
0020
0021 #include "MagickCore/geometry.h"
0022
0023 #if defined(__cplusplus) || defined(c_plusplus)
0024 extern "C" {
0025 #endif
0026
0027 typedef enum
0028 {
0029 UndefinedKernel,
0030 UnityKernel,
0031 GaussianKernel,
0032 DoGKernel,
0033 LoGKernel,
0034 BlurKernel,
0035 CometKernel,
0036 BinomialKernel,
0037 LaplacianKernel,
0038 SobelKernel,
0039 FreiChenKernel,
0040 RobertsKernel,
0041 PrewittKernel,
0042 CompassKernel,
0043 KirschKernel,
0044 DiamondKernel,
0045 SquareKernel,
0046 RectangleKernel,
0047 OctagonKernel,
0048 DiskKernel,
0049 PlusKernel,
0050 CrossKernel,
0051 RingKernel,
0052 PeaksKernel,
0053 EdgesKernel,
0054 CornersKernel,
0055 DiagonalsKernel,
0056 LineEndsKernel,
0057 LineJunctionsKernel,
0058 RidgesKernel,
0059 ConvexHullKernel,
0060 ThinSEKernel,
0061 SkeletonKernel,
0062 ChebyshevKernel,
0063 ManhattanKernel,
0064 OctagonalKernel,
0065 EuclideanKernel,
0066 UserDefinedKernel
0067 } KernelInfoType;
0068
0069 typedef enum
0070 {
0071 UndefinedMorphology,
0072
0073 ConvolveMorphology,
0074 CorrelateMorphology,
0075
0076 ErodeMorphology,
0077 DilateMorphology,
0078 ErodeIntensityMorphology,
0079 DilateIntensityMorphology,
0080 IterativeDistanceMorphology,
0081
0082 OpenMorphology,
0083 CloseMorphology,
0084 OpenIntensityMorphology,
0085 CloseIntensityMorphology,
0086 SmoothMorphology,
0087
0088 EdgeInMorphology,
0089 EdgeOutMorphology,
0090 EdgeMorphology,
0091 TopHatMorphology,
0092 BottomHatMorphology,
0093
0094 HitAndMissMorphology,
0095 ThinningMorphology,
0096 ThickenMorphology,
0097
0098 DistanceMorphology,
0099 VoronoiMorphology
0100 } MorphologyMethod;
0101
0102 typedef struct _KernelInfo
0103 {
0104 KernelInfoType
0105 type;
0106
0107 size_t
0108 width,
0109 height;
0110
0111 ssize_t
0112 x,
0113 y;
0114
0115 MagickRealType
0116 *values;
0117
0118 double
0119 minimum,
0120 maximum,
0121 negative_range,
0122 positive_range,
0123 angle;
0124
0125 struct _KernelInfo
0126 *next;
0127
0128 size_t
0129 signature;
0130 } KernelInfo;
0131
0132 extern MagickExport KernelInfo
0133 *AcquireKernelInfo(const char *,ExceptionInfo *),
0134 *AcquireKernelBuiltIn(const KernelInfoType,const GeometryInfo *,
0135 ExceptionInfo *),
0136 *CloneKernelInfo(const KernelInfo *),
0137 *DestroyKernelInfo(KernelInfo *);
0138
0139 extern MagickExport Image
0140 *MorphologyImage(const Image *,const MorphologyMethod,const ssize_t,
0141 const KernelInfo *,ExceptionInfo *);
0142
0143 extern MagickExport void
0144 ScaleGeometryKernelInfo(KernelInfo *,const char *),
0145 ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags),
0146 UnityAddKernelInfo(KernelInfo *,const double);
0147
0148 #if defined(__cplusplus) || defined(c_plusplus)
0149 }
0150 #endif
0151
0152 #endif