15 #ifndef __itkPSMProcrustesRegistration_h 16 #define __itkPSMProcrustesRegistration_h 18 #include "itkDataObject.h" 19 #include "itkWeakPointer.h" 20 #include "vnl/vnl_matrix.h" 21 #include "itkPSMParticleSystem.h" 22 #include "itkPSMProcrustesFunction.h" 35 template <
unsigned int VDimension>
42 typedef DataObject Superclass;
43 typedef SmartPointer<Self> Pointer;
44 typedef SmartPointer<const Self> ConstPointer;
45 typedef WeakPointer<const Self> ConstWeakPointer;
53 typedef typename PSMProcrustesFunctionType::ShapeListType ShapeListType;
54 typedef typename PSMProcrustesFunctionType::ShapeType ShapeType;
55 typedef typename PSMProcrustesFunctionType::PointType PointType;
56 typedef typename PSMProcrustesFunctionType::SimilarityTransformListType SimilarityTransformListType;
65 { m_PSMParticleSystem = p; }
66 const PSMParticleSystemType *GetPSMParticleSystem()
const 67 {
return m_PSMParticleSystem; }
68 PSMParticleSystemType *GetPSMParticleSystem()
69 {
return m_PSMParticleSystem; }
75 this->RunRegistration();
81 void RunRegistration(
int i);
82 void RunRegistration()
84 for (
int i = 0; i < m_DomainsPerShape; i++)
86 this->RunRegistration(i);
93 { m_DomainsPerShape = i; }
94 int GetDomainsPerShape()
const 95 {
return m_DomainsPerShape; }
100 {
return m_Scaling; }
102 { m_Scaling =
true; }
104 { m_Scaling =
false; }
108 { m_Procrustes_Interval = i; }
109 int GetProcrustesInterval()
110 {
return m_Procrustes_Interval; }
115 m_DomainsPerShape(1), m_Scaling(
true)
119 void PrintSelf(std::ostream& os, Indent indent)
const 120 { Superclass::PrintSelf(os,indent); }
124 void operator=(
const Self&);
127 int m_Procrustes_Interval;
130 int m_DomainsPerShape;
136 PSMParticleSystemType *m_PSMParticleSystem;
Generalized Procrustes Analysis is the rigid registration between different input shapes represented ...
PSMProcrustesRegistration Self
void SetProcrustesInterval(int i)
void IterationCallback(itk::Object *, const itk::EventObject &)
void SetDomainsPerShape(int i)
A facade class that manages interactions with a particle system.
PSMParticleSystem< VDimension > PSMParticleSystemType
PSMProcrustesFunction< VDimension > PSMProcrustesFunctionType
This class interfaces with the PSMProcrustesFunction class to register a list of point sets...
void SetPSMParticleSystem(PSMParticleSystemType *p)
vnl_matrix_fixed< double, VDimension+1, VDimension+1 > TransformType