MagickCore 6.9.12
|
#include "magick/studio.h"
#include "magick/artifact.h"
#include "magick/cache-view.h"
#include "magick/color-private.h"
#include "magick/channel.h"
#include "magick/enhance.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
#include "magick/gem.h"
#include "magick/hashmap.h"
#include "magick/image.h"
#include "magick/image-private.h"
#include "magick/list.h"
#include "magick/magick.h"
#include "magick/memory_.h"
#include "magick/memory-private.h"
#include "magick/monitor-private.h"
#include "magick/morphology.h"
#include "magick/morphology-private.h"
#include "magick/option.h"
#include "magick/pixel-private.h"
#include "magick/prepress.h"
#include "magick/quantize.h"
#include "magick/registry.h"
#include "magick/resource_.h"
#include "magick/semaphore.h"
#include "magick/splay-tree.h"
#include "magick/statistic.h"
#include "magick/string_.h"
#include "magick/string-private.h"
#include "magick/thread-private.h"
#include "magick/token.h"
#include "magick/utility.h"
Go to the source code of this file.
Macros | |
#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 size_t | fact (size_t n) |
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 *result_image, const MorphologyMethod method, const ChannelType channel, const KernelInfo *kernel, const double bias, ExceptionInfo *exception) |
static ssize_t | MorphologyPrimitiveDirect (Image *image, const MorphologyMethod method, const ChannelType channel, const KernelInfo *kernel, ExceptionInfo *exception) |
MagickExport Image * | MorphologyApply (const Image *image, const ChannelType channel, 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 Image * | MorphologyImageChannel (const Image *image, const ChannelType channel, 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) |
MagickExport void | ShowKernelInfo (const KernelInfo *kernel) |
MagickExport void | UnityAddKernelInfo (KernelInfo *kernel, const double scale) |
MagickExport void | ZeroKernelNans (KernelInfo *kernel) |
#define KernelRank 3 |
#define KernelRank 3 |
#define Maximize | ( | assign, | |
value | |||
) | assign=MagickMax(assign,value) |
Definition at line 92 of file morphology.c.
#define Minimize | ( | assign, | |
value | |||
) | assign=MagickMin(assign,value) |
Definition at line 91 of file morphology.c.
#define MorphologyTag "Morphology/Image" |
MagickExport KernelInfo * AcquireKernelBuiltIn | ( | const KernelInfoType | type, |
const GeometryInfo * | args | ||
) |
Definition at line 950 of file morphology.c.
References AcquireAlignedMemory(), AcquireKernelInfo(), AcquireMagickMemory(), KernelInfo::angle, BinomialKernel, BlurKernel, CalcKernelMetaData(), ChebyshevKernel, CometKernel, CompassKernel, ConvexHullKernel, CornersKernel, CorrelateNormalizeValue, CrossKernel, DestroyKernelInfo(), DiagonalsKernel, DiamondKernel, DiskKernel, DoGKernel, EdgesKernel, EuclideanKernel, ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), fact(), FreiChenKernel, GaussianKernel, GetOptimalKernelWidth1D(), GetOptimalKernelWidth2D(), KernelInfo::height, KernelRank, KirschKernel, LaplacianKernel, LastKernelInfo(), LineEndsKernel, LineJunctionsKernel, LoGKernel, Magick2PI, MagickAssumeAligned, MagickCoreSignature, MagickEpsilon, MagickMax, MagickPI, MagickSQ2, MagickSQ2PI, ManhattanKernel, KernelInfo::maximum, KernelInfo::minimum, KernelInfo::negative_range, KernelInfo::next, NormalizeValue, NoValue, OctagonalKernel, OctagonKernel, ParseKernelArray(), PeaksKernel, PlusKernel, KernelInfo::positive_range, PrewittKernel, _GeometryInfo::psi, RectangleKernel, _GeometryInfo::rho, RidgesKernel, RingKernel, RobertsKernel, RotateKernelInfo(), ScaleKernelInfo(), _GeometryInfo::sigma, KernelInfo::signature, SkeletonKernel, SobelKernel, SquareKernel, ThinSEKernel, KernelInfo::type, UndefinedKernel, UnityKernel, UserDefinedKernel, KernelInfo::values, KernelInfo::width, KernelInfo::x, _GeometryInfo::xi, and KernelInfo::y.
Referenced by ParseKernelName().
MagickExport KernelInfo * AcquireKernelInfo | ( | const char * | kernel_string | ) |
Definition at line 484 of file morphology.c.
References AcquireExceptionInfo(), DestroyExceptionInfo(), DestroyKernelInfo(), DestroyString(), FileToString(), GetNextToken(), LastKernelInfo(), MaxTextExtent, KernelInfo::next, ParseKernelArray(), and ParseKernelName().
Referenced by AcquireKernelBuiltIn(), BlurImageChannel(), CannyEdgeImage(), ConvolveImageChannel(), EdgeImage(), EmbossImage(), GaussianBlurImageChannel(), RecolorImage(), and SharpenImageChannel().
|
static |
Definition at line 2467 of file morphology.c.
References KernelInfo::height, MagickEpsilon, Maximize, KernelInfo::maximum, Minimize, KernelInfo::minimum, KernelInfo::negative_range, KernelInfo::positive_range, KernelInfo::values, and KernelInfo::width.
Referenced by AcquireKernelBuiltIn(), and UnityAddKernelInfo().
MagickExport KernelInfo * CloneKernelInfo | ( | const KernelInfo * | kernel | ) |
Definition at line 2196 of file morphology.c.
References AcquireAlignedMemory(), AcquireMagickMemory(), CloneKernelInfo(), DestroyKernelInfo(), KernelInfo::height, KernelInfo::next, KernelInfo::values, and KernelInfo::width.
Referenced by CloneKernelInfo(), ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), MorphologyApply(), and MorphologyImageChannel().
MagickExport KernelInfo * DestroyKernelInfo | ( | KernelInfo * | kernel | ) |
Definition at line 2252 of file morphology.c.
References DestroyKernelInfo(), KernelInfo::next, RelinquishAlignedMemory(), RelinquishMagickMemory(), and KernelInfo::values.
Referenced by AcquireKernelBuiltIn(), AcquireKernelInfo(), BlurImageChannel(), CannyEdgeImage(), CloneKernelInfo(), ConvolveImageChannel(), DestroyKernelInfo(), EdgeImage(), EmbossImage(), ExpandRotateKernelInfo(), GaussianBlurImageChannel(), MorphologyApply(), MorphologyImageChannel(), ParseKernelArray(), RecolorImage(), and SharpenImageChannel().
static void ExpandMirrorKernelInfo | ( | KernelInfo * | kernel | ) |
Definition at line 2312 of file morphology.c.
References CloneKernelInfo(), LastKernelInfo(), KernelInfo::next, and RotateKernelInfo().
Referenced by AcquireKernelBuiltIn(), ParseKernelArray(), and ParseKernelName().
static void ExpandRotateKernelInfo | ( | KernelInfo * | kernel, |
const double | angle | ||
) |
Definition at line 2405 of file morphology.c.
References CloneKernelInfo(), DestroyKernelInfo(), DisableMSCWarning, LastKernelInfo(), MagickFalse, KernelInfo::next, RestoreMSCWarning, RotateKernelInfo(), and SameKernelInfo().
Referenced by AcquireKernelBuiltIn(), ParseKernelArray(), and ParseKernelName().
|
inlinestatic |
Definition at line 96 of file morphology.c.
Referenced by AcquireKernelBuiltIn().
|
inlinestatic |
Definition at line 118 of file morphology.c.
References KernelInfo::next.
Referenced by AcquireKernelBuiltIn(), AcquireKernelInfo(), ExpandMirrorKernelInfo(), and ExpandRotateKernelInfo().
MagickExport Image * MorphologyApply | ( | const Image * | image, |
const ChannelType | channel, | ||
const MorphologyMethod | method, | ||
const ssize_t | iterations, | ||
const KernelInfo * | kernel, | ||
const CompositeOperator | compose, | ||
const double | bias, | ||
ExceptionInfo * | exception | ||
) |
Definition at line 3848 of file morphology.c.
References BottomHatMorphology, CloneImage(), CloneKernelInfo(), CloseIntensityMorphology, CloseMorphology, _Image::columns, CommandOptionToMnemonic(), _Image::compose, CompositeImageChannel(), ConvolveMorphology, CopyOpacityCompositeOp, CorrelateMorphology, DeactivateAlphaChannel, DefaultChannels, DestroyImage(), DestroyKernelInfo(), DifferenceCompositeOp, DilateIntensityMorphology, DilateMorphology, DirectClass, DistanceMorphology, EdgeInMorphology, EdgeMorphology, EdgeOutMorphology, ErodeIntensityMorphology, ErodeMorphology, _Image::exception, FormatLocaleFile(), FormatLocaleString(), GetImageArtifact(), HitAndMissMorphology, InheritException(), IsMagickTrue(), LightenCompositeOp, MagickComposeOptions, MagickCoreSignature, MagickFalse, MagickMorphologyOptions, MagickTrue, MaxTextExtent, MorphologyPrimitive(), MorphologyPrimitiveDirect(), KernelInfo::next, NoCompositeOp, OpenIntensityMorphology, OpenMorphology, RotateKernelInfo(), _Image::rows, SetImageAlphaChannel(), SetImageStorageClass(), _ExceptionInfo::signature, _Image::signature, KernelInfo::signature, SmoothMorphology, ThickenMorphology, ThinningMorphology, TopHatMorphology, UndefinedCompositeOp, and VoronoiMorphology.
Referenced by MorphologyImageChannel().
MagickExport Image * MorphologyImage | ( | const Image * | image, |
const MorphologyMethod | method, | ||
const ssize_t | iterations, | ||
const KernelInfo * | kernel, | ||
ExceptionInfo * | exception | ||
) |
Definition at line 4356 of file morphology.c.
References DefaultChannels, and MorphologyImageChannel().
MagickExport Image * MorphologyImageChannel | ( | const Image * | image, |
const ChannelType | channel, | ||
const MorphologyMethod | method, | ||
const ssize_t | iterations, | ||
const KernelInfo * | kernel, | ||
ExceptionInfo * | exception | ||
) |
Definition at line 4368 of file morphology.c.
References _Image::bias, CloneKernelInfo(), ConvolveMorphology, CorrelateMorphology, DestroyKernelInfo(), _Image::filename, GetImageArtifact(), GetMagickModule, IsEventLogging(), IsMagickTrue(), LogMagickEvent(), MagickComposeOptions, MagickCoreSignature, MagickFalse, MorphologyApply(), ParseCommandOption(), QuantumRange, ScaleGeometryKernelInfo(), ShowKernelInfo(), _ExceptionInfo::signature, _Image::signature, StringToDoubleInterval(), TraceEvent, and UndefinedCompositeOp.
Referenced by BlurImageChannel(), CannyEdgeImage(), ConvolveImageChannel(), EdgeImage(), EmbossImage(), GaussianBlurImageChannel(), MorphologyImage(), and SharpenImageChannel().
|
static |
Definition at line 2559 of file morphology.c.
References AcquireAuthenticCacheView(), AcquireQuantumMemory(), AcquireVirtualCacheView(), _DoublePixelPacket::blue, BlueChannel, ClampToQuantum(), CMYKColorspace, _Image::colorspace, _Image::columns, ConvolveMorphology, DestroyCacheView(), DilateIntensityMorphology, DilateMorphology, ErodeIntensityMorphology, ErodeMorphology, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetCacheViewVirtualIndexQueue(), GetCacheViewVirtualPixels(), GetOpenMPMaximumThreads(), GetOpenMPThreadId(), GetPixelBlue, GetPixelGreen, GetPixelIndex, GetPixelIntensity(), GetPixelOpacity, GetPixelRed, _DoublePixelPacket::green, GreenChannel, KernelInfo::height, HitAndMissMorphology, _DoublePixelPacket::index, IndexChannel, IsNaN, IterativeDistanceMorphology, magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, Maximize, Minimize, MorphologyTag, _DoublePixelPacket::opacity, OpacityChannel, PerceptibleReciprocal(), _Image::progress_monitor, QuantumRange, QuantumScale, _DoublePixelPacket::red, RedChannel, RelinquishMagickMemory(), ResourceLimitFatalError, _Image::rows, SetImageProgress(), SetPixelAlpha, SetPixelBlue, SetPixelGreen, SetPixelIndex, SetPixelOpacity, SetPixelRed, _ExceptionInfo::signature, _Image::signature, KernelInfo::signature, SyncCacheViewAuthenticPixels(), SyncChannels, ThickenMorphology, ThinningMorphology, ThrowFatalException, _Image::type, UndefinedMorphology, KernelInfo::values, KernelInfo::width, KernelInfo::x, and KernelInfo::y.
Referenced by MorphologyApply().
|
static |
Definition at line 3387 of file morphology.c.
References AcquireAuthenticCacheView(), AcquireVirtualCacheView(), _MagickPixelPacket::blue, BlueChannel, ClampToQuantum(), CMYKColorspace, _Image::colorspace, _Image::columns, DestroyCacheView(), DistanceMorphology, GetCacheViewAuthenticIndexQueue(), GetCacheViewAuthenticPixels(), GetCacheViewVirtualIndexQueue(), GetCacheViewVirtualPixels(), GetMagickPixelPacket(), GetPixelBlue, GetPixelGreen, GetPixelIndex, GetPixelOpacity, GetPixelRed, _MagickPixelPacket::green, GreenChannel, KernelInfo::height, _MagickPixelPacket::index, IndexChannel, IsNaN, magick_restrict, MagickCoreSignature, MagickFalse, MagickTrue, _Image::matte, Minimize, MorphologyTag, _MagickPixelPacket::opacity, OpacityChannel, _Image::progress_monitor, QuantumRange, _MagickPixelPacket::red, RedChannel, _Image::rows, SetImageProgress(), SetMagickPixelPacket(), SetPixelAlpha, SetPixelBlue, SetPixelGreen, SetPixelIndex, SetPixelPacket(), SetPixelRed, _ExceptionInfo::signature, _Image::signature, KernelInfo::signature, SyncCacheViewAuthenticPixels(), KernelInfo::values, VoronoiMorphology, KernelInfo::width, KernelInfo::x, and KernelInfo::y.
Referenced by MorphologyApply().
|
static |
Definition at line 213 of file morphology.c.
References AcquireAlignedMemory(), AcquireMagickMemory(), KernelInfo::angle, AreaValue, DestroyKernelInfo(), ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), GetNextToken(), GreaterValue, KernelInfo::height, LessValue, LocaleCompare(), MagickAssumeAligned, MagickCoreSignature, MagickMaximumValue, Maximize, KernelInfo::maximum, MaxTextExtent, Minimize, KernelInfo::minimum, KernelInfo::negative_range, KernelInfo::next, NoValue, ParseGeometry(), KernelInfo::positive_range, _GeometryInfo::psi, _GeometryInfo::rho, SetGeometryInfo(), _GeometryInfo::sigma, KernelInfo::signature, StringToDouble(), KernelInfo::type, UserDefinedKernel, KernelInfo::values, KernelInfo::width, WidthValue, KernelInfo::x, _GeometryInfo::xi, XValue, KernelInfo::y, and YValue.
Referenced by AcquireKernelBuiltIn(), and AcquireKernelInfo().
|
static |
Definition at line 372 of file morphology.c.
References AcquireKernelBuiltIn(), AreaValue, AspectValue, ChebyshevKernel, CrossKernel, DiamondKernel, DiskKernel, EuclideanKernel, ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), FormatLocaleFile(), GetNextToken(), GreaterValue, HeightValue, LessValue, MagickFalse, MagickKernelOptions, ManhattanKernel, MaxTextExtent, KernelInfo::next, OctagonalKernel, OctagonKernel, ParseCommandOption(), ParseGeometry(), PercentValue, PlusKernel, _GeometryInfo::psi, QuantumRange, RectangleKernel, _GeometryInfo::rho, RingKernel, SetGeometryInfo(), _GeometryInfo::sigma, SquareKernel, UnityKernel, UserDefinedKernel, WidthValue, _GeometryInfo::xi, XValue, and YValue.
Referenced by AcquireKernelInfo().
static void RotateKernelInfo | ( | KernelInfo * | kernel, |
double | angle | ||
) |
Definition at line 4477 of file morphology.c.
References KernelInfo::angle, BlurKernel, ChebyshevKernel, CrossKernel, DiamondKernel, DiskKernel, DoGKernel, EuclideanKernel, GaussianKernel, KernelInfo::height, LaplacianKernel, LoGKernel, ManhattanKernel, KernelInfo::next, PeaksKernel, PlusKernel, RotateKernelInfo(), SquareKernel, KernelInfo::type, KernelInfo::values, KernelInfo::width, KernelInfo::x, and KernelInfo::y.
Referenced by AcquireKernelBuiltIn(), ExpandMirrorKernelInfo(), ExpandRotateKernelInfo(), MorphologyApply(), and RotateKernelInfo().
|
static |
Definition at line 2377 of file morphology.c.
References KernelInfo::height, IsNaN, MagickEpsilon, MagickFalse, MagickTrue, KernelInfo::values, KernelInfo::width, KernelInfo::x, and KernelInfo::y.
Referenced by ExpandRotateKernelInfo().
MagickExport void ScaleGeometryKernelInfo | ( | KernelInfo * | kernel, |
const char * | geometry | ||
) |
Definition at line 4682 of file morphology.c.
References FormatLocaleFile(), ParseGeometry(), PercentValue, _GeometryInfo::psi, _GeometryInfo::rho, RhoValue, ScaleKernelInfo(), SetGeometryInfo(), _GeometryInfo::sigma, SigmaValue, UnityAddKernelInfo(), and _GeometryInfo::xi.
Referenced by MorphologyImageChannel().
MagickExport void ScaleKernelInfo | ( | KernelInfo * | kernel, |
const double | scaling_factor, | ||
const GeometryFlags | normalize_flags | ||
) |
Definition at line 4787 of file morphology.c.
References CorrelateNormalizeValue, KernelInfo::height, IsNaN, MagickEpsilon, KernelInfo::maximum, KernelInfo::minimum, KernelInfo::negative_range, KernelInfo::next, NormalizeValue, KernelInfo::positive_range, ScaleKernelInfo(), KernelInfo::values, and KernelInfo::width.
Referenced by AcquireKernelBuiltIn(), ScaleGeometryKernelInfo(), and ScaleKernelInfo().
MagickExport void ShowKernelInfo | ( | const KernelInfo * | kernel | ) |
Definition at line 4874 of file morphology.c.
References KernelInfo::angle, CommandOptionToMnemonic(), FormatLocaleFile(), GetMagickPrecision(), KernelInfo::height, IsNaN, MagickEpsilon, MagickKernelOptions, KernelInfo::maximum, KernelInfo::minimum, KernelInfo::negative_range, KernelInfo::next, KernelInfo::positive_range, KernelInfo::type, KernelInfo::values, KernelInfo::width, KernelInfo::x, and KernelInfo::y.
Referenced by MorphologyImageChannel().
MagickExport void UnityAddKernelInfo | ( | KernelInfo * | kernel, |
const double | scale | ||
) |
Definition at line 4954 of file morphology.c.
References CalcKernelMetaData(), KernelInfo::next, UnityAddKernelInfo(), KernelInfo::values, KernelInfo::width, KernelInfo::x, and KernelInfo::y.
Referenced by ScaleGeometryKernelInfo(), and UnityAddKernelInfo().
MagickExport void ZeroKernelNans | ( | KernelInfo * | kernel | ) |
Definition at line 4994 of file morphology.c.
References KernelInfo::height, IsNaN, KernelInfo::next, KernelInfo::values, KernelInfo::width, and ZeroKernelNans().
Referenced by ZeroKernelNans().