18 #ifndef itkMultiphaseSparseFiniteDifferenceImageFilter_h
19 #define itkMultiphaseSparseFiniteDifferenceImageFilter_h
176 template<
typename TInputImage,
typename TFeatureImage,
typename TOutputImage,
typename TFunction,
177 typename TIdCell =
unsigned int >
180 TFeatureImage, TOutputImage, TFunction, TIdCell >
187 TFeatureImage, TOutputImage, TFunction, TIdCell >
Superclass;
237 typedef typename FiniteDifferenceFunctionType::FloatOffsetType
285 itkSetMacro(NumberOfLayers,
unsigned int);
286 itkGetConstMacro(NumberOfLayers,
unsigned int);
291 itkGetConstMacro(IsoSurfaceValue,
ValueType);
298 itkSetMacro(InterpolateSurfaceLocation,
bool);
299 itkGetConstMacro(InterpolateSurfaceLocation,
bool);
321 #ifdef ITK_USE_CONCEPT_CHECKING
343 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
389 return ( value + dt * change );
475 virtual
void UpdatePixel(
unsigned int itkNotUsed(functionIndex),
unsigned int itkNotUsed(idx),
478 bool & itkNotUsed(status) ){}
547 #ifndef ITK_MANUAL_INSTANTIATION
548 #include "itkMultiphaseSparseFiniteDifferenceImageFilter.hxx"
std::vector< SparseDataStruct * > m_SparseData
virtual void PrintSelf(std::ostream &os, Indent indent) const override
FeatureImageType::SpacingType FeatureSpacingType
NeighborListType::OffsetType OffsetType
InputImageType::IndexType InputIndexType
ValueType m_IsoSurfaceValue
LayerType::ConstIterator LayerConstIterator
SmartPointer< const Self > ConstPointer
Superclass::InputPointType InputPointType
Superclass::InputSizeValueType InputSizeValueType
Superclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
unsigned int m_NumberOfLayers
SparseFieldLevelSetNode< OutputIndexType > LayerNodeType
void InterpolateSurfaceLocationOn()
bool m_InterpolateSurfaceLocation
unsigned int m_CurrentFunctionIndex
static const ValueType m_ValueZero
ValueType m_BackgroundValue
Superclass::OutputImageType OutputImageType
std::vector< ValueType > UpdateBufferType
Image< StatusType, itkGetStaticConstMacro(ImageDimension) > StatusImageType
virtual void InitializeBackgroundPixels()
void InitializeActiveLayerValues()
static const ValueType m_ValueOne
TOutputImage OutputImageType
Superclass::OutputPixelType OutputPixelType
TInputImage InputImageType
TimeStepType CalculateChange() override
FiniteDifferenceFunctionType::Pointer FiniteDifferenceFunctionPointer
OutputImageType::RegionType OutputRegionType
void SetFunctionCount(const IdCellType &n)
A convenience class for storing indices which reference neighbor pixels within a neighborhood.
void ApplyUpdate(TimeStepType dt) override
static const unsigned int ImageDimension
void ConstructActiveLayer()
FeatureImageType::Pointer FeatureImagePointer
void PropagateLayerValues(SparseDataStruct *sparsePtr, StatusType from, StatusType to, StatusType promote, int InOrOut)
Superclass::OutputRegionType OutputRegionType
OutputImageType::Pointer OutputImagePointer
Superclass::InputImageType InputImageType
Superclass::OutputIndexValueType OutputIndexValueType
Superclass::FeatureSizeType FeatureSizeType
Superclass::FeaturePointType FeaturePointType
Superclass::OutputIndexType OutputIndexType
InputImageType::PixelType InputPixelType
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< StatusImageType > BFCType
Base class for all process objects that output image data.
NeighborListType m_NeighborList
The non-const version of the ConstSparseFieldLayerIterator.
FiniteDifferenceFunctionType::TimeStepType TimeStepType
void PropagateAllLayerValues()
unsigned int m_RMSCounter
Superclass::InputIndexValueType InputIndexValueType
OutputImageType::PixelType OutputPixelType
InputImageType::OffsetValueType InputOffsetValueType
virtual void UpdatePixel(unsigned int, unsigned int, NeighborhoodIterator< InputImageType > &, ValueType &, bool &)
static const StatusType m_StatusBoundaryPixel
void ProcessOutsideList(LayerType *OutsideList, StatusType ChangeToStatus)
virtual void SetInterpolateSurfaceLocation(bool _arg)
void ConstructLayer(SparseDataStruct *sparsePtr, StatusType from, StatusType to)
FiniteDifferenceFunctionType::FloatOffsetType FiniteDifferenceFunctionFloatOffsetType
LayerListType::const_iterator LayerListConstIterator
LayerNodeStoragePointer m_LayerNodeStore
void InitializeIteration() override
static double m_ConstantGradientValue
FeatureImageType::PointType FeaturePointType
Splits an image into a main region and several "face" regions which are used to handle computations o...
InputImageType::RegionType InputRegionType
TFunction FiniteDifferenceFunctionType
virtual void PostProcessOutput() override
InputImageType::Pointer InputImagePointer
void PropagateFunctionLayerValues(unsigned int functionIndex)
Superclass::FeatureImageType FeatureImageType
void SetFunctionCount(const IdCellType &n)
Superclass::FiniteDifferenceFunctionPointer FiniteDifferenceFunctionPointer
Superclass::InputSpacingType InputSpacingType
void InitializeBackgroundConstants()
Superclass::InputSizeType InputSizeType
InputImageType::SizeType InputSizeType
void ProcessStatusList(LayerType *InputList, LayerType *OutputList, StatusType ChangeToStatus, StatusType SearchForStatus)
void CopyInputToOutput() override
MultiphaseSparseFiniteDifferenceImageFilter Self
Superclass::FeatureImagePointer FeatureImagePointer
static const StatusType m_StatusActiveChangingDown
Superclass::InputOffsetValueType InputOffsetValueType
UpdateBufferType::const_iterator UpdateBufferConstIterator
InputSizeType::SizeValueType InputSizeValueType
Superclass::OutputImagePointer OutputImagePointer
void InterpolateSurfaceLocationOff()
IdCellType m_FunctionCount
virtual ValueType CalculateUpdateValue(const OutputIndexType &, const TimeStepType &dt, const ValueType &value, const ValueType &change)
void AllocateUpdateBuffer() override
ZeroCrossingImageFilter< InputImageType, InputImageType > ZeroCrossingFilterType
Superclass::IdCellType IdCellType
Superclass::OutputSizeType OutputSizeType
Superclass::InputPixelType InputPixelType
This class implements a finite difference partial differential equation solver for evolving surfaces ...
Superclass::FeatureRegionType FeatureRegionType
static const StatusType m_StatusNull
static const StatusType m_StatusChanging
MultiphaseSparseFiniteDifferenceImageFilter()
OutputImageType::IndexValueType OutputIndexValueType
FeatureImageType::RegionType FeatureRegionType
StatusImageType::Pointer StatusImagePointer
ZeroCrossingFilterType::Pointer ZeroCrossingFilterPointer
This filter finds the closest pixel to the zero-crossings (sign changes) in a signed itk::Image...
Superclass::InputImagePointer InputImagePointer
InputIndexType::IndexValueType InputIndexValueType
Control indentation during Print() invocation.
Superclass::InputRegionType InputRegionType
LayerType::Pointer LayerPointerType
MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell > Superclass
void UpdateActiveLayerValues(TimeStepType dt, LayerType *StatusUpList, LayerType *StatusDownList)
~MultiphaseSparseFiniteDifferenceImageFilter()
Superclass::TimeStepType TimeStepType
Superclass::InputIndexType InputIndexType
SparseFieldCityBlockNeighborList< NeighborhoodIterator< OutputImageType > > NeighborListType
OutputImageType::SizeType OutputSizeType
OutputImageType::IndexType OutputIndexType
void operator=(const Self &)
SparseDataStruct(const IdCellType &index)
A very simple linked list that is used to manage nodes in a layer of a sparse field level-set solver...
LayerType::Iterator LayerIterator
TFeatureImage FeatureImageType
LayerNodeStorageType::Pointer LayerNodeStoragePointer
#define itkConceptMacro(name, concept)
UpdateBufferType m_UpdateBuffer
A specialized memory management object for allocating and destroying contiguous blocks of objects...
LayerListType::iterator LayerListIterator
std::vector< LayerPointerType > LayerListType
InputImageType::PointType InputPointType
InputImageType::ValueType ValueType
std::vector< ValueType > m_PixelDistance
ObjectStore< LayerNodeType > LayerNodeStorageType
SparseFieldLayer< LayerNodeType > LayerType
static const StatusType m_StatusActiveChangingUp
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
Templated n-dimensional image class.
Superclass::FeatureSpacingType FeatureSpacingType
StatusImagePointer m_StatusImage
InputImageType::SpacingType InputSpacingType
void Initialize() override
static const unsigned int ImageDimension
FeatureImageType::SizeType FeatureSizeType
bool m_BoundsCheckingActive
SmartPointer< Self > Pointer