licornea_tools
kinect_reprojection_parameters.cc
Go to the documentation of this file.
2 
3 namespace tlz {
4 
5 namespace {
6 
7 json encode_depth_offset_(const kinect_reprojection_parameters::depth_offset_polyfit& fit) {
8  json j_fit = json::object();
9  j_fit["x0y0"] = fit.x0y0;
10  j_fit["x1y0"] = fit.x1y0;
11  j_fit["x0y1"] = fit.x0y1;
12  j_fit["x2y0"] = fit.x2y0;
13  j_fit["x0y2"] = fit.x0y2;
14  j_fit["x1y1"] = fit.x1y1;
15  return j_fit;
16 }
17 
18 kinect_reprojection_parameters::depth_offset_polyfit decode_depth_offset_(const json& j_fit) {
19  kinect_reprojection_parameters::depth_offset_polyfit fit;
20  fit.x0y0 = get_or(j_fit, "x0y0", 0.0);
21  fit.x1y0 = get_or(j_fit, "x1y0", 0.0);
22  fit.x0y1 = get_or(j_fit, "x0y1", 0.0);
23  fit.x2y0 = get_or(j_fit, "x2y0", 0.0);
24  fit.x0y2 = get_or(j_fit, "x0y2", 0.0);
25  fit.x1y1 = get_or(j_fit, "x1y1", 0.0);
26  return fit;
27 }
28 
29 }
30 
32  return x0y0 + xy[0]*x1y0 + xy[1]*x0y1 + x2y0*xy[0]*xy[0] + x0y2*xy[1]*xy[1] + x1y1*xy[0]*xy[1];
33 }
34 
36  return (x0y0 == 0.0) && (x1y0 == 0.0) && (x0y1 == 0.0) && (x2y0 == 0.0) && (x0y2 == 0.0) && (x1y1 == 0.0);
37 }
38 
40  json j_parameters = json::object();
41  j_parameters["ir_intrinsics"] = encode_intrinsics(parameters.ir_intrinsics);
42  j_parameters["color_intrinsics"] = encode_intrinsics(parameters.color_intrinsics);
43  j_parameters["rotation"] = encode_mat(parameters.rotation);
44  j_parameters["translation"] = encode_mat(parameters.translation);
45  j_parameters["ir_depth_offset"] = encode_depth_offset_(parameters.ir_depth_offset);
46  j_parameters["color_depth_offset"] = encode_depth_offset_(parameters.color_depth_offset);
47  return j_parameters;
48 }
49 
50 
53  parameters.ir_intrinsics = decode_intrinsics(j_parameters["ir_intrinsics"]);
54  parameters.color_intrinsics = decode_intrinsics(j_parameters["color_intrinsics"]);
55  parameters.rotation = decode_mat(j_parameters["rotation"]);
56  parameters.translation = decode_mat(j_parameters["translation"]);
57  if(has(j_parameters, "ir_depth_offset")) parameters.ir_depth_offset = decode_depth_offset_(j_parameters["ir_depth_offset"]);
58  if(has(j_parameters, "color_depth_offset")) parameters.color_depth_offset = decode_depth_offset_(j_parameters["color_depth_offset"]);
59  return parameters;
60 }
61 
62 }
63 
bool has(const json &j, const std::string &key)
Definition: json.h:24
kinect_reprojection_parameters decode_kinect_reprojection_parameters(const json &j_parameters)
json encode_intrinsics(const intrinsics &intr)
Definition: intrinsics.cc:23
json encode_kinect_reprojection_parameters(const kinect_reprojection_parameters &parameters)
cv::Vec< real, 2 > vec2
Definition: common.h:22
cv::Mat_< real > decode_mat(const json &j)
Definition: json.cc:32
json encode_mat(const Mat &mat)
Definition: json.h:19
double real
Definition: common.h:16
intrinsics decode_intrinsics(const json &j_intr)
Definition: intrinsics.cc:6
nlohmann::json json
Definition: json.h:11
T get_or(const json &j, const std::string &key, const T &default_value)
Definition: json.h:28