10#include "detail/SynchronizedResidualTreeEvolution.hpp"
15namespace mmcfilters::sdrt {
47 implementation_.build(
image, std::move(minTree), std::move(maxTree));
61 [[
nodiscard]] std::span<const NodeId>
parents()
const {
return implementation_.parents(); }
75 return std::move(implementation_).takeValidatedHierarchy(std::move(semantics));
79 detail::SynchronizedResidualTreeEvolution<Altitude, false> implementation_;
Minimal correctness-oriented diagnostics for residual-tree construction.
Public construction policies and option objects for residual trees.
Immutable regular-grid 2D adjacency with allocation-free traversal.
Total order over the pixels of one construction domain.
Builds the unrestricted residual tree from synchronized component trees.
void build(const ImagePointer &image, Tree &&minTree, Tree &&maxTree)
Consumes synchronized min-tree and max-tree seeds.
const SpatialOrder & spatialOrder() const noexcept
const ResidualTreeBuildStatistics & statistics() const
UnrestrictedResidualTreeBuilder(RegularGridAdjacency2D adjacency, UnrestrictedResidualTreeOptions options={})
Creates a reusable unrestricted builder from an extensible option object.
mmcfilters::detail::ValidatedNativeHierarchy< Altitude > takeValidatedHierarchy(MorphologicalTreeSemantics semantics) &&
Transfers the completed result into validated native storage.
T Altitude
Residual-node altitude type.
std::span< const NodeId > parents() const
std::span< const NodeId > smallestNodeMap() const
std::span< const Altitude > nodeAltitudes() const
const RegularGridAdjacency2D & adjacency() const noexcept
Owning result for one computed scalar attribute layout and buffer.
Immutable scientific interpretation attached to one morphological tree.
Diagnostics retained by the synchronized min-tree/max-tree builders.
Options that affect unrestricted residual-tree construction.