ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
RGBDOdometryJacobian.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <Eigen.h>
11 
12 #include <Eigen/Core>
13 #include <iostream>
14 #include <tuple>
15 #include <vector>
16 
18 
19 namespace cloudViewer {
20 
21 namespace geometry {
22 class Image;
23 }
24 
25 namespace geometry {
26 class RGBDImage;
27 }
28 
29 namespace pipelines {
30 namespace odometry {
31 
32 typedef std::vector<Eigen::Vector4i, utility::Vector4i_allocator>
34 
39 public:
42  virtual ~RGBDOdometryJacobian() {}
43 
44 public:
50  int row,
51  std::vector<Eigen::Vector6d, utility::Vector6d_allocator> &J_r,
52  std::vector<double> &r,
53  std::vector<double> &w,
54  const geometry::RGBDImage &source,
55  const geometry::RGBDImage &target,
56  const geometry::Image &source_xyz,
57  const geometry::RGBDImage &target_dx,
58  const geometry::RGBDImage &target_dy,
59  const Eigen::Matrix3d &intrinsic,
60  const Eigen::Matrix4d &extrinsic,
61  const CorrespondenceSetPixelWise &corresps) const = 0;
62 };
63 
74 public:
78 
79 public:
82  int row,
83  std::vector<Eigen::Vector6d, utility::Vector6d_allocator> &J_r,
84  std::vector<double> &r,
85  std::vector<double> &w,
86  const geometry::RGBDImage &source,
87  const geometry::RGBDImage &target,
88  const geometry::Image &source_xyz,
89  const geometry::RGBDImage &target_dx,
90  const geometry::RGBDImage &target_dy,
91  const Eigen::Matrix3d &intrinsic,
92  const Eigen::Matrix4d &extrinsic,
93  const CorrespondenceSetPixelWise &corresps) const override;
94 };
95 
110 public:
114 
115 public:
118  int row,
119  std::vector<Eigen::Vector6d, utility::Vector6d_allocator> &J_r,
120  std::vector<double> &r,
121  std::vector<double> &w,
122  const geometry::RGBDImage &source,
123  const geometry::RGBDImage &target,
124  const geometry::Image &source_xyz,
125  const geometry::RGBDImage &target_dx,
126  const geometry::RGBDImage &target_dy,
127  const Eigen::Matrix3d &intrinsic,
128  const Eigen::Matrix4d &extrinsic,
129  const CorrespondenceSetPixelWise &corresps) const override;
130 };
131 
132 } // namespace odometry
133 } // namespace pipelines
134 } // namespace cloudViewer
The Image class stores image with customizable width, height, num of channels and bytes per channel.
Definition: Image.h:33
RGBDImage is for a pair of registered color and depth images,.
Definition: RGBDImage.h:27
void ComputeJacobianAndResidual(int row, std::vector< Eigen::Vector6d, utility::Vector6d_allocator > &J_r, std::vector< double > &r, std::vector< double > &w, const geometry::RGBDImage &source, const geometry::RGBDImage &target, const geometry::Image &source_xyz, const geometry::RGBDImage &target_dx, const geometry::RGBDImage &target_dy, const Eigen::Matrix3d &intrinsic, const Eigen::Matrix4d &extrinsic, const CorrespondenceSetPixelWise &corresps) const override
Parameterized Constructor.
void ComputeJacobianAndResidual(int row, std::vector< Eigen::Vector6d, utility::Vector6d_allocator > &J_r, std::vector< double > &r, std::vector< double > &w, const geometry::RGBDImage &source, const geometry::RGBDImage &target, const geometry::Image &source_xyz, const geometry::RGBDImage &target_dx, const geometry::RGBDImage &target_dy, const Eigen::Matrix3d &intrinsic, const Eigen::Matrix4d &extrinsic, const CorrespondenceSetPixelWise &corresps) const override
Parameterized Constructor.
Base class that computes Jacobian from two RGB-D images.
virtual void ComputeJacobianAndResidual(int row, std::vector< Eigen::Vector6d, utility::Vector6d_allocator > &J_r, std::vector< double > &r, std::vector< double > &w, const geometry::RGBDImage &source, const geometry::RGBDImage &target, const geometry::Image &source_xyz, const geometry::RGBDImage &target_dx, const geometry::RGBDImage &target_dy, const Eigen::Matrix3d &intrinsic, const Eigen::Matrix4d &extrinsic, const CorrespondenceSetPixelWise &corresps) const =0
std::vector< Eigen::Vector4i, utility::Vector4i_allocator > CorrespondenceSetPixelWise
Generic file read and write utility for python interface.