ITK
4.13.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalRegistrationCurvatureRegularizer.h>
This class performs linear elastic regularization of a vector field.
This class implements curvature regularization as described in Modersitzki. "Numerical methods for image registration". OUP Oxford, 2003.. and Fischer and Modersitzki. "A unified approach to fast image registration and a new curvature based registration technique." Linear Algebra and its applications 380 (2004): 107-124.
Some parts of the code are according to CurvatureRegistrationFilter by T. Rohlfing.
We compute with using an FFT based method. Please note that for given weight you have to set (see Eq.(2) in VariationalRegistrationFilter).
Definition at line 62 of file itkVariationalRegistrationCurvatureRegularizer.h.
Classes | |
struct | CurvatureFFTThreadStruct |
Public Types | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::DisplacementFieldConstPointer | DisplacementFieldConstPointer |
typedef Superclass::DisplacementFieldPointer | DisplacementFieldPointer |
typedef Superclass::DisplacementFieldType | DisplacementFieldType |
typedef fftw::Proxy< RealTypeFFT > | FFTWProxyType |
typedef DisplacementFieldType::SizeType::SizeValueType | OffsetValueType |
typedef Superclass::PixelType | PixelType |
typedef SmartPointer< Self > | Pointer |
typedef double | RealTypeFFT |
typedef VariationalRegistrationCurvatureRegularizer | Self |
typedef VariationalRegistrationRegularizer < TDisplacementField > | Superclass |
typedef Superclass::ValueType | ValueType |
Public Types inherited from itk::VariationalRegistrationRegularizer< TDisplacementField > | |
typedef SmartPointer< const Self > | ConstPointer |
typedef DisplacementFieldType::ConstPointer | DisplacementFieldConstPointer |
typedef DisplacementFieldType::Pointer | DisplacementFieldPointer |
typedef TDisplacementField | DisplacementFieldType |
typedef DisplacementFieldType::PixelType | PixelType |
typedef SmartPointer< Self > | Pointer |
typedef VariationalRegistrationRegularizer | Self |
typedef InPlaceImageFilter < TDisplacementField, TDisplacementField > | Superclass |
typedef NumericTraits < PixelType >::ValueType | ValueType |
Public Types inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
typedef SmartPointer< const Self > | ConstPointer |
typedef InputImageType::ConstPointer | InputImageConstPointer |
typedef InputImageType::PixelType | InputImagePixelType |
typedef InputImageType::Pointer | InputImagePointer |
typedef InputImageType::RegionType | InputImageRegionType |
typedef TDisplacementField | InputImageType |
typedef Superclass::OutputImagePixelType | OutputImagePixelType |
typedef Superclass::OutputImagePointer | OutputImagePointer |
typedef Superclass::OutputImageRegionType | OutputImageRegionType |
typedef Superclass::OutputImageType | OutputImageType |
typedef SmartPointer< Self > | Pointer |
typedef InPlaceImageFilter | Self |
typedef ImageToImageFilter < TDisplacementField, TDisplacementField > | Superclass |
Public Types inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
typedef SmartPointer< const Self > | ConstPointer |
typedef InputImageType::ConstPointer | InputImageConstPointer |
typedef InputImageType::PixelType | InputImagePixelType |
typedef InputImageType::Pointer | InputImagePointer |
typedef InputImageType::RegionType | InputImageRegionType |
typedef TDisplacementField | InputImageType |
typedef Superclass::OutputImagePixelType | OutputImagePixelType |
typedef Superclass::OutputImageRegionType | OutputImageRegionType |
typedef SmartPointer< Self > | Pointer |
typedef ImageToImageFilter | Self |
typedef ImageSource < TDisplacementField > | Superclass |
Public Types inherited from itk::ImageSource< TDisplacementField > | |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::DataObjectIdentifierType | DataObjectIdentifierType |
typedef DataObject::Pointer | DataObjectPointer |
typedef Superclass::DataObjectPointerArraySizeType | DataObjectPointerArraySizeType |
typedef OutputImageType::PixelType | OutputImagePixelType |
typedef OutputImageType::Pointer | OutputImagePointer |
typedef OutputImageType::RegionType | OutputImageRegionType |
typedef TDisplacementField | OutputImageType |
typedef SmartPointer< Self > | Pointer |
typedef ImageSource | Self |
typedef ProcessObject | Superclass |
Public Types inherited from itk::ProcessObject | |
typedef SmartPointer< const Self > | ConstPointer |
typedef DataObject::DataObjectIdentifierType | DataObjectIdentifierType |
typedef DataObject::Pointer | DataObjectPointer |
typedef std::vector < DataObjectPointer > | DataObjectPointerArray |
typedef DataObjectPointerArray::size_type | DataObjectPointerArraySizeType |
typedef MultiThreader | MultiThreaderType |
typedef std::vector < DataObjectIdentifierType > | NameArray |
typedef SmartPointer< Self > | Pointer |
typedef ProcessObject | Self |
typedef Object | Superclass |
Public Types inherited from itk::Object | |
typedef SmartPointer< const Self > | ConstPointer |
typedef SmartPointer< Self > | Pointer |
typedef Object | Self |
typedef LightObject | Superclass |
Public Types inherited from itk::LightObject | |
typedef SmartPointer< const Self > | ConstPointer |
typedef SmartPointer< Self > | Pointer |
typedef LightObject | Self |
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 const unsigned int | ImageDimension = TDisplacementField::ImageDimension |
Static Public Attributes inherited from itk::VariationalRegistrationRegularizer< TDisplacementField > | |
static const unsigned int | ImageDimension = TDisplacementField::ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
static const unsigned int | InputImageDimension |
static const unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
static const unsigned int | InputImageDimension |
static const unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TDisplacementField > | |
static const unsigned int | OutputImageDimension |
Private Member Functions | |
void | operator= (const Self &) |
VariationalRegistrationCurvatureRegularizer (const Self &) | |
Static Private Member Functions | |
static ITK_THREAD_RETURN_TYPE | SolveCurvatureLESThreaderCallback (void *vargs) |
Private Attributes | |
ValueType | m_Alpha |
RealTypeFFT * | m_DiagonalMatrix [ImageDimension] |
OffsetValueType | m_OffsetTable [ImageDimension] |
DisplacementFieldType::SizeType | m_Size |
DisplacementFieldType::SpacingType | m_Spacing |
OffsetValueType | m_TotalSize |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
typedef ImageToImageFilterDetail::ImageRegionCopier < itkGetStaticConstMacro(OutputImageDimension), itkGetStaticConstMacro(InputImageDimension) > | InputToOutputRegionCopierType |
typedef ImageToImageFilterDetail::ImageRegionCopier < itkGetStaticConstMacro(InputImageDimension), itkGetStaticConstMacro(OutputImageDimension) > | OutputToInputRegionCopierType |
Static Protected Member Functions inherited from itk::ImageSource< TDisplacementField > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_TYPE | ThreaderCallback (void *arg) |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
AtomicInt< int > | m_ReferenceCount |
typedef SmartPointer< const Self > itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::ConstPointer |
Definition at line 70 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef Superclass::DisplacementFieldConstPointer itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::DisplacementFieldConstPointer |
Definition at line 84 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef Superclass::DisplacementFieldPointer itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::DisplacementFieldPointer |
Definition at line 83 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef Superclass::DisplacementFieldType itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::DisplacementFieldType |
Deformation field types, inherited from Superclass.
Definition at line 82 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef fftw::Proxy<RealTypeFFT> itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::FFTWProxyType |
Definition at line 103 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef DisplacementFieldType::SizeType::SizeValueType itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::OffsetValueType |
Definition at line 88 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef Superclass::PixelType itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::PixelType |
Definition at line 85 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef SmartPointer< Self > itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::Pointer |
Definition at line 69 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef double itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::RealTypeFFT |
Types for FFTW proxy
Definition at line 94 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef VariationalRegistrationCurvatureRegularizer itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::Self |
Standard class typedefs
Definition at line 67 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef VariationalRegistrationRegularizer<TDisplacementField > itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::Superclass |
Definition at line 68 of file itkVariationalRegistrationCurvatureRegularizer.h.
typedef Superclass::ValueType itk::VariationalRegistrationCurvatureRegularizer< TDisplacementField >::ValueType |
Definition at line 86 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
protected |
|
protected |
|
private |
|
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 |
Execute regularization. This method is multi-threaded but does not use ThreadedGenerateData().
Reimplemented from itk::ImageSource< TDisplacementField >.
|
virtual |
Get the regularization weight alpha
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::VariationalRegistrationRegularizer< TDisplacementField >.
|
protectedvirtual |
Method for initialization. Buffer images are allocated and the matrices calculated in this method.
Reimplemented from itk::VariationalRegistrationRegularizer< TDisplacementField >.
|
protectedvirtual |
Precompute sine and cosine values for solving the LES
|
protectedvirtual |
Initialize FFTW plans and multi-threading, allocate arrays for FFT
|
static |
Method for creation through the object factory.
|
private |
|
protectedvirtual |
Print information about the filter.
Reimplemented from itk::VariationalRegistrationRegularizer< TDisplacementField >.
|
protectedvirtual |
Regularize the deformation field. This is called by GenerateData().
|
virtual |
Set the regularization weight alpha
|
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 79 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
private |
Weight of the regularization term.
Definition at line 150 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
private |
diagonal matrix for solving LES after FFT
Definition at line 165 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
private |
offset table needed to compute image index from array index
Definition at line 162 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
private |
The size of the displacement field.
Definition at line 156 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
private |
The spacing of the displacement field.
Definition at line 153 of file itkVariationalRegistrationCurvatureRegularizer.h.
|
private |
Number of pixels of the displacement field.
Definition at line 159 of file itkVariationalRegistrationCurvatureRegularizer.h.