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);
165 void PrintSelf(std::ostream & os,
Indent indent) const ITK_OVERRIDE;
175 bool m_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;
232 void InitializeIndices2D();
233 bool IsChangeWellComposed2D( const
NodeType& ) const;
234 bool IsCriticalC1Configuration2D( const std::bitset<9>& ) const;
235 bool IsCriticalC2Configuration2D( const std::bitset<9>& ) const;
236 bool IsCriticalC3Configuration2D( const std::bitset<9>& ) const;
237 bool IsCriticalC4Configuration2D( const std::bitset<9>& ) const;
239 Array<
unsigned char> m_RotationIndices[4];
240 Array<
unsigned char> m_ReflectionIndices[2];
243 void InitializeIndices3D();
244 bool IsCriticalC1Configuration3D( const std::bitset<8>& ) const;
245 unsigned int IsCriticalC2Configuration3D( const std::bitset<8>& ) const;
246 bool IsChangeWellComposed3D( const
NodeType& ) const;
248 Array<
unsigned char> m_C1Indices[12];
249 Array<
unsigned char> m_C2Indices[8];
252 bool DoesVoxelChangeViolateWellComposedness( const
NodeType& ) const;
253 bool DoesVoxelChangeViolateStrictTopology( const
NodeType& ) const;
263 #ifndef ITK_MANUAL_INSTANTIATION
264 #include "itkFastMarchingImageFilterBase.hxx"
267 #endif // itkFastMarchingImageFilterBase_h
Array class with size defined at construction time.
FixedArray< InternalNodeStructure, ImageDimension > InternalNodeStructureArray
Traits::NodeType NodeType
OutputImageType::SpacingType OutputSpacingType
Superclass::InputDomainPointer InputImagePointer
Traits::NodePairContainerType NodePairContainerType
Apply the Fast Marching method to solve an Eikonal equation on an 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.
ImageBaseType::DirectionType DirectionType
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
ImageBaseType::PointType PointType
Traits::InputDomainType InputDomainType
Superclass::RadiusType RadiusType
OutputImageType::DirectionType OutputDirectionType
Traits::OutputPixelType OutputPixelType
SmartPointer< const Self > ConstPointer
Image< unsigned int, ImageDimension > ConnectedComponentImageType
Traits::NodePairContainerConstIterator NodePairContainerConstIterator
Traits::NodeType NodeType
OutputImageType::PointType OutputPointType
Control indentation during Print() invocation.
ImageBaseType::SizeType SizeType
NeighborhoodIteratorType::RadiusType NeighborhoodRadiusType
Superclass::LabelType LabelType
Traits::LabelType LabelType
virtual void SetOutputSize(const OutputSizeType &size)
Traits::OutputDomainType OutputDomainType
Base class for all data objects in ITK.
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