19 #ifndef __itkFastMarchingImageFilterBase_h
20 #define __itkFastMarchingImageFilterBase_h
70 template<
typename TInput,
typename TOutput >
106 typedef typename Traits::NodePairContainerConstIterator
153 itkSetMacro(OverrideOutputInformation,
bool);
154 itkGetConstReferenceMacro(OverrideOutputInformation,
bool);
155 itkBooleanMacro(OverrideOutputInformation);
166 class InternalNodeStructure;
221 std::vector< InternalNodeStructure >& ioNodesUsed );
226 std::vector< InternalNodeStructure >& ioNeighbors )
const;
268 #include "itkFastMarchingImageFilterBase.hxx"
269 #endif // __itkFastMarchingImageFilterBase_h
unsigned char GetLabelValueForGivenNode(const NodeType &iNode) const
virtual void UpdateValue(OutputImageType *oImage, const NodeType &iValue)
Array< unsigned char > m_RotationIndices[4]
Traits::NodeType NodeType
bool CheckTopology(OutputImageType *oImage, const NodeType &iNode)
void SetLabelValueForGivenNode(const NodeType &iNode, const LabelType &iLabel)
unsigned int IsCriticalC2Configuration3D(const std::vector< bool > &) const
bool DoesVoxelChangeViolateStrictTopology(const NodeType &) const
OutputImageType::SpacingType OutputSpacingType
void InitializeOutput(OutputImageType *oImage)
virtual void UpdateNeighbors(OutputImageType *oImage, const NodeType &iNode)
virtual ~FastMarchingImageFilterBase()
OutputPointType m_OutputOrigin
Array< unsigned char > m_ReflectionIndices[2]
Superclass::InputDomainPointer InputImagePointer
OutputSpacingType m_OutputSpacing
Traits::NodePairContainerType NodePairContainerType
Fast Marching Method on Image.
Superclass::InputPixelType InputPixelType
FastMarchingImageFilterBase()
Superclass::OutputPixelType OutputPixelType
LabelImagePointer m_LabelImage
Array< unsigned char > m_C2Indices[8]
Superclass::OutputDomainPointer OutputImagePointer
FastMarchingImageFilterBase Self
bool IsCriticalC3Configuration2D(const std::vector< bool > &) const
SmartPointer< Self > Pointer
Traits::NodePairContainerPointer NodePairContainerPointer
Traits::NodePairType NodePairType
void GetInternalNodesUsed(OutputImageType *oImage, const NodeType &iNode, std::vector< InternalNodeStructure > &ioNodesUsed)
Superclass::OutputDomainType OutputImageType
Superclass::Traits Traits
static const unsigned int ImageDimension
OutputImageType::RegionType OutputRegionType
bool IsCriticalC1Configuration3D(const std::vector< bool > &) const
bool IsCriticalC2Configuration2D(const std::vector< bool > &) const
void InitializeIndices2D()
bool m_OverrideOutputInformation
ConnectedComponentImagePointer m_ConnectedComponentImage
Superclass::InputDomainType InputImageType
SizeValueType IdentifierType
LabelImageType::Pointer LabelImagePointer
NeighborhoodIterator< LabelImageType > NeighborhoodIteratorType
OutputImageType::SizeType OutputSizeType
Abstract class to solve an Eikonal based-equation using Fast Marching Method.
virtual void EnlargeOutputRequestedRegion(DataObject *output)
virtual void GenerateOutputInformation()
bool IsChangeWellComposed2D(const NodeType &) const
Traits::OutputDomainPointer OutputDomainPointer
IdentifierType GetTotalNumberOfNodes() const
Get the total number of nodes in the domain.
Image< unsigned char, ImageDimension > LabelImageType
Traits::InputDomainType InputDomainType
Traits::InputPixelType InputPixelType
Superclass::RadiusType RadiusType
const InputImageType * m_InputCache
OutputImageType::DirectionType OutputDirectionType
Array< unsigned char > m_C1Indices[12]
Traits::OutputPixelType OutputPixelType
void operator=(const Self &)
SmartPointer< const Self > ConstPointer
Image< unsigned int, ImageDimension > ConnectedComponentImageType
Traits::NodePairContainerConstIterator NodePairContainerConstIterator
FastMarchingTraits< TInput, TOutput > Traits
OutputRegionType m_OutputRegion
bool IsCriticalC1Configuration2D(const std::vector< bool > &) const
Traits::NodeType NodeType
OutputImageType::PointType OutputPointType
bool IsCriticalC4Configuration2D(const std::vector< bool > &) const
void InitializeIndices3D()
void SetOutputValue(OutputImageType *oDomain, const NodeType &iNode, const OutputPixelType &iValue)
Set the output value (front value) for a given node.
bool IsChangeWellComposed3D(const NodeType &) const
bool DoesVoxelChangeViolateWellComposedness(const NodeType &) const
OutputRegionType m_BufferedRegion
const OutputPixelType GetOutputValue(OutputImageType *oImage, const NodeType &iNode) const
NeighborhoodIteratorType::RadiusType NeighborhoodRadiusType
Superclass::LabelType LabelType
double Solve(OutputImageType *oImage, const NodeType &iNode, std::vector< InternalNodeStructure > &ioNeighbors) const
OutputDirectionType m_OutputDirection
Traits::LabelType LabelType
virtual void SetOutputSize(const OutputSizeType &size)
Traits::OutputDomainType OutputDomainType
Base class for all data objects in ITK.
Traits::InputDomainPointer InputDomainPointer
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
Templated n-dimensional image class.
ConnectedComponentImageType::Pointer ConnectedComponentImagePointer
virtual OutputSizeType GetOutputSize() const
FastMarchingBase< TInput, TOutput > Superclass