open3d.pipelines.odometry.compute_rgbd_odometry#

open3d.pipelines.odometry.compute_rgbd_odometry(rgbd_source: open3d.geometry.RGBDImage, rgbd_target: open3d.geometry.RGBDImage, pinhole_camera_intrinsic: open3d.camera.PinholeCameraIntrinsic = PinholeCameraIntrinsic(width=-1, height=-1), odo_init: numpy.ndarray[numpy.float64[4, 4]] = array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]]), jacobian: open3d.pipelines.odometry.RGBDOdometryJacobian = RGBDOdometryJacobianFromHybridTerm, option: open3d.pipelines.odometry.OdometryOption = OdometryOption(iteration_number_per_pyramid_level=[20, 10, 5], depth_diff_max=0.03, depth_min=0, depth_max=4)) tuple[bool, numpy.ndarray[numpy.float64[4, 4]], numpy.ndarray[numpy.float64[6, 6]]]#

Function to estimate 6D rigid motion from two RGBD image pairs. Output: (is_success, 4x4 motion matrix, 6x6 information matrix).

Parameters:
  • rgbd_source (open3d.geometry.RGBDImage) – Source RGBD image.

  • rgbd_target (open3d.geometry.RGBDImage) – Target RGBD image.

  • pinhole_camera_intrinsic (open3d.camera.PinholeCameraIntrinsic, optional, default=PinholeCameraIntrinsic(width=-1, height=-1, )) – Camera intrinsic parameters

  • odo_init (numpy.ndarray[numpy.float64[4, 4]], optional, default=array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]])) – Initial 4x4 motion matrix estimation.

  • jacobian (open3d.pipelines.odometry.RGBDOdometryJacobian, optional, default=RGBDOdometryJacobianFromHybridTerm) – The odometry Jacobian method to use. Can be RGBDOdometryJacobianFromHybridTerm() or RGBDOdometryJacobianFromColorTerm().

  • option (open3d.pipelines.odometry.OdometryOption, optional, default=OdometryOption( iteration_number_per_pyramid_level=[ 20, 10, 5, ] , depth_diff_max=0.03, depth_min=0, depth_max=4, )) – Odometry hyper parameters.

Returns:

tuple[bool, numpy.ndarray[numpy.float64[4, 4]], numpy.ndarray[numpy.float64[6, 6]]]