75 lines
3.6 KiB
C
75 lines
3.6 KiB
C
![]() |
// ----------------------------------------------------------------------------
|
||
|
// - 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
|