|
MagickCore
6.7.5
|
#include "MagickCore/studio.h"#include "MagickCore/artifact.h"#include "MagickCore/cache-view.h"#include "MagickCore/color-private.h"#include "MagickCore/enhance.h"#include "MagickCore/exception.h"#include "MagickCore/exception-private.h"#include "MagickCore/gem.h"#include "MagickCore/gem-private.h"#include "MagickCore/hashmap.h"#include "MagickCore/image.h"#include "MagickCore/image-private.h"#include "MagickCore/list.h"#include "MagickCore/magick.h"#include "MagickCore/memory_.h"#include "MagickCore/monitor-private.h"#include "MagickCore/morphology.h"#include "MagickCore/morphology-private.h"#include "MagickCore/option.h"#include "MagickCore/pixel-accessor.h"#include "MagickCore/prepress.h"#include "MagickCore/quantize.h"#include "MagickCore/registry.h"#include "MagickCore/semaphore.h"#include "MagickCore/splay-tree.h"#include "MagickCore/statistic.h"#include "MagickCore/string_.h"#include "MagickCore/string-private.h"#include "MagickCore/token.h"#include "MagickCore/utility.h"#include "MagickCore/utility-private.h"
Go to the source code of this file.
Defines | |
| #define | IsNan(a) ((a)!=(a)) |
| #define | Minimize(assign, value) assign=MagickMin(assign,value) |
| #define | Maximize(assign, value) assign=MagickMax(assign,value) |
| #define | KernelRank 3 |
| #define | KernelRank 3 |
| #define | MorphologyTag "Morphology/Image" |
Functions | |
| static double | MagickMin (const double x, const double y) |
| static double | MagickMax (const double x, const double y) |
| static void | CalcKernelMetaData (KernelInfo *) |
| static void | ExpandMirrorKernelInfo (KernelInfo *) |
| static void | ExpandRotateKernelInfo (KernelInfo *, const double) |
| static void | RotateKernelInfo (KernelInfo *, double) |
| static KernelInfo * | LastKernelInfo (KernelInfo *kernel) |
| static KernelInfo * | ParseKernelArray (const char *kernel_string) |
| static KernelInfo * | ParseKernelName (const char *kernel_string) |
| MagickExport KernelInfo * | AcquireKernelInfo (const char *kernel_string) |
| MagickExport KernelInfo * | AcquireKernelBuiltIn (const KernelInfoType type, const GeometryInfo *args) |
| MagickExport KernelInfo * | CloneKernelInfo (const KernelInfo *kernel) |
| MagickExport KernelInfo * | DestroyKernelInfo (KernelInfo *kernel) |
| static MagickBooleanType | SameKernelInfo (const KernelInfo *kernel1, const KernelInfo *kernel2) |
| static ssize_t | MorphologyPrimitive (const Image *image, Image *morphology_image, const MorphologyMethod method, const KernelInfo *kernel, const double bias, ExceptionInfo *exception) |
| static ssize_t | MorphologyPrimitiveDirect (Image *image, const MorphologyMethod method, const KernelInfo *kernel, ExceptionInfo *exception) |
| MagickPrivate Image * | MorphologyApply (const Image *image, const MorphologyMethod method, const ssize_t iterations, const KernelInfo *kernel, const CompositeOperator compose, const double bias, ExceptionInfo *exception) |
| MagickExport Image * | MorphologyImage (const Image *image, const MorphologyMethod method, const ssize_t iterations, const KernelInfo *kernel, ExceptionInfo *exception) |
| MagickExport void | ScaleGeometryKernelInfo (KernelInfo *kernel, const char *geometry) |
| MagickExport void | ScaleKernelInfo (KernelInfo *kernel, const double scaling_factor, const GeometryFlags normalize_flags) |
| MagickPrivate void | ShowKernelInfo (const KernelInfo *kernel) |
| MagickExport void | UnityAddKernelInfo (KernelInfo *kernel, const double scale) |
| MagickPrivate void | ZeroKernelNans (KernelInfo *kernel) |
| #define IsNan | ( | a | ) | ((a)!=(a)) |
Definition at line 99 of file morphology.c.
Referenced by SameKernelInfo(), MorphologyPrimitive(), MorphologyPrimitiveDirect(), ScaleKernelInfo(), ShowKernelInfo(), and ZeroKernelNans().
| #define KernelRank 3 |
Referenced by AcquireKernelBuiltIn().
| #define KernelRank 3 |
| #define Maximize | ( | assign, | |
| value | |||
| ) | assign=MagickMax(assign,value) |
Definition at line 113 of file morphology.c.
Referenced by ParseKernelArray(), CalcKernelMetaData(), and MorphologyPrimitive().
| #define Minimize | ( | assign, | |
| value | |||
| ) | assign=MagickMin(assign,value) |
Definition at line 112 of file morphology.c.
Referenced by ParseKernelArray(), CalcKernelMetaData(), MorphologyPrimitive(), and MorphologyPrimitiveDirect().
| #define MorphologyTag "Morphology/Image" |
Referenced by MorphologyPrimitive(), and MorphologyPrimitiveDirect().
| MagickExport KernelInfo* AcquireKernelBuiltIn | ( | const KernelInfoType | type, |
| const GeometryInfo * | args | ||
| ) |
Definition at line 946 of file morphology.c.
References UndefinedKernel, UserDefinedKernel, LaplacianKernel, SobelKernel, RobertsKernel, PrewittKernel, CompassKernel, KirschKernel, FreiChenKernel, EdgesKernel, CornersKernel, DiagonalsKernel, LineEndsKernel, LineJunctionsKernel, RidgesKernel, ConvexHullKernel, SkeletonKernel, ThinSEKernel, UnityKernel, GaussianKernel, DoGKernel, LoGKernel, BlurKernel, CometKernel, DiamondKernel, SquareKernel, RectangleKernel, OctagonKernel, DiskKernel, PlusKernel, CrossKernel, RingKernel, PeaksKernel, ChebyshevKernel, ManhattanKernel, EuclideanKernel, AcquireMagickMemory(), ResetMagickMemory(), _KernelInfo::minimum, _KernelInfo::maximum, _KernelInfo::angle, _KernelInfo::negative_range, _KernelInfo::positive_range, _KernelInfo::type, _KernelInfo::next, _KernelInfo::signature, MagickSignature, _KernelInfo::height, _KernelInfo::width, _KernelInfo::x, _KernelInfo::y, _KernelInfo::values, AcquireAlignedMemory(), DestroyKernelInfo(), _GeometryInfo::rho, _GeometryInfo::sigma, _GeometryInfo::xi, GetOptimalKernelWidth2D(), MagickEpsilon, Magick2PI, MagickPI, CalcKernelMetaData(), ScaleKernelInfo(), CorrelateNormalizeValue, GetOptimalKernelWidth1D(), KernelRank, MagickSQ2PI, RotateKernelInfo(), NormalizeValue, ParseKernelArray(), MagickSQ2, NoValue, AcquireKernelInfo(), _GeometryInfo::psi, ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), LastKernelInfo(), MagickMax(), and OctagonalKernel.
Referenced by ParseKernelName().
| MagickExport KernelInfo* AcquireKernelInfo | ( | const char * | kernel_string | ) |
Definition at line 488 of file morphology.c.
References MaxTextExtent, ParseKernelArray(), GetMagickToken(), ParseKernelName(), FormatLocaleFile(), DestroyKernelInfo(), LastKernelInfo(), and _KernelInfo::next.
Referenced by EdgeImage(), EmbossImage(), GaussianBlurImage(), SharpenImage(), and AcquireKernelBuiltIn().
| static void CalcKernelMetaData | ( | KernelInfo * | kernel | ) | [static] |
Definition at line 2414 of file morphology.c.
References _KernelInfo::minimum, _KernelInfo::maximum, _KernelInfo::negative_range, _KernelInfo::positive_range, _KernelInfo::width, _KernelInfo::height, _KernelInfo::values, MagickEpsilon, Minimize, and Maximize.
Referenced by AcquireKernelBuiltIn(), and UnityAddKernelInfo().
| MagickExport KernelInfo* CloneKernelInfo | ( | const KernelInfo * | kernel | ) |
Definition at line 2158 of file morphology.c.
References AcquireMagickMemory(), _KernelInfo::values, AcquireAlignedMemory(), _KernelInfo::width, _KernelInfo::height, DestroyKernelInfo(), and _KernelInfo::next.
Referenced by ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), MorphologyApply(), and MorphologyImage().
| MagickExport KernelInfo* DestroyKernelInfo | ( | KernelInfo * | kernel | ) |
Definition at line 2213 of file morphology.c.
References _KernelInfo::next, DestroyKernelInfo(), _KernelInfo::values, RelinquishAlignedMemory(), and RelinquishMagickMemory().
Referenced by EdgeImage(), EmbossImage(), GaussianBlurImage(), SharpenImage(), ParseKernelArray(), AcquireKernelInfo(), AcquireKernelBuiltIn(), CloneKernelInfo(), DestroyKernelInfo(), ExpandRotateKernelInfo(), MorphologyApply(), and MorphologyImage().
| static void ExpandMirrorKernelInfo | ( | KernelInfo * | kernel | ) |
Definition at line 2273 of file morphology.c.
References CloneKernelInfo(), RotateKernelInfo(), LastKernelInfo(), and _KernelInfo::next.
Referenced by ParseKernelArray(), ParseKernelName(), and AcquireKernelBuiltIn().
| static void ExpandRotateKernelInfo | ( | KernelInfo * | kernel, |
| const double | angle | ||
| ) |
Definition at line 2359 of file morphology.c.
References CloneKernelInfo(), RotateKernelInfo(), SameKernelInfo(), MagickTrue, LastKernelInfo(), _KernelInfo::next, and DestroyKernelInfo().
Referenced by ParseKernelArray(), ParseKernelName(), and AcquireKernelBuiltIn().
| static KernelInfo* LastKernelInfo | ( | KernelInfo * | kernel | ) | [inline, static] |
Definition at line 124 of file morphology.c.
References _KernelInfo::next.
Referenced by AcquireKernelInfo(), AcquireKernelBuiltIn(), ExpandMirrorKernelInfo(), and ExpandRotateKernelInfo().
| static double MagickMax | ( | const double | x, |
| const double | y | ||
| ) | [inline, static] |
Definition at line 108 of file morphology.c.
Referenced by AcquireKernelBuiltIn().
| static double MagickMin | ( | const double | x, |
| const double | y | ||
| ) | [inline, static] |
Definition at line 104 of file morphology.c.
| MagickPrivate Image* MorphologyApply | ( | const Image * | image, |
| const MorphologyMethod | method, | ||
| const ssize_t | iterations, | ||
| const KernelInfo * | kernel, | ||
| const CompositeOperator | compose, | ||
| const double | bias, | ||
| ExceptionInfo * | exception | ||
| ) |
Definition at line 3730 of file morphology.c.
References _Image::signature, MagickSignature, _KernelInfo::signature, _ExceptionInfo::signature, _Image::columns, _Image::rows, IsMagickTrue(), GetImageArtifact(), _Image::compose, MagickFalse, SmoothMorphology, OpenMorphology, OpenIntensityMorphology, TopHatMorphology, CloseMorphology, CloseIntensityMorphology, BottomHatMorphology, EdgeMorphology, HitAndMissMorphology, LightenCompositeOp, ThinningMorphology, ThickenMorphology, DistanceMorphology, VoronoiMorphology, MagickTrue, CloneImage(), SetImageStorageClass(), DirectClass, MorphologyPrimitiveDirect(), FormatLocaleFile(), CommandOptionToMnemonic(), MagickMorphologyOptions, SetImageAlphaChannel(), DeactivateAlphaChannel, CompositeImage(), CopyAlphaCompositeOp, UndefinedCompositeOp, NoCompositeOp, CorrelateMorphology, CloneKernelInfo(), RotateKernelInfo(), ErodeMorphology, EdgeInMorphology, DilateMorphology, EdgeOutMorphology, ErodeIntensityMorphology, DilateIntensityMorphology, ConvolveMorphology, FormatLocaleString(), MaxTextExtent, MorphologyPrimitive(), DifferenceCompositeOp, DestroyImage(), _KernelInfo::next, MagickComposeOptions, and DestroyKernelInfo().
Referenced by MorphologyImage().
| MagickExport Image* MorphologyImage | ( | const Image * | image, |
| const MorphologyMethod | method, | ||
| const ssize_t | iterations, | ||
| const KernelInfo * | kernel, | ||
| ExceptionInfo * | exception | ||
| ) |
Definition at line 4228 of file morphology.c.
References ConvolveMorphology, CorrelateMorphology, GetImageArtifact(), CloneKernelInfo(), DestroyKernelInfo(), ScaleGeometryKernelInfo(), IsMagickTrue(), ShowKernelInfo(), UndefinedCompositeOp, ParseCommandOption(), MagickComposeOptions, MagickFalse, MorphologyApply(), and _Image::bias.
| static ssize_t MorphologyPrimitive | ( | const Image * | image, |
| Image * | morphology_image, | ||
| const MorphologyMethod | method, | ||
| const KernelInfo * | kernel, | ||
| const double | bias, | ||
| ExceptionInfo * | exception | ||
| ) | [static] |
Definition at line 2500 of file morphology.c.
References _Image::signature, MagickSignature, _KernelInfo::signature, _ExceptionInfo::signature, MagickTrue, AcquireCacheView(), _Image::columns, _KernelInfo::width, _KernelInfo::x, _KernelInfo::y, ConvolveMorphology, DilateMorphology, DilateIntensityMorphology, _KernelInfo::height, ErodeMorphology, ErodeIntensityMorphology, HitAndMissMorphology, ThinningMorphology, ThickenMorphology, MagickFalse, GetCacheViewVirtualPixels(), _Image::rows, GetCacheViewAuthenticPixels(), SetPixelRed(), GetPixelRed(), GetPixelChannels(), SetPixelGreen(), GetPixelGreen(), SetPixelBlue(), GetPixelBlue(), _Image::colorspace, CMYKColorspace, SetPixelBlack(), GetPixelBlack(), _PixelInfo::red, _PixelInfo::green, _PixelInfo::blue, _PixelInfo::alpha, _PixelInfo::black, _KernelInfo::values, _Image::channel_mask, DefaultChannels, _Image::matte, IsNan, GetPixelAlpha(), GetPixelRedTraits(), UpdatePixelTrait, ClampToQuantum(), GetPixelGreenTraits(), GetPixelBlueTraits(), GetPixelBlackTraits(), GetPixelAlphaTraits(), SetPixelAlpha(), QuantumScale, MagickEpsilon, SyncCacheViewAuthenticPixels(), _Image::progress_monitor, SetImageProgress(), MorphologyTag, _Image::type, DestroyCacheView(), QuantumRange, Minimize, Maximize, GetPixelIntensity(), MorphologyPrimitiveDirect(), DistanceMorphology, and UndefinedMorphology.
Referenced by MorphologyApply().
| static ssize_t MorphologyPrimitiveDirect | ( | Image * | image, |
| const MorphologyMethod | method, | ||
| const KernelInfo * | kernel, | ||
| ExceptionInfo * | exception | ||
| ) | [static] |
Definition at line 3295 of file morphology.c.
References MagickTrue, _Image::signature, MagickSignature, _KernelInfo::signature, _ExceptionInfo::signature, _KernelInfo::x, _KernelInfo::y, DistanceMorphology, VoronoiMorphology, _KernelInfo::width, _KernelInfo::height, AcquireCacheView(), _Image::columns, _Image::rows, MagickFalse, GetCacheViewVirtualPixels(), GetCacheViewAuthenticPixels(), GetPixelInfo(), GetPixelInfoPixel(), _PixelInfo::alpha, QuantumRange, _KernelInfo::values, IsNan, Minimize, _PixelInfo::red, GetPixelRed(), GetPixelChannels(), _PixelInfo::green, GetPixelGreen(), _PixelInfo::blue, GetPixelBlue(), _Image::colorspace, CMYKColorspace, _PixelInfo::black, GetPixelAlpha(), GetPixelBlack(), SetPixelInfoPixel(), GetPixelRedTraits(), UpdatePixelTrait, SetPixelRed(), ClampToQuantum(), GetPixelGreenTraits(), SetPixelGreen(), GetPixelBlueTraits(), SetPixelBlue(), GetPixelBlackTraits(), SetPixelBlack(), GetPixelAlphaTraits(), _Image::matte, SetPixelAlpha(), SyncCacheViewAuthenticPixels(), _Image::progress_monitor, SetImageProgress(), MorphologyTag, and DestroyCacheView().
Referenced by MorphologyPrimitive(), and MorphologyApply().
| static KernelInfo* ParseKernelArray | ( | const char * | kernel_string | ) | [static] |
Definition at line 219 of file morphology.c.
References MaxTextExtent, AcquireQuantumMemory(), ResetMagickMemory(), _KernelInfo::minimum, _KernelInfo::maximum, _KernelInfo::angle, _KernelInfo::negative_range, _KernelInfo::positive_range, _KernelInfo::type, UserDefinedKernel, _KernelInfo::next, _KernelInfo::signature, MagickSignature, NoValue, SetGeometryInfo(), ParseGeometry(), WidthValue, _GeometryInfo::rho, _GeometryInfo::sigma, _KernelInfo::width, _KernelInfo::height, _GeometryInfo::xi, _GeometryInfo::psi, DestroyKernelInfo(), _KernelInfo::x, XValue, _KernelInfo::y, YValue, GetMagickToken(), _KernelInfo::values, AcquireAlignedMemory(), MagickHuge, LocaleCompare(), StringToDouble(), Minimize, Maximize, AreaValue, ExpandRotateKernelInfo(), GreaterValue, LessValue, and ExpandMirrorKernelInfo().
Referenced by AcquireKernelInfo(), and AcquireKernelBuiltIn().
| static KernelInfo* ParseKernelName | ( | const char * | kernel_string | ) | [static] |
Definition at line 376 of file morphology.c.
References MaxTextExtent, GetMagickToken(), ParseCommandOption(), MagickKernelOptions, MagickFalse, UserDefinedKernel, SetGeometryInfo(), ParseGeometry(), FormatLocaleFile(), _GeometryInfo::rho, _GeometryInfo::sigma, _GeometryInfo::xi, _GeometryInfo::psi, UnityKernel, WidthValue, SquareKernel, DiamondKernel, OctagonKernel, DiskKernel, PlusKernel, CrossKernel, HeightValue, RingKernel, XValue, RectangleKernel, YValue, ChebyshevKernel, ManhattanKernel, OctagonalKernel, EuclideanKernel, AspectValue, QuantumRange, PercentValue, AcquireKernelBuiltIn(), _KernelInfo::next, AreaValue, ExpandRotateKernelInfo(), GreaterValue, LessValue, and ExpandMirrorKernelInfo().
Referenced by AcquireKernelInfo().
| static void RotateKernelInfo | ( | KernelInfo * | kernel, |
| double | angle | ||
| ) |
Definition at line 4323 of file morphology.c.
References _KernelInfo::next, _KernelInfo::type, GaussianKernel, DoGKernel, LoGKernel, DiskKernel, PeaksKernel, LaplacianKernel, ChebyshevKernel, ManhattanKernel, EuclideanKernel, SquareKernel, DiamondKernel, PlusKernel, CrossKernel, BlurKernel, _KernelInfo::width, _KernelInfo::height, _KernelInfo::values, _KernelInfo::x, _KernelInfo::y, and _KernelInfo::angle.
Referenced by AcquireKernelBuiltIn(), ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), and MorphologyApply().
| static MagickBooleanType SameKernelInfo | ( | const KernelInfo * | kernel1, |
| const KernelInfo * | kernel2 | ||
| ) | [static] |
Definition at line 2331 of file morphology.c.
References _KernelInfo::width, _KernelInfo::height, _KernelInfo::x, _KernelInfo::y, MagickFalse, IsNan, _KernelInfo::values, MagickEpsilon, and MagickTrue.
Referenced by ExpandRotateKernelInfo().
| MagickExport void ScaleGeometryKernelInfo | ( | KernelInfo * | kernel, |
| const char * | geometry | ||
| ) |
Definition at line 4527 of file morphology.c.
References SetGeometryInfo(), ParseGeometry(), FormatLocaleFile(), _GeometryInfo::rho, _GeometryInfo::sigma, _GeometryInfo::xi, _GeometryInfo::psi, PercentValue, RhoValue, SigmaValue, ScaleKernelInfo(), and UnityAddKernelInfo().
Referenced by MorphologyImage().
| MagickExport void ScaleKernelInfo | ( | KernelInfo * | kernel, |
| const double | scaling_factor, | ||
| const GeometryFlags | normalize_flags | ||
| ) |
Definition at line 4632 of file morphology.c.
References _KernelInfo::next, NormalizeValue, _KernelInfo::positive_range, _KernelInfo::negative_range, MagickEpsilon, CorrelateNormalizeValue, _KernelInfo::width, _KernelInfo::height, IsNan, _KernelInfo::values, _KernelInfo::maximum, and _KernelInfo::minimum.
Referenced by AcquireKernelBuiltIn(), and ScaleGeometryKernelInfo().
| MagickPrivate void ShowKernelInfo | ( | const KernelInfo * | kernel | ) |
Definition at line 4718 of file morphology.c.
References _KernelInfo::next, FormatLocaleFile(), CommandOptionToMnemonic(), MagickKernelOptions, MagickEpsilon, GetMagickPrecision(), and IsNan.
| MagickExport void UnityAddKernelInfo | ( | KernelInfo * | kernel, |
| const double | scale | ||
| ) |
Definition at line 4797 of file morphology.c.
References _KernelInfo::next, UnityAddKernelInfo(), _KernelInfo::values, _KernelInfo::x, _KernelInfo::y, _KernelInfo::width, and CalcKernelMetaData().
Referenced by ScaleGeometryKernelInfo(), and UnityAddKernelInfo().
| MagickPrivate void ZeroKernelNans | ( | KernelInfo * | kernel | ) |
Definition at line 4836 of file morphology.c.
References _KernelInfo::next, ZeroKernelNans(), _KernelInfo::width, _KernelInfo::height, IsNan, and _KernelInfo::values.
Referenced by ZeroKernelNans().