Medical Imaging Interaction Toolkit
2024.06.00
Medical Imaging Interaction Toolkit
|
This class implements an extension of the weighted point based registration algorithm from A. Danilchenko, R. Balachandran and J. M. Fitzpatrick. More...
#include <mitkWeightedPointTransform.h>
Public Member Functions | |
mitkClassMacroItkParent (WeightedPointTransform, itk::Object) | |
Pointer | Clone () const |
void | ComputeTransformation () |
Method which registers both point sets. More... | |
virtual void | SetThreshold (double _arg) |
Sets the threshold of the registration. Default value is 0.0001. More... | |
virtual void | SetMaxIterations (double _arg) |
Sets the maximum number of iterations of the registration. Default value is 1000. More... | |
virtual int | GetIterations () |
virtual double | GetFRE () |
virtual void | SetFRENormalizationFactor (double _arg) |
Sets the FRE normalization factor. Default value is 1.0. More... | |
virtual double | GetFRENormalizationFactor () |
void | SetMovingPointSet (vtkSmartPointer< vtkPoints > p) |
void | SetCovarianceMatricesMoving (const CovarianceMatrixList &matrices) |
void | SetFixedPointSet (vtkSmartPointer< vtkPoints > p) |
void | SetCovarianceMatricesFixed (const CovarianceMatrixList &matrices) |
const Translation & | GetTransformT () const |
const Rotation & | GetTransformR () const |
Static Public Member Functions | |
static Pointer | New () |
Protected Member Functions | |
WeightedPointTransform () | |
~WeightedPointTransform () override | |
void | C_maker (vtkPoints *X, const WeightMatrixList &W, itk::VariableSizeMatrix< double > &returnValue) |
void | E_maker (vtkPoints *X, vtkPoints *Y, const WeightMatrixList &W, vnl_vector< double > &returnValue) |
double | CalculateConfigChange (vtkPoints *X, vtkPoints *X_new) |
void | WeightedPointRegister (vtkPoints *X, vtkPoints *Y, const CovarianceMatrixList &Sigma_X, const CovarianceMatrixList &Sigma_Y, double Threshold, int MaxIterations, Rotation &TransformationR, Translation &TransformationT, double &FRE, int &n) |
This method performs a variant of the weighted point register algorithm presented by A. Danilchenko, R. Balachandran and J. M. Fitzpatrick in January 2010. (Modified in January 2011) converted to C++ by Alfred Franz in March/April 2010. More... | |
Protected Attributes | |
double | m_Threshold |
int | m_MaxIterations |
int | m_Iterations |
double | m_FRE |
double | m_FRENormalizationFactor |
vtkSmartPointer< vtkLandmarkTransform > | m_LandmarkTransform |
vtkSmartPointer< vtkPoints > | m_FixedPointSet |
vtkSmartPointer< vtkPoints > | m_MovingPointSet |
CovarianceMatrixList | m_CovarianceMatricesMoving |
CovarianceMatrixList | m_CovarianceMatricesFixed |
Translation | m_Translation |
Rotation | m_Rotation |
This class implements an extension of the weighted point based registration algorithm from A. Danilchenko, R. Balachandran and J. M. Fitzpatrick.
The class implements an extension of the weighted point based registration from A. Danilchenko et al. presented by L. Maier-Hein et al. in "Convergent Iterative Closest-Point Algorithm to Accommodate Anisotropic and Inhomogenous Localization Error.", IEEE T Pattern Anal 34 (8), 1520-1532, 2012. The extension computes, in order to ensure the convergence of the algorithm, an isotropic estimation by an unweighted point based registration algorithm as an initial estimate. The implemantion was originally ported to C/C++ by A. Franz.
Definition at line 52 of file mitkWeightedPointTransform.h.
|
protected |
|
overrideprotected |
|
protected |
original matlab-function:
Constructs the C matrix of the linear version of the registration problem, Cq = e, where q = [delta_angle(1:3),delta_translation(1:3)] and e is produced by e_maker(X,Y,W)
Authors: JM Fitzpatrick and R Balachandran Creation: February 2009
converted to C++ by Alfred Franz in March/April 2010
|
protected |
This method computes the change in a root mean squared sense between the previous and the actual iteration. The computed value is used as a termination constraint of the algorithm and compared against the threshold.
X | The moving point set in the previous iteration step. |
X_new | The moving point set in the actual step. |
Pointer mitk::WeightedPointTransform::Clone | ( | ) | const |
void mitk::WeightedPointTransform::ComputeTransformation | ( | ) |
Method which registers both point sets.
|
protected |
original matlab-function:
Constructs the e vector of the linear version of the registration problem, Cq = e, where q = [delta_angle(1:3),delta_translation(1:3)] and C is produced by C_maker(X,W)
Authors: JM Fitzpatrick and R Balachandran Creation: February 2009
converted to C++ by Alfred Franz in March/April 2010
|
virtual |
|
virtual |
|
virtual |
|
inline |
The rotation matrix computed by the algorithm.
Definition at line 130 of file mitkWeightedPointTransform.h.
|
inline |
The translation vector computed by the algorithm.
Definition at line 126 of file mitkWeightedPointTransform.h.
mitk::WeightedPointTransform::mitkClassMacroItkParent | ( | WeightedPointTransform | , |
itk::Object | |||
) |
|
static |
void mitk::WeightedPointTransform::SetCovarianceMatricesFixed | ( | const CovarianceMatrixList & | matrices | ) |
Set the list of 3x3 covariance matrices belonging to the fixed point set.
matrices | List of covariance matrices. |
void mitk::WeightedPointTransform::SetCovarianceMatricesMoving | ( | const CovarianceMatrixList & | matrices | ) |
Set the list of 3x3 covariance matrices belonging to the moving point set.
matrices | List of covariance matrices. |
void mitk::WeightedPointTransform::SetFixedPointSet | ( | vtkSmartPointer< vtkPoints > | p | ) |
Sets the fixed point set used for the registration.
p | The input point set. |
|
virtual |
Sets the FRE normalization factor. Default value is 1.0.
|
virtual |
Sets the maximum number of iterations of the registration. Default value is 1000.
void mitk::WeightedPointTransform::SetMovingPointSet | ( | vtkSmartPointer< vtkPoints > | p | ) |
Sets the moving point set used for the registration.
p | The input point set. |
|
virtual |
Sets the threshold of the registration. Default value is 0.0001.
|
protected |
This method performs a variant of the weighted point register algorithm presented by A. Danilchenko, R. Balachandran and J. M. Fitzpatrick in January 2010. (Modified in January 2011) converted to C++ by Alfred Franz in March/April 2010.
X | (input) the moving point set |
Y | (input) the fixed (static) point set |
Sigma_X | (input) a 3-by-3-by-N array, each page containing the weighting matrix for the Nth pair of points in X |
Sigma_Y | (input) a 3-by-3-by-N array, each page containing the weighting matrix for the Nth pair of points in Y |
Threshold | (input) the relative size of the change to the moving set above which the iteration continues |
MaxIterations | (input) the maximum number of iterations allowed |
TransformationR | (output) this variable will hold the computed rotation matrix |
TransformationT | (output) this variable will hold the computed translation vector |
FRE | (output) this variable will hold the computed rotation FRE of the transformation |
n | (output) this variable will hold the number of iterations used by the algorithm |
|
protected |
Covariance matrices of the moving point set (Sigma_Y).
Definition at line 163 of file mitkWeightedPointTransform.h.
|
protected |
Covariance matrices of the moving point set (Sigma_X).
Definition at line 160 of file mitkWeightedPointTransform.h.
|
protected |
The fixed point set (Y).
Definition at line 154 of file mitkWeightedPointTransform.h.
|
protected |
The fiducial registration error (FRE) used in the algorithm.
Definition at line 145 of file mitkWeightedPointTransform.h.
|
protected |
Normalization factor for the FRE.
Definition at line 148 of file mitkWeightedPointTransform.h.
|
protected |
The amount of iterations needed by the algorithm.
Definition at line 142 of file mitkWeightedPointTransform.h.
|
protected |
Isotropic point based registration used for initial estimate.
Definition at line 151 of file mitkWeightedPointTransform.h.
|
protected |
Max allowed iterations used by the algorithm.
Definition at line 139 of file mitkWeightedPointTransform.h.
|
protected |
Moving point set (X).
Definition at line 157 of file mitkWeightedPointTransform.h.
|
protected |
3x3 rotation matrix.
Definition at line 169 of file mitkWeightedPointTransform.h.
|
protected |
Threshold used to terminate the algorithm.
Definition at line 136 of file mitkWeightedPointTransform.h.
|
protected |
3x1 translation vector.
Definition at line 166 of file mitkWeightedPointTransform.h.