ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalRegistrationFunction.h>
Base class for force calculation in the variational registration framework.
This class is templated over fixed image type, moving image type and deformation field type. This function has the fixed image, the moving image and the current displacement field as input and computes an update value in ComputeUpdate().
Implement a concrete force type in a subclass; overwrite the methods InitializeIteration() and ComputeUpdate().
Definition at line 51 of file itkVariationalRegistrationFunction.h.
Classes | |
struct | GlobalDataStruct |
Public Member Functions | |
TimeStepType | ComputeGlobalTimeStep (void *) const override |
virtual const DisplacementFieldType * | GetDisplacementField (void) const |
virtual const FixedImageType * | GetFixedImage (void) const |
void * | GetGlobalDataPointer () const override |
virtual MaskImagePixelType | GetMaskBackgroundThreshold (void) const |
virtual const MaskImageType * | GetMaskImage (void) const |
virtual double | GetMetric () const |
virtual const MovingImageType * | GetMovingImage (void) const |
virtual const MovingImageWarperType * | GetMovingImageWarper (void) const |
virtual const char * | GetNameOfClass () const |
virtual double | GetRMSChange () const |
virtual const TimeStepType | GetTimeStep (void) const |
void | InitializeIteration () override |
void | ReleaseGlobalDataPointer (void *GlobalData) const override |
virtual void | SetDisplacementField (DisplacementFieldType *ptr) |
virtual void | SetFixedImage (const FixedImageType *ptr) |
virtual void | SetMaskBackgroundThreshold (MaskImagePixelType threshold) |
virtual void | SetMaskImage (const MaskImageType *ptr) |
virtual void | SetMovingImage (const MovingImageType *ptr) |
virtual void | SetMovingImageWarper (MovingImageWarperType *ptr) |
virtual void | SetTimeStep (TimeStepType timeStep) |
Public Member Functions inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
virtual PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))=0 |
const RadiusType & | GetRadius () const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
void | SetRadius (const RadiusType &r) |
void | SetScaleCoefficients (PixelRealType vals[ImageDimension]) |
Public Member Functions inherited from itk::LightObject | |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
itkCloneMacro (Self) | |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
static constexpr unsigned int | ImageDimension |
Protected Member Functions | |
virtual const WarpedImagePointer | GetWarpedImage (void) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
VariationalRegistrationFunction () | |
virtual void | WarpMovingImage (void) |
~VariationalRegistrationFunction () override | |
Protected Member Functions inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
FiniteDifferenceFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~FiniteDifferenceFunction () override=default | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Protected Attributes inherited from itk::FiniteDifferenceFunction< TDisplacementField > | |
RadiusType | m_Radius |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ConstPointer = SmartPointer< const Self > |
Definition at line 61 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldType = TDisplacementField |
Deformation field type.
Definition at line 84 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldTypePointer = typename DisplacementFieldType::ConstPointer |
Definition at line 85 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImagePointer = typename FixedImageType::ConstPointer |
Definition at line 77 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImageType = TFixedImage |
FixedImage image type.
Definition at line 76 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MaskImagePixelType = unsigned char |
MovingImage image type.
Definition at line 88 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MaskImagePointer = typename MaskImageType::ConstPointer |
Definition at line 90 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MaskImageType = Image< MaskImagePixelType, ImageDimension > |
Definition at line 89 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImagePointer = typename MovingImageType::ConstPointer |
Definition at line 73 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImageType = TMovingImage |
MovingImage image type.
Definition at line 72 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImageWarperPointer = typename MovingImageWarperType::Pointer |
Definition at line 96 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImageWarperType = itk::ContinuousBorderWarpImageFilter< FixedImageType, WarpedImageType, DisplacementFieldType > |
Typedef of the warp image filter.
Definition at line 95 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::Pointer = SmartPointer< Self > |
Definition at line 60 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::Self = VariationalRegistrationFunction |
Standard class type alias.
Definition at line 58 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::Superclass = FiniteDifferenceFunction< TDisplacementField > |
Definition at line 59 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::TimeStepType = typename Superclass::TimeStepType |
Definition at line 63 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::WarpedImagePointer = typename WarpedImageType::ConstPointer |
Definition at line 81 of file itkVariationalRegistrationFunction.h.
using itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::WarpedImageType = TFixedImage |
FixedImage image type.
Definition at line 80 of file itkVariationalRegistrationFunction.h.
|
protected |
|
inlineoverrideprotected |
Definition at line 187 of file itkVariationalRegistrationFunction.h.
|
inlineoverridevirtual |
Computes the time step for an update. Returns the constant time step.
Implements itk::FiniteDifferenceFunction< TDisplacementField >.
Reimplemented in itk::VariationalRegistrationSSDFunction< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >.
Definition at line 163 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_TimeStep.
|
inlinevirtual |
Get the deformation field.
Definition at line 120 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_DisplacementField.
|
inlinevirtual |
Get the fixed image.
Definition at line 112 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_FixedImage.
|
overridevirtual |
Return a pointer to a global data structure that is passed to this object from the solver at each calculation.
Implements itk::FiniteDifferenceFunction< TDisplacementField >.
|
inlinevirtual |
Get the MaskBackgroundThreshold. All Pixels of the mask image will be treated as background if the are <= this threshold.
Definition at line 154 of file itkVariationalRegistrationFunction.h.
|
inlinevirtual |
Get the mask image.
Definition at line 128 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MaskImage.
|
inlinevirtual |
Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images.
Definition at line 178 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_Metric.
|
inlinevirtual |
Get the Moving image.
Definition at line 104 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MovingImage.
|
inlinevirtual |
Get the moving image warper.
Definition at line 136 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MovingImageWarper.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.
Reimplemented in itk::VariationalRegistrationFastNCCFunction< TFixedImage, TMovingImage, TDisplacementField >, itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >, itk::VariationalRegistrationDemonsFunction< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalRegistrationSSDFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
inlinevirtual |
Get the rms change in deformation field.
Definition at line 182 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_RMSChange.
|
inlinevirtual |
Get the time step.
Definition at line 144 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_TimeStep.
Referenced by itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >::ComputeGlobalTimeStep(), and itk::VariationalRegistrationSSDFunction< TFixedImage, TMovingImage, TDisplacementField >::ComputeGlobalTimeStep().
|
protectedvirtual |
Get the warped image.
|
overridevirtual |
Set the object's state before each iteration.
Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.
Reimplemented in itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalRegistrationSSDFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
overrideprotectedvirtual |
Print information about the filter.
Reimplemented from itk::LightObject.
Reimplemented in itk::VariationalRegistrationSSDFunction< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalRegistrationNCCFunction< TFixedImage, TMovingImage, TDisplacementField >.
|
overridevirtual |
Release memory for global data structure.
Implements itk::FiniteDifferenceFunction< TDisplacementField >.
|
inlinevirtual |
Set the deformation field.
Definition at line 116 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_DisplacementField.
|
inlinevirtual |
Set the fixed image.
Definition at line 108 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_FixedImage.
|
inlinevirtual |
Set the MaskBackgroundThreshold. All Pixels of the mask image will be treated as background if the are <= this threshold.
Definition at line 149 of file itkVariationalRegistrationFunction.h.
|
inlinevirtual |
Set the mask image.
Definition at line 124 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MaskImage.
|
inlinevirtual |
Set the Moving image.
Definition at line 100 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MovingImage.
|
inlinevirtual |
Set the moving image warper.
Definition at line 132 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MovingImageWarper.
|
inlinevirtual |
Set the time step. This time step will be used by ComputeGlobalTimeStep().
Definition at line 140 of file itkVariationalRegistrationFunction.h.
References itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_TimeStep.
|
protectedvirtual |
Warp the moving image into the domain of the fixed image using the deformation field.
|
static |
Get image dimension.
Definition at line 69 of file itkVariationalRegistrationFunction.h.
|
private |
The deformation field.
Definition at line 216 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetDisplacementField(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetDisplacementField().
|
private |
The fixed image.
Definition at line 213 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetFixedImage(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetFixedImage().
|
private |
Threshold to define the background in the mask image.
Definition at line 228 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetMaskBackgroundThreshold(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetMaskBackgroundThreshold().
|
private |
The deformation field.
Definition at line 219 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetMaskImage(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetMaskImage().
|
mutableprivate |
The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images.
Definition at line 233 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetMetric().
|
mutableprivate |
Mutex lock to protect modification to metric.
Definition at line 240 of file itkVariationalRegistrationFunction.h.
|
private |
The Moving image.
Definition at line 210 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetMovingImage(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetMovingImage().
|
private |
A class to warp the moving image into the domain of the fixed image.
Definition at line 222 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetMovingImageWarper(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetMovingImageWarper().
|
mutableprivate |
Definition at line 235 of file itkVariationalRegistrationFunction.h.
|
mutableprivate |
Definition at line 236 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetRMSChange().
|
mutableprivate |
Definition at line 234 of file itkVariationalRegistrationFunction.h.
|
mutableprivate |
Definition at line 237 of file itkVariationalRegistrationFunction.h.
|
private |
The global timestep.
Definition at line 225 of file itkVariationalRegistrationFunction.h.
Referenced by itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ComputeGlobalTimeStep(), itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetTimeStep(), and itk::VariationalRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetTimeStep().