cameraparameters.h
Go to the documentation of this file.
1 
16 #ifndef _Aruco_CameraParameters_H
17 #define _Aruco_CameraParameters_H
18 
19 #include "aruco_export.h"
20 #include <opencv2/core/core.hpp>
21 #include <string>
22 #include <stdexcept>
23 
24 namespace aruco
25 {
30 {
31 public:
32  // 3x3 matrix (fx 0 cx, 0 fy cy, 0 0 1)
33  cv::Mat CameraMatrix;
34  // distortion matrix
35  cv::Mat Distorsion;
36  // size of the image
37  cv::Size CamSize;
38 
39  // 3x1 matrix (Tx, Ty, Tz), usually 0 for non-stereo cameras or stereo left cameras
40  cv::Mat ExtrinsicMatrix;
41 
50  CameraParameters(cv::Mat cameraMatrix, cv::Mat distorsionCoeff, cv::Size size);
56  void setParams(cv::Mat cameraMatrix, cv::Mat distorsionCoeff, cv::Size size);
60 
63  bool isValid() const
64  {
65  return CameraMatrix.rows != 0 && CameraMatrix.cols != 0 && Distorsion.rows != 0 &&
66  Distorsion.cols != 0 && CamSize.width != -1 && CamSize.height != -1;
67  }
70  CameraParameters &operator=(const CameraParameters &CI);
71 
74  void saveToFile(std::string path, bool inXML = true);
75 
78  void readFromXMLFile(std::string filePath);
79 
82  void resize(cv::Size size);
83 
89  static cv::Point3f getCameraLocation(const cv::Mat &Rvec, const cv::Mat &Tvec);
90 
104  void glGetProjectionMatrix(cv::Size orgImgSize, cv::Size size, double proj_matrix[16],
105  double gnear, double gfar, bool invert = false);
106 
117  void OgreGetProjectionMatrix(cv::Size orgImgSize, cv::Size size, double proj_matrix[16],
118  double gnear, double gfar, bool invert = false);
119 
122  static cv::Mat getRTMatrix(const cv::Mat &R_, const cv::Mat &T_, int forceType);
123 
124 
127  void clear();
128 
129  ARUCO_EXPORT friend std::ostream &operator<<(std::ostream &str, const CameraParameters &cp);
130  ARUCO_EXPORT friend std::istream &operator>>(std::istream &str, CameraParameters &cp);
131 
132 private:
133  // GL routines
134 
135  static void argConvGLcpara2(double cparam[3][4], int width, int height, double gnear,
136  double gfar, double m[16], bool invert);
137  static int arParamDecompMat(double source[3][4], double cpara[3][4], double trans[3][4]);
138  static double norm(double a, double b, double c);
139  static double dot(double a1, double a2, double a3, double b1, double b2, double b3);
140 };
141 } // namespace aruco
142 #endif
aruco::operator>>
std::istream & operator>>(std::istream &str, CameraParameters &cp)
Definition: cameraparameters.cpp:541
aruco::CameraParameters
Parameters of the camera.
Definition: cameraparameters.h:29
aruco::getRTMatrix
cv::Mat getRTMatrix(const cv::Mat &R_, const cv::Mat &T_, int forceType)
Definition: ippe.cpp:33
aruco::CameraParameters::isValid
bool isValid() const
Definition: cameraparameters.h:63
aruco::operator<<
std::ostream & operator<<(std::ostream &str, const CameraParameters &cp)
Definition: cameraparameters.cpp:528
aruco::CameraParameters::CameraMatrix
cv::Mat CameraMatrix
Definition: cameraparameters.h:33
aruco_export.h
aruco::CameraParameters::ExtrinsicMatrix
cv::Mat ExtrinsicMatrix
Definition: cameraparameters.h:40
ARUCO_EXPORT
#define ARUCO_EXPORT
Definition: aruco_export.h:30
aruco
Definition: cameraparameters.h:24
aruco::CameraParameters::CamSize
cv::Size CamSize
Definition: cameraparameters.h:37
aruco::CameraParameters::Distorsion
cv::Mat Distorsion
Definition: cameraparameters.h:35


aruco
Author(s): Rafael Muñoz Salinas , Bence Magyar
autogenerated on Sat Sep 23 2023 02:26:45