image_framework_ymj/include/open3d/t/pipelines/kernel/RGBDOdometry.h

75 lines
3.6 KiB
C
Raw Normal View History

2024-12-06 16:25:16 +08:00
// ----------------------------------------------------------------------------
// - Open3D: www.open3d.org -
// ----------------------------------------------------------------------------
// Copyright (c) 2018-2023 www.open3d.org
// SPDX-License-Identifier: MIT
// ----------------------------------------------------------------------------
#pragma once
#include "open3d/core/Tensor.h"
namespace open3d {
namespace t {
namespace pipelines {
namespace kernel {
namespace odometry {
void ComputeOdometryResultPointToPlane(
const core::Tensor &source_vertex_map,
const core::Tensor &target_vertex_map,
const core::Tensor &target_normal_map,
const core::Tensor &intrinsics,
const core::Tensor &init_source_to_target,
core::Tensor &delta,
float &inlier_residual,
int &inlier_count,
const float depth_outlier_trunc,
const float depth_huber_delta);
void ComputeOdometryResultIntensity(const core::Tensor &source_depth,
const core::Tensor &target_depth,
const core::Tensor &source_intensity,
const core::Tensor &target_intensity,
const core::Tensor &target_intensity_dx,
const core::Tensor &target_intensity_dy,
const core::Tensor &source_vertex_map,
const core::Tensor &intrinsics,
const core::Tensor &init_source_to_target,
core::Tensor &delta,
float &inlier_residual,
int &inlier_count,
const float depth_outlier_trunc,
const float intensity_huber_delta);
void ComputeOdometryResultHybrid(const core::Tensor &source_depth,
const core::Tensor &target_depth,
const core::Tensor &source_intensity,
const core::Tensor &target_intensity,
const core::Tensor &target_depth_dx,
const core::Tensor &target_depth_dy,
const core::Tensor &target_intensity_dx,
const core::Tensor &target_intensity_dy,
const core::Tensor &source_vertex_map,
const core::Tensor &intrinsics,
const core::Tensor &init_source_to_target,
core::Tensor &delta,
float &inlier_residual,
int &inlier_count,
const float depth_outlier_trunc,
const float depth_huber_delta,
const float intensity_huber_delta);
void ComputeOdometryInformationMatrix(const core::Tensor &source_vertex_map,
const core::Tensor &target_vertex_map,
const core::Tensor &intrinsic,
const core::Tensor &source_to_target,
const float square_dist_thr,
core::Tensor &information);
} // namespace odometry
} // namespace kernel
} // namespace pipelines
} // namespace t
} // namespace open3d