MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkCameraIntrinsics.h
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
13
14#ifndef mitkCameraIntrinsics_h
15#define mitkCameraIntrinsics_h
16
17#include <mitkCommon.h>
18#include <mitkNumericTypes.h>
19#include <itkDataObject.h>
20#include <vnl/vnl_matrix_fixed.h>
21#include "mitkXMLSerializable.h"
22#include <MitkCameraCalibrationExports.h>
23
24#include "opencv2/core.hpp"
25
26#include <mutex>
27
28int mitkCameraIntrinsicsTest(int, char* []);
29
30namespace mitk
31{
35 class MITKCAMERACALIBRATION_EXPORT CameraIntrinsics: virtual public itk::Object,
36 virtual public mitk::XMLSerializable
37 {
38 public:
42 friend int mitkCameraIntrinsicsTest(int argc, char* argv[]);
51
56
60 void Copy(const CameraIntrinsics* other);
61
65 bool Equals( const CameraIntrinsics* other ) const;
66
70 vnl_matrix_fixed<mitk::ScalarType, 3, 3> GetVnlCameraMatrix() const;
71
76 vnl_matrix_fixed<mitk::ScalarType, 3, 4> GetVnlCameraMatrix3x4() const;
77
82 bool IsValid() const;
83 void SetValid(bool valid);
84 cv::Mat GetCameraMatrix() const;
85 cv::Mat GetDistorsionCoeffs();
86 cv::Mat GetDistorsionCoeffs() const;
87 void ToXML(tinyxml2::XMLElement* elem) const override;
88 std::string ToString() const;
89 std::string GetString();
90 double GetFocalLengthX() const;
91 double GetFocalLengthY() const;
92 double GetPrincipalPointX() const;
93 double GetPrincipalPointY() const;
94 mitk::Point4D GetDistorsionCoeffsAsPoint4D() const;
95 mitk::Point3D GetFocalPoint() const;
96 mitk::Point3D GetPrincipalPoint() const;
97 vnl_vector_fixed<mitk::ScalarType, 2> GetFocalPointAsVnlVector() const;
98 vnl_vector_fixed<mitk::ScalarType, 2> GetPrincipalPointAsVnlVector() const;
99
103 void SetCameraMatrix( const vnl_matrix_fixed<mitk::ScalarType, 3, 3>&
104 _CameraMatrix );
105
106 void SetIntrinsics( const cv::Mat& _CameraMatrix
107 , const cv::Mat& _DistorsionCoeffs);
108
109 void SetFocalLength( double x, double y );
110 void SetPrincipalPoint( double x, double y );
111 void SetDistorsionCoeffs( double k1, double k2, double p1, double p2 );
112
113 void SetIntrinsics( const mitk::Point3D& focalPoint,
114 const mitk::Point3D& principalPoint,
115 const mitk::Point4D& distortionCoefficients);
116
117 void FromXML(const tinyxml2::XMLElement* elem) override;
118 void FromGMLCalibrationXML(const tinyxml2::XMLElement* elem);
119 std::string ToOctaveString(const std::string& varName="CameraIntrinsics");
120
121 ~CameraIntrinsics() override;
122
123 protected:
126
130 mutable std::mutex m_Mutex;
131
132 private:
133
134 itk::LightObject::Pointer InternalClone() const override;
135 };
136
137} // namespace mitk
138
139MITKCAMERACALIBRATION_EXPORT std::ostream& operator<<
140 (std::ostream& os, mitk::CameraIntrinsics::Pointer p);
141
142#endif
class representing camera intrinsics and related functions
mitkClassMacroItkParent(CameraIntrinsics, itk::Object)
interface for all classes able to write themselves to XML files
int mitkCameraIntrinsicsTest(int, char *[])
IGT Exceptions.