morphology.h file
Mathematical morphology operators and filters. See Morphological filtering.
Classes
-
class dip::
StructuringElement - Represents the shape and size of a structuring element.
Functions
-
void dip::
Dilation(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - Applies the dilation.
-
void dip::
Erosion(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - Applies the erosion with a standard structuring element.
-
void dip::
Closing(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - Applies the closing with a standard structuring element.
-
void dip::
Opening(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - Applies the opening with a standard structuring element.
-
void dip::
Tophat(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::String const& edgeType = S::TEXTURE, dip::String const& polarity = S::WHITE, dip::StringArray const& boundaryCondition = {}) - The Top-hat operator and its variants
-
void dip::
MorphologicalThreshold(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::String const& edgeType = S::TEXTURE, dip::StringArray const& boundaryCondition = {}) - A morphological smoothing filter
-
void dip::
MorphologicalGist(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::String const& edgeType = S::TEXTURE, dip::StringArray const& boundaryCondition = {}) - Morphological gist operator and its variants
-
void dip::
MorphologicalRange(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::String const& edgeType = S::TEXTURE, dip::StringArray const& boundaryCondition = {}) - A morphological edge detector
-
void dip::
MorphologicalGradientMagnitude(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - The morphological version of the gradient magnitude
-
void dip::
Lee(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::String const& edgeType = S::TEXTURE, dip::String const& sign = S::UNSIGNED, dip::StringArray const& boundaryCondition = {}) - A morphological edge detector
-
void dip::
MorphologicalSmoothing(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::String const& polarity = S::AVERAGE, dip::StringArray const& boundaryCondition = {}) - A morphological smoothing filter
-
void dip::
MorphologicalSharpening(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - A morphological sharpening filter
-
void dip::
MultiScaleMorphologicalGradient(dip::Image const& in, dip::Image& out, dip::uint upperSize = 9, dip::uint lowerSize = 3, dip::String const& filterShape = S::ELLIPTIC, dip::StringArray const& boundaryCondition = {}) - A morphological edge detector
-
void dip::
MorphologicalLaplace(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::StringArray const& boundaryCondition = {}) - The morphological version of the Laplace operator
-
void dip::
RankFilter(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::uint rank = 2, dip::String const& order = S::INCREASING, dip::StringArray const& boundaryCondition = {}) - Applies the rank-order filter.
-
void dip::
RankMinClosing(dip::Image const& in, dip::Image& out, dip::StructuringElement se = {}, dip::uint rank = 2, dip::StringArray const& boundaryCondition = {}) - Applies the rank-min closing, a closing that is somewhat robust to noise.
-
void dip::
RankMaxOpening(dip::Image const& in, dip::Image& out, dip::StructuringElement se = {}, dip::uint rank = 2, dip::StringArray const& boundaryCondition = {}) - Applies the rank-max opening, an opening that is somewhat robust to noise.
-
void dip::
Watershed(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::uint connectivity = 1, dip::dfloat maxDepth = 1, dip::uint maxSize = 0, dip::StringSet flags = {}) - Computes the watershed of
in
withinmask
, with on-line merging of regions. -
void dip::
SeededWatershed(dip::Image const& in, dip::Image const& seeds, dip::Image const& mask, dip::Image& out, dip::uint connectivity = 1, dip::dfloat maxDepth = 1, dip::uint maxSize = 0, dip::StringSet const& flags = {}) - Computes the watershed of
in
withinmask
, starting atseeds
, with on-line merging of regions. -
void dip::
CompactWatershed(dip::Image const& in, dip::Image const& seeds, dip::Image const& mask, dip::Image& out, dip::uint connectivity = 1, dip::dfloat compactness = 1.0, dip::StringSet const& flags = {}) - Computes the compact watershed of
in
withinmask
, starting atseeds
. -
void dip::
StochasticWatershed(dip::Image const& in, dip::Image& out, dip::Random& random, dip::uint nSeeds = 100, dip::uint nIterations = 50, dip::dfloat noise = 0, dip::String const& seeds = S::HEXAGONAL) - Computes the stochastic watershed of
in
. -
void dip::
StochasticWatershed(dip::Image const& in, dip::Image& out, dip::uint nSeeds = 100, dip::uint nIterations = 50, dip::dfloat noise = 0, dip::String const& seeds = S::HEXAGONAL) - Like above, using a default-initialized
dip::Random
object. -
void dip::
WatershedMinima(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::uint connectivity = 1, dip::dfloat maxDepth = 1, dip::uint maxSize = 0, dip::String const& output = S::BINARY) - Marks significant local minima.
-
void dip::
WatershedMaxima(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::uint connectivity = 1, dip::dfloat maxDepth = 1, dip::uint maxSize = 0, dip::String const& output = S::BINARY) - Marks significant local maxima.
-
void dip::
Minima(dip::Image const& in, dip::Image& out, dip::uint connectivity = 0, dip::String const& output = S::BINARY) - Marks local minima.
-
void dip::
Maxima(dip::Image const& in, dip::Image& out, dip::uint connectivity = 0, dip::String const& output = S::BINARY) - Marks local maxima.
-
void dip::
UpperSkeleton2D(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::String const& endPixelCondition = S::NATURAL) - Grey-value skeleton (2D only).
-
void dip::
MorphologicalReconstruction(dip::Image const& marker, dip::Image const& in, dip::Image& out, dip::uint connectivity = 0, dip::String const& direction = S::DILATION) - Reconstruction by dilation or erosion, also known as inf-reconstruction and sup-reconstruction
-
void dip::
LimitedMorphologicalReconstruction(dip::Image const& marker, dip::Image const& in, dip::Image& out, dip::dfloat maxDistance = 20, dip::uint connectivity = 0, dip::String const& direction = S::DILATION) - Reconstruction by dilation or erosion, but with a limited reach.
-
void dip::
HMinima(dip::Image const& in, dip::Image& out, dip::dfloat h, dip::uint connectivity = 0) - Computes the H-Minima filtered image
-
void dip::
HMaxima(dip::Image const& in, dip::Image& out, dip::dfloat h, dip::uint connectivity = 0) - Computes the H-Maxima filtered image
-
void dip::
ImposeMinima(dip::Image const& in, dip::Image const& marker, dip::Image& out, dip::uint connectivity = 0) - Impose minima.
-
void dip::
Leveling(dip::Image const& in, dip::Image const& marker, dip::Image& out, dip::uint connectivity = 0) - The leveling of
in
imposed bymarker
. -
void dip::
AreaOpening(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::uint filterSize, dip::uint connectivity = 0, dip::String const& polarity = S::OPENING) - Computes the area opening or closing. This is a parametric opening.
-
void dip::
AreaClosing(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::uint filterSize, dip::uint connectivity = 0) - Computes the area closing, calling
dip::AreaOpening
withpolarity="closing"
. -
void dip::
VolumeOpening(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::dfloat filterSize, dip::uint connectivity = 0, dip::String const& polarity = S::OPENING) - Computes the volume opening or closing. This is a parametric opening.
-
void dip::
VolumeClosing(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::dfloat filterSize, dip::uint connectivity = 0) - Computes the area closing, calling
dip::VolumeOpening
withpolarity="closing"
. -
void dip::
PathOpening(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::uint length = 7, dip::String const& polarity = S::OPENING, dip::StringSet const& mode = {}) - Applies a path opening or closing in all possible directions
-
void dip::
DirectedPathOpening(dip::Image const& in, dip::Image const& mask, dip::Image& out, dip::IntegerArray filterParam, dip::String const& polarity = S::OPENING, dip::StringSet const& mode = {}) - Applies a path opening or closing in a specific direction.
-
void dip::
OpeningByReconstruction(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::uint connectivity = 0, dip::StringArray const& boundaryCondition = {}) - Opening by reconstruction
-
void dip::
ClosingByReconstruction(dip::Image const& in, dip::Image& out, dip::StructuringElement const& se = {}, dip::uint connectivity = 0, dip::StringArray const& boundaryCondition = {}) - Closing by reconstruction
-
void dip::
AlternatingSequentialFilter(dip::Image const& in, dip::Image& out, dip::Range const& sizes = {3,7,2}, dip::String const& shape = S::ELLIPTIC, dip::String const& mode = S::STRUCTURAL, dip::String const& polarity = S::OPENCLOSE, dip::StringArray const& boundaryCondition = {}) - Alternating sequential filters for smoothing
-
void dip::
HitAndMiss(dip::Image const& in, dip::Image& out, dip::StructuringElement const& hit, dip::StructuringElement const& miss, dip::String const& mode = S::UNCONSTRAINED, dip::StringArray const& boundaryCondition = {}) - The Hit-and-Miss transform, uses two structuring elements,
hit
must be within the structures,miss
must be without. -
void dip::
HitAndMiss(dip::Image const& in, dip::Image& out, dip::Image const& se, dip::String const& mode = S::UNCONSTRAINED, dip::StringArray const& boundaryCondition = {}) - The Hit-and-Miss transform, uses a single structuring element in the form of a small image that has “hit”, “miss” and “don’t care” values.