Open3D (C++ API)  0.16.0
FastGlobalRegistration.h
Go to the documentation of this file.
1// ----------------------------------------------------------------------------
2// - Open3D: www.open3d.org -
3// ----------------------------------------------------------------------------
4// The MIT License (MIT)
5//
6// Copyright (c) 2018-2021 www.open3d.org
7//
8// Permission is hereby granted, free of charge, to any person obtaining a copy
9// of this software and associated documentation files (the "Software"), to deal
10// in the Software without restriction, including without limitation the rights
11// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12// copies of the Software, and to permit persons to whom the Software is
13// furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice shall be included in
16// all copies or substantial portions of the Software.
17//
18// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24// IN THE SOFTWARE.
25// ----------------------------------------------------------------------------
26
27#pragma once
28
29#include <Eigen/Core>
30#include <Eigen/Geometry>
31#include <tuple>
32#include <vector>
33
36
37namespace open3d {
38
39namespace geometry {
40class PointCloud;
41}
42
43namespace pipelines {
44namespace registration {
45
46class Feature;
47class RegistrationResult;
48
53public:
69 FastGlobalRegistrationOption(double division_factor = 1.4,
70 bool use_absolute_scale = false,
71 bool decrease_mu = true,
72 double maximum_correspondence_distance = 0.025,
73 int iteration_number = 64,
74 double tuple_scale = 0.95,
75 int maximum_tuple_count = 1000,
76 bool tuple_test = true)
77 : division_factor_(division_factor),
78 use_absolute_scale_(use_absolute_scale),
79 decrease_mu_(decrease_mu),
80 maximum_correspondence_distance_(maximum_correspondence_distance),
81 iteration_number_(iteration_number),
82 tuple_scale_(tuple_scale),
83 maximum_tuple_count_(maximum_tuple_count),
84 tuple_test_(tuple_test) {}
86
87public:
108};
109
117 const geometry::PointCloud &source,
118 const geometry::PointCloud &target,
119 const CorrespondenceSet &corres,
120 const FastGlobalRegistrationOption &option =
122
130 const geometry::PointCloud &source,
131 const geometry::PointCloud &target,
132 const Feature &source_feature,
133 const Feature &target_feature,
134 const FastGlobalRegistrationOption &option =
136
137} // namespace registration
138} // namespace pipelines
139} // namespace open3d
A point cloud consists of point coordinates, and optionally point colors and point normals.
Definition: PointCloud.h:55
Options for FastGlobalRegistration.
Definition: FastGlobalRegistration.h:52
bool tuple_test_
Definition: FastGlobalRegistration.h:107
bool use_absolute_scale_
Definition: FastGlobalRegistration.h:92
int maximum_tuple_count_
Maximum number of tuples..
Definition: FastGlobalRegistration.h:104
bool decrease_mu_
Definition: FastGlobalRegistration.h:95
FastGlobalRegistrationOption(double division_factor=1.4, bool use_absolute_scale=false, bool decrease_mu=true, double maximum_correspondence_distance=0.025, int iteration_number=64, double tuple_scale=0.95, int maximum_tuple_count=1000, bool tuple_test=true)
Parameterized Constructor.
Definition: FastGlobalRegistration.h:69
double maximum_correspondence_distance_
Definition: FastGlobalRegistration.h:98
~FastGlobalRegistrationOption()
Definition: FastGlobalRegistration.h:85
double division_factor_
Division factor used for graduated non-convexity.
Definition: FastGlobalRegistration.h:89
int iteration_number_
Maximum number of iterations.
Definition: FastGlobalRegistration.h:100
double tuple_scale_
Similarity measure used for tuples of feature points.
Definition: FastGlobalRegistration.h:102
Class to store featrues for registration.
Definition: Feature.h:47
RegistrationResult FastGlobalRegistrationBasedOnCorrespondence(const geometry::PointCloud &source, const geometry::PointCloud &target, const CorrespondenceSet &corres, const FastGlobalRegistrationOption &option)
Fast Global Registration based on a given set of correspondences.
Definition: FastGlobalRegistration.cpp:294
RegistrationResult FastGlobalRegistrationBasedOnFeatureMatching(const geometry::PointCloud &source, const geometry::PointCloud &target, const Feature &source_feature, const Feature &target_feature, const FastGlobalRegistrationOption &option)
Fast Global Registration based on a given set of FPFH features.
Definition: FastGlobalRegistration.cpp:341
std::vector< Eigen::Vector2i > CorrespondenceSet
Definition: TransformationEstimation.h:46
Definition: PinholeCameraIntrinsic.cpp:35