8 reprojection_parameters_(reproj) { }
12 const std::vector<vec2> distorted_ir_i_xy_points,
13 const std::vector<real>& ir_z_points,
14 std::vector<real>& out_color_z_points,
17 std::size_t n = distorted_ir_i_xy_points.size();
18 assert(ir_z_points.size() == n);
20 assert(out_color_z_point.size() == n);
24 std::vector<vec2> undistorted_ir_i_xy_points(n);
26 distorted_ir_i_xy_points,
27 undistorted_ir_i_xy_points,
35 std::vector<vec3> color_v_points(n);
36 #pragma omp parallel for 37 for(
int idx = 0; idx < n; ++idx) {
38 const vec2& undistorted_ir_i_xy = undistorted_ir_i_xy_points[idx];
39 const real& ir_z = ir_z_points[idx];
40 real& color_z = out_color_z_points[idx];
41 vec3& color_v = color_v_points[idx];
45 color_v =
vec3(0.0, 0.0, 0.0);
51 real corrected_ir_z = ir_z - ir_z_offset;
53 vec3 undistorted_ir_i_h(undistorted_ir_i_xy[0], undistorted_ir_i_xy[1], 1.0);
54 undistorted_ir_i_h *= corrected_ir_z;
57 color_v = reprojection_parameters_.
rotation.t() * (ir_v - reprojection_parameters_.
translation);
61 std::vector<vec2> out_color_i_xy_points(n);
76 #pragma omp parallel for 77 for(
int idx = 0; idx < n; ++idx) {
78 real& color_z = out_color_z_points[idx];
79 const vec2& color_xy = out_color_i_xy_points[idx];
81 color_z -= color_z_offset;
102 return out_color_i_xy_points;
std::vector< vec2 > distort_points(const intrinsics &intr, const std::vector< vec2 > &undistorted)
intrinsics color_intrinsics
std::vector< vec2 > reproject_points_ir_to_color(const std::vector< vec2 > distorted_ir_i_xy, const std::vector< real > &ir_z, std::vector< real > &out_color_z, bool distort_color=true) const
kinect_reprojection(const kinect_reprojection_parameters &)
distortion_parameters distortion
depth_offset_polyfit color_depth_offset
std::vector< real > cv_coeffs() const
depth_offset_polyfit ir_depth_offset