19#ifndef itkFastMarchingImageFilterBase_h
20#define itkFastMarchingImageFilterBase_h
74template <
typename TInput,
typename TOutput>
84 using typename Superclass::Traits;
95 using typename Superclass::InputPixelType;
99 using typename Superclass::OutputPixelType;
112 using typename Superclass::LabelType;
114 static constexpr unsigned int ImageDimension = Traits::ImageDimension;
126 class InternalNodeStructure;
143 m_OutputRegion = size;
145 virtual OutputSizeType
148 return m_OutputRegion.GetSize();
158 itkSetMacro(OverrideOutputInformation,
bool);
159 itkGetConstReferenceMacro(OverrideOutputInformation,
bool);
160 itkBooleanMacro(OverrideOutputInformation);
179 bool m_OverrideOutputInformation{
false };
278#ifndef ITK_MANUAL_INSTANTIATION
279# include "itkFastMarchingImageFilterBase.hxx"
Base class for all data objects in ITK.
Abstract class to solve an Eikonal based-equation using Fast Marching Method.
typename FastMarchingTraits< TInput, TOutput >::SuperclassType Superclass
typename Traits::NodePairContainerType NodePairContainerType
typename Traits::NodePairContainerPointer NodePairContainerPointer
typename Traits::NodeType NodeType
typename Traits::NodePairType NodePairType
typename Traits::OutputPixelType OutputPixelType
typename Traits::LabelType LabelType
typename Traits::NodePairContainerConstIterator NodePairContainerConstIterator
Apply the Fast Marching method to solve an Eikonal equation on an image.
void InitializeOutput(OutputImageType *oImage) override
typename OutputImageType::RegionType OutputRegionType
typename Superclass::OutputDomainPointer OutputImagePointer
bool IsCriticalC1Configuration2D(const std::bitset< 9 > &) const
void InitializeIndices2D()
FastMarchingImageFilterBase()
typename Superclass::InputDomainPointer InputImagePointer
typename NeighborhoodIteratorType::RadiusType NeighborhoodRadiusType
~FastMarchingImageFilterBase() override=default
bool IsCriticalC1Configuration3D(const std::bitset< 8 > &) const
IdentifierType GetTotalNumberOfNodes() const override
Get the total number of nodes in the domain.
bool IsChangeWellComposed3D(const NodeType &) const
double Solve(OutputImageType *oImage, const NodeType &iNode, InternalNodeStructureArray &iNeighbors) const
void GetInternalNodesUsed(OutputImageType *oImage, const NodeType &iNode, InternalNodeStructureArray &ioNodesUsed)
unsigned char GetLabelValueForGivenNode(const NodeType &iNode) const override
typename ConnectedComponentImageType::Pointer ConnectedComponentImagePointer
unsigned int IsCriticalC2Configuration3D(const std::bitset< 8 > &) const
void SetLabelValueForGivenNode(const NodeType &iNode, const LabelType &iLabel) override
void SetOutputValue(OutputImageType *oImage, const NodeType &iNode, const OutputPixelType &iValue) override
typename Superclass::InputDomainType InputImageType
typename OutputImageType::PointType OutputPointType
bool IsChangeWellComposed2D(const NodeType &) const
const OutputPixelType GetOutputValue(OutputImageType *oImage, const NodeType &iNode) const override
virtual void SetOutputSize(const OutputSizeType &size)
void PrintSelf(std::ostream &os, Indent indent) const override
void EnlargeOutputRequestedRegion(DataObject *output) override
void UpdateNeighbors(OutputImageType *oImage, const NodeType &iNode) override
typename OutputImageType::DirectionType OutputDirectionType
bool IsCriticalC2Configuration2D(const std::bitset< 9 > &) const
virtual OutputSizeType GetOutputSize() const
typename LabelImageType::Pointer LabelImagePointer
bool IsCriticalC3Configuration2D(const std::bitset< 9 > &) const
bool CheckTopology(OutputImageType *oImage, const NodeType &iNode) override
bool DoesVoxelChangeViolateWellComposedness(const NodeType &) const
void GenerateOutputInformation() override
typename OutputImageType::SizeType OutputSizeType
void InitializeIndices3D()
typename OutputImageType::SpacingType OutputSpacingType
typename Superclass::OutputDomainType OutputImageType
bool IsCriticalC4Configuration2D(const std::bitset< 9 > &) const
void UpdateValue(OutputImageType *oImage, const NodeType &iNode) override
bool DoesVoxelChangeViolateStrictTopology(const NodeType &) const
Simulate a standard C array with copy semantics.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
SmartPointer< Self > Pointer
ImageBaseType::DirectionType DirectionType
ImageBaseType::RegionType RegionType
ImageBaseType::PointType PointType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType