licornea_tools
internal_ir_intrinsics.cc
Go to the documentation of this file.
1 #include "../lib/args.h"
2 #include "../lib/intrinsics.h"
3 #include "../lib/json.h"
5 #include <iostream>
6 #include <cstdlib>
7 
8 using namespace tlz;
9 
10 
11 int main(int argc, const char* argv[]) {
12  get_args(argc, argv, "internal_parameters.json out_ir_intr.json");
13  std::string internal_parameters_filename = in_filename_arg();
14  std::string ir_intrinsics_filename = out_filename_arg();
15 
16  kinect_internal_parameters internal_parameters = decode_kinect_internal_parameters(import_json_file(internal_parameters_filename));
17  const auto& par = internal_parameters.ir;
18 
19  intrinsics ir_intr;
20 
21  ir_intr.K = mat33(
22  par.fx, 0.0, par.cx,
23  0.0, par.fy, par.cy,
24  0.0, 0.0, 1.0
25  );
26  ir_intr.distortion.k1 = par.k1;
27  ir_intr.distortion.k2 = par.k2;
28  ir_intr.distortion.k3 = par.k3;
29  ir_intr.distortion.p1 = par.p1;
30  ir_intr.distortion.p2 = par.p2;
31  ir_intr.width = 512;
32  ir_intr.height = 424;
33 
34  export_json_file(encode_intrinsics(ir_intr), ir_intrinsics_filename);
35 }
json encode_intrinsics(const intrinsics &intr)
Definition: intrinsics.cc:23
std::string in_filename_arg()
Definition: args.cc:98
kinect_internal_parameters decode_kinect_internal_parameters(const json &j)
int main(int argc, const char *argv[])
struct tlz::kinect_internal_parameters::@1 ir
distortion_parameters distortion
Definition: intrinsics.h:30
cv::Matx< real, 3, 3 > mat33
Definition: common.h:26
void export_json_file(const json &j, const std::string &filename, bool compact)
Definition: json.cc:9
std::string out_filename_arg()
Definition: args.cc:104
json import_json_file(const std::string &filename)
Definition: json.cc:24
void get_args(int argc, const char *argv[], const std::string &usage)
Definition: args.cc:49