ITK
6.0.0
Insight Toolkit
|
#include <itkDenseFiniteDifferenceImageFilter.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:
Definition at line 70 of file itkDenseFiniteDifferenceImageFilter.h.
Classes | |
struct | DenseFDThreadStruct |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage > | |
static constexpr unsigned int | ImageDimension = OutputImageType::ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TInputImage, TOutputImage > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::ImageSource< TOutputImage > | |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Protected Types | |
using | ThreadRegionType = typename UpdateBufferType::RegionType |
Protected Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Static Private Member Functions | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ApplyUpdateThreaderCallback (void *arg) |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | CalculateChangeThreaderCallback (void *arg) |
Private Attributes | |
UpdateBufferType::Pointer | m_UpdateBuffer {} |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
static double | GetGlobalDefaultCoordinateTolerance () |
static double | GetGlobalDefaultDirectionTolerance () |
static void | SetGlobalDefaultCoordinateTolerance (double) |
static void | SetGlobalDefaultDirectionTolerance (double) |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Protected Member Functions inherited from itk::ImageSource< TOutputImage > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Static Protected Member Functions inherited from itk::ProcessObject | |
template<typename TSourceObject > | |
static void | MakeRequiredOutputs (TSourceObject &sourceObject, const DataObjectPointerArraySizeType numberOfRequiredOutputs) |
static constexpr float | progressFixedToFloat (uint32_t fixed) |
static uint32_t | progressFloatToFixed (float f) |
Protected Attributes inherited from itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage > | |
IdentifierType | m_ElapsedIterations {} |
bool | m_IsInitialized {} |
bool | m_ManualReinitialization {} |
double | m_MaximumRMSError {} |
IdentifierType | m_NumberOfIterations {} |
double | m_RMSChange {} |
Protected Attributes inherited from itk::ImageSource< TOutputImage > | |
bool | m_DynamicMultiThreading { true } |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime {} |
bool | m_Updating {} |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
using itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 81 of file itkDenseFiniteDifferenceImageFilter.h.
using itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >::Pointer = SmartPointer<Self> |
Definition at line 80 of file itkDenseFiniteDifferenceImageFilter.h.
using itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >::Self = DenseFiniteDifferenceImageFilter |
Standard class type aliases
Definition at line 77 of file itkDenseFiniteDifferenceImageFilter.h.
using itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >::Superclass = FiniteDifferenceImageFilter<TInputImage, TOutputImage> |
Definition at line 78 of file itkDenseFiniteDifferenceImageFilter.h.
|
protected |
The type of region used for multithreading
Definition at line 152 of file itkDenseFiniteDifferenceImageFilter.h.
using itk::DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage >::UpdateBufferType = OutputImageType |
The container type for the update buffer.
Definition at line 103 of file itkDenseFiniteDifferenceImageFilter.h.
|
inlineprotected |
Definition at line 115 of file itkDenseFiniteDifferenceImageFilter.h.
References New().
|
overrideprotecteddefault |
|
overrideprotectedvirtual |
This method allocates storage in m_UpdateBuffer. It is called from Superclass::GenerateData().
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, and itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >.
|
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.
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, and itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >.
|
staticprivate |
This callback method uses ImageSource::SplitRequestedRegion to acquire an output region that it passes to ThreadedApplyUpdate for processing.
|
overrideprotectedvirtual |
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.
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
|
staticprivate |
This callback method uses SplitUpdateContainer to acquire a region which it then passes to ThreadedCalculateChange for processing.
|
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. )
Implements itk::FiniteDifferenceImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, and itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >.
|
overridevirtual |
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::GPUImageToImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUImageToImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUImageToImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUImageToImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUImageToImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUInPlaceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUInPlaceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::CurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorCurvatureAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::VectorGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::GPUAnisotropicDiffusionImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUAnisotropicDiffusionImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUGradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage, TParentImageFilter >, and itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >.
|
inlineprotectedvirtual |
Method to allow subclasses to get direct access to the update buffer
Reimplemented in itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, and itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >.
Definition at line 135 of file itkDenseFiniteDifferenceImageFilter.h.
|
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::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::GPUImageToImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUImageToImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUImageToImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUImageToImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUImageToImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUInPlaceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUInPlaceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, AnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, DenseFiniteDifferenceImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, GradientAnisotropicDiffusionImageFilter< TInputImage, TOutputImage > >, itk::GPUFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >, itk::AnisotropicDiffusionImageFilter< TInputImage, TOutputImage >, itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::CurvatureFlowImageFilter< TInputImage, TOutputImage >, itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >, and itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > >.
|
protectedvirtual |
Does the actual work of updating the output from the UpdateContainer over an output region supplied by the multithreading mechanism.
|
protectedvirtual |
Does the actual work of calculating change over a region supplied by the multithreading mechanism.
|
staticconstexpr |
Dimensionality of input and output data is assumed to be the same. It is inherited from the superclass.
Definition at line 93 of file itkDenseFiniteDifferenceImageFilter.h.
|
private |
The buffer that holds the updates for an iteration of the algorithm.
Definition at line 191 of file itkDenseFiniteDifferenceImageFilter.h.