Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
SymmetricICP.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// Copyright (c) 2018-2024 www.open3d.org
5// SPDX-License-Identifier: MIT
6// ----------------------------------------------------------------------------
7
8#pragma once
9
13
14namespace open3d {
15
16namespace geometry {
17class PointCloud;
18}
19
20namespace pipelines {
21namespace registration {
22
23class RegistrationResult;
24
32public:
34
36 const override {
37 return type_;
38 };
42 std::shared_ptr<RobustKernel> kernel = std::make_shared<L2Loss>())
43 : kernel_(std::move(kernel)) {}
44
54 const CorrespondenceSet &corres) const override;
55
63 Eigen::Matrix4d ComputeTransformation(
66 const CorrespondenceSet &corres) const override;
67
74 std::tuple<std::shared_ptr<const geometry::PointCloud>,
75 std::shared_ptr<const geometry::PointCloud>>
79 double max_correspondence_distance) const override;
80
82 std::shared_ptr<RobustKernel> kernel_ = std::make_shared<L2Loss>();
83
84private:
87};
88
106 double max_correspondence_distance,
107 const Eigen::Matrix4d &init = Eigen::Matrix4d::Identity(),
108 const TransformationEstimationSymmetric &estimation =
111
112} // namespace registration
113} // namespace pipelines
114} // namespace open3d
Real target
Definition SurfaceReconstructionPoisson.cpp:270
Eigen::Vector3d source
Definition SymmetricICP.cpp:62
A point cloud consists of point coordinates, and optionally point colors and point normals.
Definition PointCloud.h:36
Class that defines the convergence criteria of ICP.
Definition Registration.h:36
Definition TransformationEstimation.h:43
Estimates a source-to-target transformation with symmetric ICP.
Definition SymmetricICP.h:31
TransformationEstimationSymmetric(std::shared_ptr< RobustKernel > kernel=std::make_shared< L2Loss >())
Constructs a symmetric transformation estimator.
Definition SymmetricICP.h:41
Eigen::Matrix4d ComputeTransformation(const geometry::PointCloud &source, const geometry::PointCloud &target, const CorrespondenceSet &corres) const override
Estimates a source-to-target transformation update.
Definition SymmetricICP.cpp:95
std::shared_ptr< RobustKernel > kernel_
shared_ptr to an Abstract RobustKernel that could mutate at runtime.
Definition SymmetricICP.h:82
std::tuple< std::shared_ptr< const geometry::PointCloud >, std::shared_ptr< const geometry::PointCloud > > InitializePointCloudsForTransformation(const geometry::PointCloud &source, const geometry::PointCloud &target, double max_correspondence_distance) const override
Validates and initializes point clouds for symmetric ICP.
Definition SymmetricICP.cpp:178
double ComputeRMSE(const geometry::PointCloud &source, const geometry::PointCloud &target, const CorrespondenceSet &corres) const override
Computes the symmetric point-to-plane RMSE.
Definition SymmetricICP.cpp:73
TransformationEstimationType GetTransformationEstimationType() const override
Definition SymmetricICP.h:35
RegistrationResult RegistrationSymmetricICP(const geometry::PointCloud &source, const geometry::PointCloud &target, double max_correspondence_distance, const Eigen::Matrix4d &init, const TransformationEstimationSymmetric &estimation, const ICPConvergenceCriteria &criteria)
Registers source to target with symmetric point-to-plane ICP.
Definition SymmetricICP.cpp:195
std::vector< Eigen::Vector2i > CorrespondenceSet
Definition Feature.h:26
TransformationEstimationType
Definition TransformationEstimation.h:29
Definition PinholeCameraIntrinsic.cpp:16
Definition Device.h:113