3 #include "../../lib/opencv.h" 8 const real depth_q = 0.01;
9 const real color_q = 0.002199;
13 internal_parameters_(internal) { }
18 real dx = (undistorted[0] - ir_par.cx) / ir_par.fx;
19 real dy = (undistorted[1] - ir_par.cy) / ir_par.fy;
23 real dxdy2 = 2 * dx * dy;
24 real kr = 1 + ((ir_par.k3 * r2 + ir_par.k2) * r2 + ir_par.k1) * r2;
25 real out_x = ir_par.fx * (dx * kr + ir_par.p2 * (r2 + 2 * dx2) + ir_par.p1 * dxdy2) + ir_par.cx;
26 real out_y = ir_par.fy * (dy * kr + ir_par.p1 * (r2 + 2 * dy2) + ir_par.p2 * dxdy2) + ir_par.cy;
27 return vec2(out_x, out_y);
34 ir_par.fx, 0.0, ir_par.cx,
35 0.0, ir_par.fy, ir_par.cy,
38 std::vector<real> distortion { ir_par.k1, ir_par.k2, ir_par.p1, ir_par.p2, ir_par.k3 };
39 std::vector<vec2> distorted { distorted_coord };
40 std::vector<vec2> undistorted;
41 cv::undistortPoints(distorted, undistorted, camera_mat, distortion, cv::noArray(), camera_mat);
42 return undistorted.front();
49 real mx = undistorted[0], my = undistorted[1];
51 mx = (mx - ir_par.cx) * depth_q;
52 my = (my - ir_par.cy) * depth_q;
55 (mx * mx * mx * color_par.mx_x3y0) + (my * my * my * color_par.mx_x0y3) +
56 (mx * mx * my * color_par.mx_x2y1) + (my * my * mx * color_par.mx_x1y2) +
57 (mx * mx * color_par.mx_x2y0) + (my * my * color_par.mx_x0y2) + (mx * my * color_par.mx_x1y1) +
58 (mx * color_par.mx_x1y0) + (my * color_par.mx_x0y1) + (color_par.mx_x0y0);
61 (mx * mx * mx * color_par.my_x3y0) + (my * my * my * color_par.my_x0y3) +
62 (mx * mx * my * color_par.my_x2y1) + (my * my * mx * color_par.my_x1y2) +
63 (mx * mx * color_par.my_x2y0) + (my * my * color_par.my_x0y2) + (mx * my * color_par.my_x1y1) +
64 (mx * color_par.my_x1y0) + (my * color_par.my_x0y1) + (color_par.my_x0y0);
66 real rx = (wx / (color_par.fx * color_q)) - (color_par.shift_m / color_par.shift_d);
67 real ry = (wy / color_q) + color_par.cy;
68 real cx = (rx + (color_par.shift_m / z)) * color_par.fx + color_par.cx;
vec2 undistort_ir(vec2 distorted) const
vec2 map_ir_to_color(vec2 undistorted_ir, real ir_z) const
struct tlz::kinect_internal_parameters::@1 ir
cv::Matx< real, 3, 3 > mat33
kinect_remapping(const kinect_internal_parameters &)
struct tlz::kinect_internal_parameters::@0 color
vec2 distort_ir(vec2 undistorted) const
kinect_internal_parameters internal_parameters_