#include <itkFiniteDifferenceImageFilter.h>
Inheritance diagram for itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >:
Public Types | |
typedef FiniteDifferenceImageFilter | Self |
typedef ImageToImageFilter< TInputImage, TOutputImage > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef TInputImage | InputImageType |
typedef TOutputImage | OutputImageType |
typedef TOutputImage::PixelType | PixelType |
typedef FiniteDifferenceFunction< TOutputImage > | FiniteDifferenceFunctionType |
typedef FiniteDifferenceFunctionType::TimeStepType | TimeStepType |
enum | FilterStateType { UNINITIALIZED = 0, INITIALIZED = 1 } |
Public Member Functions | |
virtual const char * | GetClassName () const |
itkStaticConstMacro (ImageDimension, unsigned int, OutputImageType::ImageDimension) | |
virtual unsigned int | GetElapsedIterations () const |
virtual const FiniteDifferenceFunctionType::Pointer & | GetDifferenceFunction () const |
virtual void | SetDifferenceFunction (FiniteDifferenceFunctionType *_arg) |
void | SetStateToInitialized () |
void | SetStateToUninitialized () |
virtual void | SetNumberOfIterations (unsigned int _arg) |
virtual unsigned int | GetNumberOfIterations () |
virtual void | SetMaximumRMSError (double _arg) |
virtual double | GetMaximumRMSError () |
virtual void | SetRMSChange (double _arg) |
virtual double | GetRMSChange () |
virtual void | SetState (FilterStateType _arg) |
virtual FilterStateType | GetState () |
virtual void | SetManualReinitialization (bool _arg) |
virtual bool | GetManualReinitialization () |
virtual void | ManualReinitializationOn () |
virtual void | ManualReinitializationOff () |
Protected Member Functions | |
FiniteDifferenceImageFilter () | |
~FiniteDifferenceImageFilter () | |
void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | AllocateUpdateBuffer ()=0 |
virtual void | ApplyUpdate (TimeStepType dt)=0 |
virtual TimeStepType | CalculateChange ()=0 |
virtual void | CopyInputToOutput ()=0 |
virtual void | GenerateData () |
virtual void | GenerateInputRequestedRegion () |
virtual bool | Halt () |
virtual bool | ThreadedHalt (void *) |
virtual void | Initialize () |
virtual void | InitializeIteration () |
virtual TimeStepType | ResolveTimeStep (const TimeStepType *timeStepList, const bool *valid, int size) |
virtual void | SetElapsedIterations (unsigned int _arg) |
virtual void | PostProcessOutput () |
Protected Attributes | |
unsigned int | m_NumberOfIterations |
double | m_RMSChange |
double | m_MaximumRMSError |
WHILE NOT convergence: FOR ALL pixels i time_step = calculate_change(i) update(i, time_step)
Definition at line 122 of file itkFiniteDifferenceImageFilter.h.
|
|
|
|
|
|
|
|
|
|
Definition at line 153 of file itkFiniteDifferenceImageFilter.h. |
|
Definition at line 212 of file itkFiniteDifferenceImageFilter.h. |
|
Definition at line 222 of file itkFiniteDifferenceImageFilter.h. |
|
This method allocates a temporary update container in the subclass. Implemented in itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.
|
|
This method is defined by a subclass to apply changes to the output from an update buffer and a time step value "dt".
Implemented in itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.
|
|
This method is defined by a subclass to populate an update buffer with changes for the pixels in the output. It returns a time step value to be used for the update.
Implemented in itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.
|
|
This method can be defined in subclasses as needed to copy the input to the output. See DenseFiniteDifferenceImageFilter for an implementation. Implemented in itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >, and itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.
|
|
This is the default, high-level algorithm for calculating finite difference solutions. It calls virtual methods in its subclasses to implement the major steps of the algorithm. Reimplemented from itk::ImageSource< TOutputImage >.
Reimplemented in itk::AntiAliasBinaryImageFilter< TInputImage, TOutputImage >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, and itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >.
|
|
FiniteDifferenceImageFilter needs a larger input requested region than the output requested region. As such, we need to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, and itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.
|
|
|
This method returns a pointer to a FiniteDifferenceFunction object that will be used by the filter to calculate updates at image pixels.
|
|
Get the number of elapsed iterations of the filter. |
|
Require the filter to be manually reinitialized (by calling SetStateToUninitialized() |
|
Set/Get the maximum error allowed in the solution. This may not be defined for all solvers and its meaning may change with the application. |
|
Set/Get the number of iterations that the filter will run. |
|
Set/Get the root mean squared change of the previous iteration. May not be used by all solvers. |
|
Set/Get the state of the filter. |
|
This method returns true when the current iterative solution of the equation has met the criteria to stop solving. Defined by a subclass. Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >, and itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >.
|
|
This method is optionally defined by a subclass and is called before the loop of iterations of calculate_change & upate. It does the global initialization, i.e. in the SparseFieldLevelSetImageFilter, initialize the list of layers. Reimplemented in itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >. Definition at line 283 of file itkFiniteDifferenceImageFilter.h. |
|
|
Dimensionality of input and output data is assumed to be the same. |
|
Require the filter to be manually reinitialized (by calling SetStateToUninitialized() |
|
Require the filter to be manually reinitialized (by calling SetStateToUninitialized() |
|
This method is called after the solution has been generated to allow subclasses to apply some further processing to the output. Reimplemented in itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, and itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >. Definition at line 315 of file itkFiniteDifferenceImageFilter.h. |
|
|
Virtual method for resolving a single time step from a set of time steps returned from processing threads.
|
|
This method sets the pointer to a FiniteDifferenceFunction object that will be used by the filter to calculate updates at image pixels.
|
|
Set the number of elapsed iterations of the filter. |
|
Require the filter to be manually reinitialized (by calling SetStateToUninitialized() |
|
Set/Get the maximum error allowed in the solution. This may not be defined for all solvers and its meaning may change with the application. Reimplemented in itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >.
|
|
Set/Get the number of iterations that the filter will run. |
|
Set/Get the root mean squared change of the previous iteration. May not be used by all solvers. |
|
Set/Get the state of the filter. |
|
Set the state of the filter to INITIALIZED Definition at line 188 of file itkFiniteDifferenceImageFilter.h. |
|
Set the state of the filter to UNINITIALIZED Definition at line 194 of file itkFiniteDifferenceImageFilter.h. |
|
This method is similar to Halt(), and its default implementation in this class is simply to call Halt(). However, this method takes as a parameter a void pointer to the MultiThreader::ThreadInfoStruct structure. If you override this method instead of overriding Halt, you will be able to get the current thread ID and handle the Halt method accordingly. This is useful if you are doing a lot of processing in Halt that you don't want parallelized. Notice that ThreadedHalt is only called by the multithreaded filters, so you still should implement Halt, just in case a non-threaded filter is used. Definition at line 276 of file itkFiniteDifferenceImageFilter.h. |
|
Definition at line 321 of file itkFiniteDifferenceImageFilter.h. |
|
The maximum number of iterations this filter will run Definition at line 318 of file itkFiniteDifferenceImageFilter.h. |
|
Definition at line 320 of file itkFiniteDifferenceImageFilter.h. |