ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalRegistrationDiffusionRegularizer.h>
This class performs diffusive regularization of a vector field.
This class implements the diffusive regularization as described in Fischer and Modersitzki. "Fast diffusion registration." Contemporary Mathematics 313 (2002): 117-128..
We efficiently compute with using additive operator splitting (AOS). Please note that corresponds to in Eq.(2) in VariationalRegistrationFilter.
Definition at line 50 of file itkVariationalRegistrationDiffusionRegularizer.h.
Classes | |
struct | CalcBufferThreadStruct |
struct | MergeDirectionsThreadStruct |
struct | RegularizeThreadStruct |
Public Types | |
using | BufferImagePointer = typename BufferImageType::Pointer |
using | BufferImageRegionType = typename BufferImageType::RegionType |
using | BufferImageType = Image< ValueType, ImageDimension > |
using | ConstPointer = SmartPointer< const Self > |
using | DisplacementFieldConstPointer = typename Superclass::DisplacementFieldConstPointer |
using | DisplacementFieldPointer = typename Superclass::DisplacementFieldPointer |
using | DisplacementFieldType = typename Superclass::DisplacementFieldType |
using | PixelType = typename Superclass::PixelType |
using | Pointer = SmartPointer< Self > |
using | Self = VariationalRegistrationDiffusionRegularizer |
using | Superclass = VariationalRegistrationRegularizer< TDisplacementField > |
using | ValueType = typename Superclass::ValueType |
Public Types inherited from itk::VariationalRegistrationRegularizer< TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | DisplacementFieldConstPointer = typename DisplacementFieldType::ConstPointer |
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
using | DisplacementFieldType = TDisplacementField |
using | PixelType = typename DisplacementFieldType::PixelType |
using | Pointer = SmartPointer< Self > |
using | Self = VariationalRegistrationRegularizer |
using | Superclass = InPlaceImageFilter< TDisplacementField, TDisplacementField > |
using | ValueType = typename NumericTraits< PixelType >::ValueType |
Public Types inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TDisplacementField |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImagePointer = typename Superclass::OutputImagePointer |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | OutputImageType = typename Superclass::OutputImageType |
using | Pointer = SmartPointer< Self > |
using | Self = InPlaceImageFilter |
using | Superclass = ImageToImageFilter< TDisplacementField, TDisplacementField > |
Public Types inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TDisplacementField |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ImageToImageFilter |
using | Superclass = ImageSource< TDisplacementField > |
Public Types inherited from itk::ImageSource< TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
using | OutputImagePixelType = typename OutputImageType::PixelType |
using | OutputImagePointer = typename OutputImageType::Pointer |
using | OutputImageRegionType = typename OutputImageType::RegionType |
using | OutputImageType = TDisplacementField |
using | Pointer = SmartPointer< Self > |
using | Self = ImageSource |
using | Superclass = ProcessObject |
Public Types inherited from itk::ProcessObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
using | MultiThreaderType = MultiThreaderBase |
using | NameArray = std::vector< DataObjectIdentifierType > |
using | Pointer = SmartPointer< Self > |
using | Self = ProcessObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::VariationalRegistrationRegularizer< TDisplacementField > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = TDisplacementField::ImageDimension |
Static Public Attributes inherited from itk::VariationalRegistrationRegularizer< TDisplacementField > | |
static constexpr unsigned int | ImageDimension = TDisplacementField::ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TDisplacementField > | |
static constexpr unsigned int | OutputImageDimension |
Static Protected Member Functions | |
static ITK_THREAD_RETURN_TYPE | CalcBufferCallback (void *arg) |
static ITK_THREAD_RETURN_TYPE | MergeDirectionsCallback (void *arg) |
static ITK_THREAD_RETURN_TYPE | RegularizeDirectionCallback (void *arg) |
Static Protected Member Functions inherited from itk::ImageSource< TDisplacementField > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Private Attributes | |
ValueType | m_Alpha |
BufferImagePointer | m_BufferImage |
ValueType * | m_MatrixAlpha [ImageDimension] |
ValueType * | m_MatrixBeta [ImageDimension] |
ValueType * | m_MatrixGamma [ImageDimension] |
DisplacementFieldType::SizeType | m_Size |
DisplacementFieldType::SpacingType | m_Spacing |
BufferImagePointer | m_V [ImageDimension] |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Protected Attributes inherited from itk::ImageSource< TDisplacementField > | |
bool | m_DynamicMultiThreading |
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::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::BufferImagePointer = typename BufferImageType::Pointer |
Definition at line 82 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::BufferImageRegionType = typename BufferImageType::RegionType |
Definition at line 83 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::BufferImageType = Image<ValueType, ImageDimension> |
Types for buffer image.
Definition at line 81 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::ConstPointer = SmartPointer< const Self > |
Definition at line 61 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::DisplacementFieldConstPointer = typename Superclass::DisplacementFieldConstPointer |
Definition at line 76 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::DisplacementFieldPointer = typename Superclass::DisplacementFieldPointer |
Definition at line 75 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::DisplacementFieldType = typename Superclass::DisplacementFieldType |
Deformation field types, inherited from Superclass.
Definition at line 74 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::PixelType = typename Superclass::PixelType |
Definition at line 77 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::Pointer = SmartPointer< Self > |
Definition at line 60 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::Self = VariationalRegistrationDiffusionRegularizer |
Standard class type alias
Definition at line 57 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::Superclass = VariationalRegistrationRegularizer< TDisplacementField > |
Definition at line 59 of file itkVariationalRegistrationDiffusionRegularizer.h.
using itk::VariationalRegistrationDiffusionRegularizer< TDisplacementField >::ValueType = typename Superclass::ValueType |
Definition at line 78 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
protected |
|
inlineoverrideprotected |
Definition at line 93 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
staticprotected |
Method for multi-threaded calculation of the image buffer.
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
|
overrideprotectedvirtual |
Execute regularization. This method is multi-threaded but does not use ThreadedGenerateData().
Reimplemented from itk::ProcessObject.
|
virtual |
Get the regularization weight alpha
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::VariationalRegistrationRegularizer< TDisplacementField >.
|
overrideprotectedvirtual |
Method for initialization. Buffer images are allocated and the matrices calculated in this method.
Reimplemented from itk::VariationalRegistrationRegularizer< TDisplacementField >.
|
protectedvirtual |
Calculation and LU decomposition of the tridiagonal matrices using the Thomas algorithm (TDMA).
|
staticprotected |
Method for multi-threaded calculation of the final field.
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
Print information about the filter.
Reimplemented from itk::ProcessObject.
|
protectedvirtual |
Regularize a given component (dimension) of the deformation field. This is called for each ImageDimension by GenerateData().
|
staticprotected |
Method for multi-threaded regularization of the image buffer.
|
virtual |
Set the regularization weight alpha
|
protectedvirtual |
Split the boundary face orthogonal to "inDir" into "num" pieces, returning region "i" as "splitRegion". This method is called "num" times. The regions must not overlap. The method returns the number of pieces that the routine is capable of splitting the output RequestedRegion, i.e. return value is less than or equal to "num".
|
static |
Dimensionality of input and output data is assumed to be the same.
Definition at line 71 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
Weight of the regularization term.
Definition at line 162 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
Pointer to a temporal image for the regularization.
Definition at line 172 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
Array for the diagonals of the factorized matrices for each dimension
Definition at line 179 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
Array for the subdiagonals of the factorized matrices for each dimension
Definition at line 182 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
Array for the superdiagonals of the factorized matrices for each dimension
Definition at line 185 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
The size of the displacement field.
Definition at line 165 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
The spacing of the displacement field.
Definition at line 168 of file itkVariationalRegistrationDiffusionRegularizer.h.
|
private |
Buffers for the regularized fields in each direction. Stored in separate images instead of a vector image for better memory management.
Definition at line 176 of file itkVariationalRegistrationDiffusionRegularizer.h.