-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsurface_registration.h
45 lines (37 loc) · 1.07 KB
/
surface_registration.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef SURFACE_REGISTRATION_H
#define SURFACE_REGISTRATION_H
#include <QObject>
#include <vtkPolyData.h>
#include "data_io.h"
#include "vtkTransform.h"
#include "vtkIterativeClosestPointTransform.h"
#include "vtkSmartPointer.h"
#include "vtkTransformPolyDataFilter.h"
#include "vtkMatrix4x4.h"
#include "vtkPCA_ICP_Transform.h"
#include "vtkLandmarkTransform.h"
#include "vtkITKIterativeCloestPoint.h"
class SurfaceRegistration : public QObject
{
Q_OBJECT
public:
enum RegistrationMethodEnum { ICP, PCAICP, ITKICP };
explicit SurfaceRegistration(QObject* parent = 0);
~SurfaceRegistration();
void SetDataIO(DataIO*);
void SetRegistrationMethod(RegistrationMethodEnum);
void SetMaximumIterationSteps(int);
void Update();
public slots:
signals:
void InitialTransformComplete();
void RegistrationComplete();
private:
RegistrationMethodEnum m_registrationMethodEnum;
DataIO* m_dataIO;
void ICPRegistration(vtkPolyData* source);
void PCAICPRegistration(vtkPolyData* source);
void ITKICPRegistration(vtkPolyData* source);
int m_maxIterSteps;
};
#endif // !SURFACE_REGISTRATION