ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalRegistrationElasticRegularizer.h>
This class performs linear elastic regularization of a vector field.
This class implements linear elastic regularization as described in Modersitzki. "Numerical methods for image registration". OUP Oxford, 2003..
We compute with using an FFT based method. Please note that for given Lame constants and you have to set and (see Eq.(2) in VariationalRegistrationFilter).
Definition at line 58 of file itkVariationalRegistrationElasticRegularizer.h.
Classes | |
struct | ElasticFFTThreadStruct |
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | DisplacementFieldConstPointer = typename Superclass::DisplacementFieldConstPointer |
using | DisplacementFieldPointer = typename Superclass::DisplacementFieldPointer |
using | DisplacementFieldType = typename Superclass::DisplacementFieldType |
using | FFTWProxyType = typename fftw::Proxy< RealTypeFFT > |
typedef DisplacementFieldType::SizeType::SizeValueType | OffsetValueType |
using | PixelType = typename Superclass::PixelType |
using | Pointer = SmartPointer< Self > |
using | RealTypeFFT = double |
using | Self = VariationalRegistrationElasticRegularizer |
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 Private Member Functions | |
static ITK_THREAD_RETURN_TYPE | SolveElasticLESThreaderCallback (void *vargs) |
Private Attributes | |
OffsetValueType | m_ComplexOffsetTable [ImageDimension] |
DisplacementFieldType::SizeType | m_ComplexSize |
ValueType | m_Lambda |
double * | m_MatrixCos [ImageDimension] |
double * | m_MatrixSin [ImageDimension] |
ValueType | m_Mu |
DisplacementFieldType::SizeType | m_Size |
DisplacementFieldType::SpacingType | m_Spacing |
OffsetValueType | m_TotalComplexSize |
OffsetValueType | m_TotalSize |
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 > |
Static Protected Member Functions inherited from itk::ImageSource< TDisplacementField > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
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::VariationalRegistrationElasticRegularizer< TDisplacementField >::ConstPointer = SmartPointer< const Self > |
Definition at line 69 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::DisplacementFieldConstPointer = typename Superclass::DisplacementFieldConstPointer |
Definition at line 83 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::DisplacementFieldPointer = typename Superclass::DisplacementFieldPointer |
Definition at line 82 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::DisplacementFieldType = typename Superclass::DisplacementFieldType |
Deformation field types, inherited from Superclass.
Definition at line 81 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::FFTWProxyType = typename fftw::Proxy<RealTypeFFT> |
Definition at line 102 of file itkVariationalRegistrationElasticRegularizer.h.
typedef DisplacementFieldType::SizeType::SizeValueType itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::OffsetValueType |
Definition at line 87 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::PixelType = typename Superclass::PixelType |
Definition at line 84 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::Pointer = SmartPointer< Self > |
Definition at line 68 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::RealTypeFFT = double |
Types for FFTW proxy
Definition at line 93 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::Self = VariationalRegistrationElasticRegularizer |
Standard class type alias
Definition at line 65 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::Superclass = VariationalRegistrationRegularizer< TDisplacementField > |
Definition at line 67 of file itkVariationalRegistrationElasticRegularizer.h.
using itk::VariationalRegistrationElasticRegularizer< TDisplacementField >::ValueType = typename Superclass::ValueType |
Definition at line 85 of file itkVariationalRegistrationElasticRegularizer.h.
|
protected |
|
inlineoverrideprotected |
Definition at line 118 of file itkVariationalRegistrationElasticRegularizer.h.
|
protected |
Calculate the index in the complex image for a given offset.
|
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.
|
protectedvirtual |
Delete all data allocated during Initialize()
|
overrideprotectedvirtual |
Execute regularization. This method is multi-threaded but does not use ThreadedGenerateData().
Reimplemented from itk::ProcessObject.
|
virtual |
Get the regularization weight lambda.
|
virtual |
Get the regularization weight mu.
|
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 |
Initialize FFTW plans and multi-threading, allocate arrays for FFT
|
protectedvirtual |
Precompute sine and cosine values for solving the LES
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
Print information about the filter.
Reimplemented from itk::ProcessObject.
|
protectedvirtual |
Regularize the deformation field. This is called by GenerateData().
|
virtual |
Set the regularization weight lambda.
|
virtual |
Set the regularization weight mu.
|
protectedvirtual |
solve the LES after forward FFTs (before backward FFTs)
|
staticprivate |
|
protectedvirtual |
solve the LES after forward FFTs (and before backward FFTs). Multithreaded method.
|
static |
Dimensionality of input and output data is assumed to be the same.
Definition at line 78 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
Definition at line 175 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
The size of the complex buffer.
Definition at line 170 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
Weight of the regularization term.
Definition at line 155 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
FFT matrix
Definition at line 178 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
Definition at line 179 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
Weight of the regularization term.
Definition at line 158 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
The size of the displacement field.
Definition at line 164 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
The spacing of the displacement field.
Definition at line 161 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
Number of pixels of the complex buffer.
Definition at line 173 of file itkVariationalRegistrationElasticRegularizer.h.
|
private |
Number of pixels of the displacement field.
Definition at line 167 of file itkVariationalRegistrationElasticRegularizer.h.