#include <itkFiniteDifferenceImageFilter.h>
Inheritance diagram for itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >:
Public Types | |
typedef FiniteDifferenceImageFilter | Self |
typedef InPlaceImageFilter< 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 * | GetNameOfClass () const |
itkStaticConstMacro (ImageDimension, unsigned int, OutputImageType::ImageDimension) | |
virtual const unsigned int & | GetElapsedIterations () |
virtual const FiniteDifferenceFunctionType::Pointer & | GetDifferenceFunction () const |
virtual void | SetDifferenceFunction (FiniteDifferenceFunctionType *_arg) |
void | SetStateToInitialized () |
void | SetStateToUninitialized () |
virtual void | SetNumberOfIterations (unsigned int _arg) |
virtual const unsigned int & | GetNumberOfIterations () |
virtual void | SetUseImageSpacing (bool _arg) |
virtual void | UseImageSpacingOn () |
virtual void | UseImageSpacingOff () |
virtual const bool & | GetUseImageSpacing () |
virtual void | SetMaximumRMSError (double _arg) |
virtual const double & | GetMaximumRMSError () |
virtual void | SetRMSChange (double _arg) |
virtual const double & | GetRMSChange () |
virtual void | SetState (FilterStateType _arg) |
virtual const FilterStateType & | GetState () |
virtual void | SetManualReinitialization (bool _arg) |
virtual const 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 219 of file itkFiniteDifferenceImageFilter.h. |
|
Definition at line 231 of file itkFiniteDifferenceImageFilter.h. |
|
|
|
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 >, itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, 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 >, itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, 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::GeodesicActiveContourLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::GeodesicActiveContourShapePriorLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::NarrowBandCurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapeDetectionLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, and itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >. |
|
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. |
|
Run-time type information (and related methods) Reimplemented from itk::InPlaceImageFilter< TInputImage, TOutputImage >. Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::AntiAliasBinaryImageFilter< TInputImage, TOutputImage >, itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CannySegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::GeodesicActiveContourLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::GeodesicActiveContourShapePriorLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::LevelSetMotionRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::NarrowBandCurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapeDetectionLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::SymmetricForcesDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >, itk::VectorThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >. |
|
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. |
|
Use the image spacing information in calculations. Use this option if you want derivatives in physical space. Default is UseImageSpacingOff. |
|
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::LevelSetMotionRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, 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::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >. Definition at line 292 of file itkFiniteDifferenceImageFilter.h. |
|
This method is optionally defined by a subclass and is called immediately prior to each iterative CalculateChange-ApplyUpdate cycle. It can be used to set global variables needed for the next iteration (ie. average gradient magnitude of the image in anisotropic diffusion functions), or otherwise prepare for the next iteration. Reimplemented in itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::LevelSetMotionRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::SymmetricForcesDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, and itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >. Definition at line 300 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::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, and itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >. Definition at line 324 of file itkFiniteDifferenceImageFilter.h. |
|
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< TInputImage, TOutputImage >. Reimplemented in itk::AnisotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::AntiAliasBinaryImageFilter< TInputImage, TOutputImage >, itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::GeodesicActiveContourLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::GeodesicActiveContourShapePriorLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::IsotropicFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::LaplacianSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::LevelSetMotionRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::NarrowBandCurvesLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, TOutputImage >, itk::NarrowBandThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::SegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapeDetectionLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::ShapePriorSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::SymmetricForcesDemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >, itk::ThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::UnsharpMaskLevelSetImageFilter< TInputImage, TOutputImage >, itk::VectorThresholdSegmentationLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType >, itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >, itk::NarrowBandImageFilterBase< TInputImage, TOutputImage >, itk::ParallelSparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldFourthOrderLevelSetImageFilter< TInputImage, TOutputImage >, itk::SparseFieldLevelSetImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >, itk::FiniteDifferenceSparseImageFilter< TInputImageType, TSparseOutputImageType >, itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::NarrowBandImageFilterBase< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::SparseFieldLevelSetImageFilter< TInputImage, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >, itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >, and itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >. |
|
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 >, and itk::NarrowBandLevelSetImageFilter< TInputImage, TFeatureImage, TOutputPixelType, Image< TOutputPixelType,::itk::GetImageDimension< TInputImage >::ImageDimension > >. |
|
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 195 of file itkFiniteDifferenceImageFilter.h. |
|
Set the state of the filter to UNINITIALIZED Definition at line 201 of file itkFiniteDifferenceImageFilter.h. |
|
Use the image spacing information in calculations. Use this option if you want derivatives in physical space. Default is UseImageSpacingOff. |
|
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 285 of file itkFiniteDifferenceImageFilter.h. |
|
Use the image spacing information in calculations. Use this option if you want derivatives in physical space. Default is UseImageSpacingOff. |
|
Use the image spacing information in calculations. Use this option if you want derivatives in physical space. Default is UseImageSpacingOff. |
|
Definition at line 330 of file itkFiniteDifferenceImageFilter.h. |
|
The maximum number of iterations this filter will run Definition at line 327 of file itkFiniteDifferenceImageFilter.h. |
|
Definition at line 329 of file itkFiniteDifferenceImageFilter.h. |