NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
niftkPointBasedRegistration.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkPointBasedRegistration_h
16 #define niftkPointBasedRegistration_h
17 
18 #include <niftkPointRegExports.h>
19 
20 #include <vtkMatrix4x4.h>
21 #include <mitkPointSet.h>
22 #include <itkObject.h>
23 #include <itkObjectFactoryBase.h>
24 
25 namespace niftk {
26 
27 namespace PointBasedRegistrationConstants
28 {
29 const bool DEFAULT_USE_ICP_INITIALISATION = false;
30 const bool DEFAULT_USE_POINT_ID_TO_MATCH = false;
31 const bool DEFAULT_STRIP_NAN_FROM_INPUT = true;
32 }
33 
44 class NIFTKPOINTREG_EXPORT PointBasedRegistration : public itk::Object
45 {
46 public:
47 
48  mitkClassMacroItkParent(PointBasedRegistration, itk::Object)
49  itkNewMacro(PointBasedRegistration)
50 
51 
54  itkSetMacro(UsePointIDToMatchPoints, bool);
55  itkGetMacro(UsePointIDToMatchPoints, bool);
56 
60  itkSetMacro(UseICPInitialisation, bool);
61  itkGetMacro(UseICPInitialisation, bool);
62 
66  itkSetMacro(StripNaNFromInput, bool);
67  itkGetMacro(StripNaNFromInput, bool);
68 
77  double Update(const mitk::PointSet::Pointer fixedPoints,
78  const mitk::PointSet::Pointer movingPoints,
79  vtkMatrix4x4& outputMatrix) const;
80 
81 protected:
82 
83  PointBasedRegistration(); // Purposefully hidden.
84  virtual ~PointBasedRegistration(); // Purposefully hidden.
85 
86  PointBasedRegistration(const PointBasedRegistration&); // Purposefully not implemented.
87  PointBasedRegistration& operator=(const PointBasedRegistration&); // Purposefully not implemented.
88 
89 private:
90 
91  bool m_UseICPInitialisation;
92  bool m_UsePointIDToMatchPoints;
93  bool m_StripNaNFromInput;
94 
95 }; // end class
96 
97 } // end namespace
98 
99 #endif
const bool DEFAULT_USE_ICP_INITIALISATION
Definition: niftkPointBasedRegistration.h:29
const bool DEFAULT_USE_POINT_ID_TO_MATCH
Definition: niftkPointBasedRegistration.h:30
Class to implement point based registration of two point sets.
Definition: niftkPointBasedRegistration.h:44
const bool DEFAULT_STRIP_NAN_FROM_INPUT
Definition: niftkPointBasedRegistration.h:31
Definition: niftkExceptionObject.h:21