#include <itkMultiphaseDenseFiniteDifferenceImageFilter.h>
This filter implements a layer of the finite difference solver hierarchy that performs "dense" iteration, ie. iteration over all pixels in the input and output at each change calculation and update step. Dense iteration is in contrast to a "sparse" iteration over a subset of the pixels. See documentation for FiniteDifferenceImageFilter for an overview of the iterative finite difference algorithm:
Based on the paper [22].
This code was taken from the Insight Journal paper [87] that is based on the papers [86] and [85].
Definition at line 86 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension |
![]() | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
static constexpr unsigned int | OutputImageDimension |
![]() | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
![]() | |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Protected Attributes | |
unsigned int | m_ReinitializeCounter {} |
![]() | |
std::vector< FiniteDifferenceFunctionPointer > | m_DifferenceFunctions |
unsigned int | m_ElapsedIterations |
IdCellType | m_FunctionCount |
KdTreePointer | m_KdTree |
std::vector< InputImagePointer > | m_LevelSet |
VectorIdCellType | m_Lookup |
double | m_MaximumRMSError |
unsigned int | m_NumberOfIterations |
double | m_RMSChange |
bool | m_UseImageSpacing |
![]() | |
bool | m_DynamicMultiThreading { true } |
![]() | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
Private Member Functions | |
void | AllocateUpdateBuffer () override |
TimeStepType | CalculateChange () override |
Private Attributes | |
std::vector< InputImagePointer > | m_UpdateBuffers {} |
Additional Inherited Members | |
![]() | |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
![]() | |
using | InputToOutputRegionCopierType |
using | OutputToInputRegionCopierType |
![]() | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
![]() | |
template<typename TSourceObject> | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::ConstPointer = SmartPointer<const Self> |
Definition at line 97 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FaceCalculatorType = NeighborhoodAlgorithm::ImageBoundaryFacesCalculator<InputImageType> |
Definition at line 151 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FaceListType = typename FaceCalculatorType::FaceListType |
Definition at line 152 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeatureImagePointer |
Definition at line 182 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeatureImageType |
Definition at line 181 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeaturePixelType |
Definition at line 187 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeaturePointType |
Definition at line 186 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeatureRegionType |
Definition at line 183 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeatureSizeType |
Definition at line 184 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FeatureSpacingType |
Definition at line 185 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FiniteDifferenceFunctionPointer |
Definition at line 205 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::FiniteDifferenceFunctionType |
The value type of the time step. This is distinct from PixelType because PixelType may often be a vector value, while the TimeStep is a scalar value.
Definition at line 204 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::IdCellType |
Definition at line 198 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputImagePointer |
Definition at line 165 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputImageType |
Input and output image types.
Definition at line 164 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputIndexType |
Definition at line 172 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputIndexValueType |
Definition at line 173 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputPixelType |
Definition at line 177 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputPointType |
Definition at line 166 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputRegionType |
Definition at line 176 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputSizeType |
Definition at line 174 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputSizeValueType |
Definition at line 175 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::InputSpacingType |
Definition at line 178 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::MaurerPointer = typename MaurerType::Pointer |
Definition at line 142 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::MaurerType = SignedMaurerDistanceMapImageFilter<InputImageType, InputImageType> |
Definition at line 141 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::NeighborhoodIteratorType = typename FiniteDifferenceFunctionType::NeighborhoodType |
Definition at line 146 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputImagePointer |
Definition at line 190 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputImageType |
Definition at line 189 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputIndexType |
Definition at line 195 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputIndexValueType |
Definition at line 196 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputPixelType = typename OutputImageType::PixelType |
Definition at line 134 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputRegionType |
Definition at line 192 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::OutputSizeType |
Definition at line 193 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::Pointer = SmartPointer<Self> |
Definition at line 96 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::Self = MultiphaseDenseFiniteDifferenceImageFilter |
Standard class type aliases
Definition at line 93 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::SizeValueType = typename Superclass::OutputSizeValueType |
Definition at line 131 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::Superclass |
Definition at line 94 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::ThresholdFilterPointer = typename ThresholdFilterType::Pointer |
Definition at line 139 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::ThresholdFilterType = BinaryThresholdImageFilter<InputImageType, InputImageType> |
Definition at line 138 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
using itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::TimeStepType |
Definition at line 206 of file itkMultiphaseFiniteDifferenceImageFilter.h.
using itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::ValueType = typename InputImageType::ValueType |
Definition at line 117 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
|
inlineprotected |
Definition at line 165 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
References m_ReinitializeCounter.
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
overrideprivatevirtual |
This method allocates storage in m_UpdateBuffer. It is called from Superclass::GenerateData().
|
overrideprotectedvirtual |
This method applies changes from the m_UpdateBuffer to the output using the ThreadedApplyUpdate() method and a multithreading mechanism. "dt" is the time step to use for the update of each pixel.
|
overrideprivatevirtual |
This method populates an update buffer with changes for each pixel in the output using the ThreadedCalculateChange() method and a multithreading mechanism. Returns value is a time step to be used for the update.
|
overrideprotectedvirtual |
A simple method to copy the data from the input to the output. ( Supports "read-only" image adaptors in the case where the input image type converts to a different output image type. )
|
overridevirtual |
Reimplemented from itk::InPlaceImageFilter< TFeatureImage, TOutputImage >.
Reimplemented in itk::ScalarChanAndVeseDenseLevelSetImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TSharedData >.
References MultiphaseDenseFiniteDifferenceImageFilter().
|
virtual |
|
overrideprotectedvirtual |
This method is called after the solution has been generated to allow subclasses to apply some further processing to the output.
Reimplemented from itk::MultiphaseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, unsigned int >.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::InPlaceImageFilter< TFeatureImage, TOutputImage >.
void itk::MultiphaseDenseFiniteDifferenceImageFilter< TInputImage, TFeatureImage, TOutputImage, TFunction, TIdCell >::SetFunctionCount | ( | const IdCellType & | n | ) |
|
virtual |
|
staticconstexpr |
Dimensionality of input and output data is assumed to be the same. It is inherited from the superclass.
Definition at line 104 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
|
protected |
Definition at line 192 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.
Referenced by MultiphaseDenseFiniteDifferenceImageFilter().
|
private |
The buffer that holds the updates for an iteration of the algorithm.
Definition at line 208 of file itkMultiphaseDenseFiniteDifferenceImageFilter.h.