3Gear Systems SDK  v0.9.34
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
OpenCVCamera.h
1 #pragma once
2 
3 #include "HandTrackingClient/VecMath.h"
4 
5 namespace HandTrackingClient
6 {
7 
35 {
37  OpenCVCamera (const size_t imageWidth_in, const size_t imageHeight_in,
38  const Transformd& extrinsics_in,
39  const double fx_in, const double fy_in,
40  const double cx_in, const double cy_in,
41  const double k1_in, const double k2_in,
42  const double p1_in, const double p2_in,
43  const double k3_in);
44 
46  OpenCVCamera();
47 
59 
74  Matrix4d glProjectionMatrix(double near_z, double far_z) const;
75 
80  Vector3d worldToCamera (const Vector3d& p_world) const;
81 
89  Vector3d cameraToImage (const Vector3d& p_camera) const;
90 
94  Vector3d project (const Vector3d& p_world) const { return cameraToImage (worldToCamera (p_world)); }
95 
102 
104  size_t imageWidth;
105 
107  size_t imageHeight;
108 
111 
112  double fx;
114  double fy;
115 
118 
119  double cx;
121  double cy;
122 
124  double k1;
126  double k2;
128  double k3;
129 
131  double p1;
133  double p2;
134 };
135 
136 } // namespace HandTrackingClient
137