licornea_tools
intrinsics.h
Go to the documentation of this file.
1 #ifndef LICORNEA_INTRINSICS_H_
2 #define LICORNEA_INTRINSICS_H_
3 
4 #include "opencv.h"
5 #include "json.h"
6 #include "args.h"
7 
8 namespace tlz {
9 
11  real k1 = 0.0;
12  real k2 = 0.0;
13  real k3 = 0.0;
14  real p1 = 0.0;
15  real p2 = 0.0;
16 
17  std::vector<real> cv_coeffs() const {
18  return { k1, k2, p1, p2, k3 };
19  }
20 
21  bool is_none() const {
22  return (k1 == 0.0) && (k2 == 0.0) && (k3 == 0.0) && (p1 == 0.0) && (p2 == 0.0);
23  }
24  explicit operator bool () const { return ! is_none(); }
25 };
26 
27 struct intrinsics {
31  int width = 0;
32  int height = 0;
33 
34  real fx() const { return K(0, 0); }
35  real fy() const { return K(1, 1); }
36  real cx() const { return K(0, 2); }
37  real cy() const { return K(1, 2); }
38 
39 };
40 
43 
44 vec2 undistort_point(const intrinsics&, const vec2& distorted);
45 std::vector<vec2> undistort_points(const intrinsics&, const std::vector<vec2>& distorted);
46 std::vector<cv::Vec2f> undistort_points(const intrinsics&, const std::vector<cv::Vec2f>& distorted);
47 
48 vec2 distort_point(const intrinsics&, const vec2& undistorted);
49 std::vector<vec2> distort_points(const intrinsics&, const std::vector<vec2>& undistorted);
50 
52 
53 }
54 
55 #endif
56 
vec2 undistort_point(const intrinsics &intr, const vec2 &distorted)
Definition: intrinsics.cc:38
std::vector< vec2 > distort_points(const intrinsics &intr, const std::vector< vec2 > &undistorted)
Definition: intrinsics.cc:106
json encode_intrinsics(const intrinsics &intr)
Definition: intrinsics.cc:23
real cy() const
Definition: intrinsics.h:37
cv::Vec< real, 2 > vec2
Definition: common.h:22
intrinsics intrinsics_arg()
Definition: intrinsics.cc:119
real fx() const
Definition: intrinsics.h:34
distortion_parameters distortion
Definition: intrinsics.h:30
cv::Matx< real, 3, 3 > mat33
Definition: common.h:26
double real
Definition: common.h:16
vec2 distort_point(const intrinsics &intr, const vec2 &undistorted)
Definition: intrinsics.cc:82
std::vector< real > cv_coeffs() const
Definition: intrinsics.h:17
std::vector< vec2 > undistort_points(const intrinsics &intr, const std::vector< vec2 > &distorted)
Definition: intrinsics.cc:45
intrinsics decode_intrinsics(const json &j_intr)
Definition: intrinsics.cc:6
real cx() const
Definition: intrinsics.h:36
real fy() const
Definition: intrinsics.h:35
nlohmann::json json
Definition: json.h:11