19 #ifndef itkFastMarchingImageFilterBase_h
20 #define itkFastMarchingImageFilterBase_h
74 template<
typename TInput,
typename TOutput >
83 typedef typename Superclass::Traits
Traits;
110 typedef typename Traits::NodePairContainerConstIterator
115 itkStaticConstMacro( ImageDimension,
unsigned int, Traits::ImageDimension );
128 class InternalNodeStructure;
143 { m_OutputRegion = size; }
145 {
return m_OutputRegion.GetSize(); }
146 itkSetMacro(OutputRegion, OutputRegionType);
147 itkGetConstReferenceMacro(OutputRegion, OutputRegionType);
148 itkSetMacro(OutputSpacing, OutputSpacingType);
149 itkGetConstReferenceMacro(OutputSpacing, OutputSpacingType);
150 itkSetMacro(OutputDirection, OutputDirectionType);
151 itkGetConstReferenceMacro(OutputDirection, OutputDirectionType);
152 itkSetMacro(OutputOrigin, OutputPointType);
153 itkGetConstReferenceMacro(OutputOrigin, OutputPointType);
154 itkSetMacro(OverrideOutputInformation,
bool);
155 itkGetConstReferenceMacro(OverrideOutputInformation,
bool);
156 itkBooleanMacro(OverrideOutputInformation);
178 virtual void GenerateOutputInformation() ITK_OVERRIDE;
180 virtual
void EnlargeOutputRequestedRegion(
DataObject *output) ITK_OVERRIDE;
193 const
NodeType& iNode ) const ITK_OVERRIDE;
197 GetLabelValueForGivenNode( const
NodeType& iNode ) const ITK_OVERRIDE;
200 void SetLabelValueForGivenNode( const
NodeType& iNode,
205 const
NodeType& iNode ) ITK_OVERRIDE;
209 const
NodeType& iValue ) ITK_OVERRIDE;
213 const
NodeType& iNode ) ITK_OVERRIDE;
235 void InitializeIndices2D();
236 bool IsChangeWellComposed2D( const
NodeType& ) const;
237 bool IsCriticalC1Configuration2D( const std::bitset<9>& ) const;
238 bool IsCriticalC2Configuration2D( const std::bitset<9>& ) const;
239 bool IsCriticalC3Configuration2D( const std::bitset<9>& ) const;
240 bool IsCriticalC4Configuration2D( const std::bitset<9>& ) const;
242 Array<
unsigned char> m_RotationIndices[4];
243 Array<
unsigned char> m_ReflectionIndices[2];
246 void InitializeIndices3D();
247 bool IsCriticalC1Configuration3D( const std::bitset<8>& ) const;
248 unsigned int IsCriticalC2Configuration3D( const std::bitset<8>& ) const;
249 bool IsChangeWellComposed3D( const
NodeType& ) const;
251 Array<
unsigned char> m_C1Indices[12];
252 Array<
unsigned char> m_C2Indices[8];
255 bool DoesVoxelChangeViolateWellComposedness( const
NodeType& ) const;
256 bool DoesVoxelChangeViolateStrictTopology( const
NodeType& ) const;
263 void operator = ( const Self& );
267 #include "itkFastMarchingImageFilterBase.hxx"
268 #endif // itkFastMarchingImageFilterBase_h
Array class with size defined at construction time.
FixedArray< InternalNodeStructure, ImageDimension > InternalNodeStructureArray
Traits::NodeType NodeType
OutputImageType::SpacingType OutputSpacingType
OutputPointType m_OutputOrigin
Superclass::InputDomainPointer InputImagePointer
OutputSpacingType m_OutputSpacing
Traits::NodePairContainerType NodePairContainerType
Fast Marching Method on Image.
Superclass::InputPixelType InputPixelType
Superclass::OutputPixelType OutputPixelType
Superclass::OutputDomainPointer OutputImagePointer
FastMarchingImageFilterBase Self
SmartPointer< Self > Pointer
Traits::NodePairContainerPointer NodePairContainerPointer
Traits::NodePairType NodePairType
Superclass::OutputDomainType OutputImageType
Superclass::Traits Traits
OutputImageType::RegionType OutputRegionType
Simulate a standard C array with copy semnatics.
bool m_OverrideOutputInformation
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.
Image< unsigned char, ImageDimension > LabelImageType
Traits::InputDomainType InputDomainType
Superclass::RadiusType RadiusType
OutputImageType::DirectionType OutputDirectionType
Traits::OutputPixelType OutputPixelType
Base class for all data objects in ITK.
SmartPointer< const Self > ConstPointer
Image< unsigned int, ImageDimension > ConnectedComponentImageType
Traits::NodePairContainerConstIterator NodePairContainerConstIterator
OutputRegionType m_OutputRegion
Traits::NodeType NodeType
OutputImageType::PointType OutputPointType
OutputRegionType m_BufferedRegion
NeighborhoodIteratorType::RadiusType NeighborhoodRadiusType
Superclass::LabelType LabelType
OutputDirectionType m_OutputDirection
Traits::LabelType LabelType
virtual void SetOutputSize(const OutputSizeType &size)
Traits::OutputDomainType OutputDomainType
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