NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
mitkInvariantPointCalibration.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 mitkInvariantPointCalibration_h
16 #define mitkInvariantPointCalibration_h
17 
18 #include "niftkOpenCVExports.h"
19 #include <string>
20 #include <itkObject.h>
21 #include <itkObjectFactory.h>
22 #include <mitkCommon.h>
23 #include <mitkVector.h>
24 #include <cv.h>
28 
29 namespace mitk {
30 
36 {
37 
38 public:
39 
40  mitkClassMacroItkParent(InvariantPointCalibration, itk::Object)
41 
42  typedef mitk::TimeStampsContainer::TimeStamp TimeStampType;
43 
44  void SetInvariantPoint(const mitk::Point3D& point);
45  mitk::Point3D GetInvariantPoint() const;
46 
47  void SetOptimiseInvariantPoint(const bool&);
48  bool GetOptimiseInvariantPoint() const;
49 
50  void SetTimingLag(const double& timeStamp);
51  void SetAllowableTimingError(const TimeStampsContainer::TimeStamp& maxError);
52  double GetTimingLag();
53 
54  void SetOptimiseTimingLag(const bool&);
55  bool GetOptimiseTimingLag() const;
56 
57  void SetRigidTransformation(const cv::Matx44d& rigidBodyTrans);
58  cv::Matx44d GetRigidTransformation() const;
59 
60  void SetRigidTransformationParameters(const std::vector<double>& rigidBodyTrans);
61 
62  void SetOptimiseRigidTransformation(const bool&);
63  bool GetOptimiseRigidTransformation() const;
64 
65  void SetVerbose(const bool&);
66  bool GetVerbose() const;
67 
71  void LoadRigidTransformation(const std::string& fileName);
72 
76  void SaveRigidTransformation(const std::string& fileName);
77 
81  void SetTrackingData(mitk::TrackingAndTimeStampsContainer* trackingData);
82 
86  void SetPointData(std::vector< std::pair<unsigned long long, cv::Point3d> >* pointData);
87 
91  virtual double Calibrate() = 0;
92 
93 protected:
94 
96  virtual ~InvariantPointCalibration();
97 
98  InvariantPointCalibration(const InvariantPointCalibration&); // Purposefully not implemented.
99  InvariantPointCalibration& operator=(const InvariantPointCalibration&); // Purposefully not implemented.
100 
101 protected:
102 
103  itk::InvariantPointCalibrationCostFunction::Pointer m_CostFunction; // constructor in derived classes MUST create one.
104  std::vector< std::pair<unsigned long long, cv::Point3d> > *m_PointData;
106 
107 }; // end class
108 
109 } // end namespace
110 
111 #endif
itk::SmartPointer< Self > Pointer
Definition: itkInvariantPointCalibrationCostFunction.h:54
unsigned long long TimeStamp
Definition: mitkTimeStampsContainer.h:34
itk::InvariantPointCalibrationCostFunction::Pointer m_CostFunction
Definition: mitkInvariantPointCalibration.h:103
Definition: ReceptorMemberCommandTest.cxx:25
std::vector< std::pair< unsigned long long, cv::Point3d > > * m_PointData
Definition: mitkInvariantPointCalibration.h:104
#define NIFTKOPENCV_EXPORT
Definition: niftkSequentialCpuQds.h:27
Contains a matched vector of timestamps, and 4x4 tracking Matrices.
Definition: mitkTrackingAndTimeStampsContainer.h:32
Base class for Ultrasound Pin/Cross-Wire calibration and Video Hand-Eye calibration.
Definition: mitkInvariantPointCalibration.h:35
GLsizei const GLcharARB ** string
Definition: glew.h:5194
mitk::TrackingAndTimeStampsContainer * m_TrackingData
Definition: mitkInvariantPointCalibration.h:105