18#ifndef itkMultiphaseSparseFiniteDifferenceImageFilter_h
19#define itkMultiphaseSparseFiniteDifferenceImageFilter_h
162template <
typename TInputImage,
163 typename TFeatureImage,
164 typename TOutputImage,
166 typename TIdCell =
unsigned int>
269 itkSetMacro(NumberOfLayers,
unsigned int);
270 itkGetConstMacro(NumberOfLayers,
unsigned int);
282 itkSetMacro(InterpolateSurfaceLocation,
bool);
283 itkGetConstMacro(InterpolateSurfaceLocation,
bool);
284 itkBooleanMacro(InterpolateSurfaceLocation);
357 inline virtual ValueType
363 return (value + dt * change);
469 unsigned int itkNotUsed(idx),
472 bool & itkNotUsed(status))
539#ifndef ITK_MANUAL_INSTANTIATION
540# include "itkMultiphaseSparseFiniteDifferenceImageFilter.hxx"
Templated n-dimensional image class.
SmartPointer< Self > Pointer
Control indentation during Print() invocation.
typename FeatureImageType::SpacingType FeatureSpacingType
typename InputImageType::IndexType InputIndexType
typename InputIndexType::IndexValueType InputIndexValueType
typename InputImageType::SpacingType InputSpacingType
typename InputImageType::SizeType InputSizeType
typename OutputImageType::RegionType OutputRegionType
IdCellType m_FunctionCount
TFeatureImage FeatureImageType
typename OutputImageType::IndexValueType OutputIndexValueType
typename OutputImageType::IndexType OutputIndexType
typename FiniteDifferenceFunctionType::Pointer FiniteDifferenceFunctionPointer
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
typename InputImageType::PointType InputPointType
static constexpr unsigned int ImageDimension
void SetFunctionCount(const IdCellType &n)
typename FeatureImageType::SizeType FeatureSizeType
typename OutputImageType::PixelType OutputPixelType
typename OutputImageType::SizeType OutputSizeType
TInputImage InputImageType
typename FeatureImageType::RegionType FeatureRegionType
typename OutputImageType::Pointer OutputImagePointer
typename InputImageType::OffsetValueType InputOffsetValueType
typename FeatureImageType::PointType FeaturePointType
typename InputImageType::PixelType InputPixelType
typename InputSizeType::SizeValueType InputSizeValueType
typename InputImageType::RegionType InputRegionType
typename FeatureImageType::Pointer FeatureImagePointer
TOutputImage OutputImageType
typename InputImageType::Pointer InputImagePointer
MultiphaseFiniteDifferenceImageFilter()
TFunction FiniteDifferenceFunctionType
typename FiniteDifferenceFunctionType::FloatOffsetType FiniteDifferenceFunctionFloatOffsetType
typename LayerListType::const_iterator LayerListConstIterator
TimeStepType CalculateChange() override
void PostProcessOutput() override
typename LayerType::Pointer LayerPointerType
ValueType m_IsoSurfaceValue
static constexpr unsigned int ImageDimension
typename NeighborListType::OffsetType OffsetType
void ApplyUpdate(TimeStepType dt) override
void InitializeIteration() override
typename OutputImageType::IndexType OutputIndexType
static const ValueType m_ValueZero
NeighborListType m_NeighborList
typename LayerType::ConstIterator LayerConstIterator
typename ZeroCrossingFilterType::Pointer ZeroCrossingFilterPointer
NeighborhoodAlgorithm::ImageBoundaryFacesCalculator< StatusImageType > BFCType
static const StatusType m_StatusNull
void PrintSelf(std::ostream &os, Indent indent) const override
ZeroCrossingImageFilter< InputImageType, InputImageType > ZeroCrossingFilterType
SmartPointer< Self > Pointer
void ConstructActiveLayer()
typename UpdateBufferType::const_iterator UpdateBufferConstIterator
void PropagateLayerValues(SparseDataStruct *sparsePtr, StatusType from, StatusType to, StatusType promote, int InOrOut)
MultiphaseSparseFiniteDifferenceImageFilter()
void ProcessStatusList(LayerType *InputList, LayerType *OutputList, StatusType ChangeToStatus, StatusType SearchForStatus)
bool m_BoundsCheckingActive
bool m_InterpolateSurfaceLocation
typename InputImageType::ValueType ValueType
Image< StatusType, Self::ImageDimension > StatusImageType
virtual void InitializeBackgroundPixels()
typename LayerListType::iterator LayerListIterator
static const StatusType m_StatusChanging
SparseFieldLevelSetNode< OutputIndexType > LayerNodeType
std::vector< ValueType > UpdateBufferType
void InitializeBackgroundConstants()
typename LayerNodeStorageType::Pointer LayerNodeStoragePointer
std::vector< SparseDataStruct * > m_SparseData
~MultiphaseSparseFiniteDifferenceImageFilter() override
virtual ValueType CalculateUpdateValue(const OutputIndexType &idx, const TimeStepType &dt, const ValueType &value, const ValueType &change)
std::vector< LayerPointerType > LayerListType
typename LayerType::Iterator LayerIterator
static const StatusType m_StatusBoundaryPixel
void AllocateUpdateBuffer() override
void PropagateAllLayerValues()
void Initialize() override
ValueType m_BackgroundValue
void UpdateActiveLayerValues(TimeStepType dt, LayerType *StatusUpList, LayerType *StatusDownList)
MultiphaseSparseFiniteDifferenceImageFilter Self
void ConstructLayer(SparseDataStruct *sparsePtr, StatusType from, StatusType to)
unsigned int m_RMSCounter
static const ValueType m_ValueOne
void PropagateFunctionLayerValues(unsigned int functionIndex)
static const StatusType m_StatusActiveChangingDown
void ProcessOutsideList(LayerType *OutsideList, StatusType ChangeToStatus)
void CopyInputToOutput() override
static const StatusType m_StatusActiveChangingUp
void InitializeActiveLayerValues()
SparseFieldLayer< LayerNodeType > LayerType
unsigned int m_NumberOfLayers
MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell > Superclass
SmartPointer< const Self > ConstPointer
SparseFieldCityBlockNeighborList< NeighborhoodIterator< OutputImageType > > NeighborListType
void SetFunctionCount(const IdCellType &n)
typename FiniteDifferenceFunctionType::TimeStepType TimeStepType
unsigned int m_CurrentFunctionIndex
static double m_ConstantGradientValue
virtual void UpdatePixel(unsigned int functionIndex, unsigned int idx, NeighborhoodIterator< InputImageType > &iterator, ValueType &newValue, bool &status)
ObjectStore< LayerNodeType > LayerNodeStorageType
std::vector< ValueType > m_PixelDistance
typename StatusImageType::Pointer StatusImagePointer
Defines iteration of a local N-dimensional neighborhood of pixels across an itk::Image.
A specialized memory management object for allocating and destroying contiguous blocks of objects.
SmartPointer< Self > Pointer
Implements transparent reference counting.
A convenience class for storing indices which reference neighbor pixels within a neighborhood.
typename NeighborhoodType::OffsetType OffsetType
A very simple linked list that is used to manage nodes in a layer of a sparse field level-set solver.
SmartPointer< Self > Pointer
SparseFieldLayerIterator< NodeType > Iterator
ConstSparseFieldLayerIterator< NodeType > ConstIterator
This filter finds the closest pixel to the zero-crossings (sign changes) in a signed itk::Image.
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
LayerNodeStoragePointer m_LayerNodeStore
UpdateBufferType m_UpdateBuffer
StatusImagePointer m_StatusImage
SparseDataStruct(const IdCellType &index)
Splits an image into a main region and several "face" regions which are used to handle computations o...