Loading [MathJax]/extensions/TeX/AMSsymbols.js
Open3D (C++ API)  0.19.0
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Feature.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 
10 #include <Eigen/Core>
11 #include <memory>
12 #include <vector>
13 
16 
17 namespace open3d {
18 
19 namespace geometry {
20 class PointCloud;
21 }
22 
23 namespace pipelines {
24 namespace registration {
25 
26 typedef std::vector<Eigen::Vector2i> CorrespondenceSet;
27 
31 class Feature {
32 public:
37  void Resize(int dim, int n) {
38  data_.resize(dim, n);
39  data_.setZero();
40  }
42  size_t Dimension() const { return data_.rows(); }
44  size_t Num() const { return data_.cols(); }
45 
51  std::shared_ptr<Feature> SelectByIndex(const std::vector<size_t> &indices,
52  bool invert = false) const;
53 
54 public:
56  Eigen::MatrixXd data_;
57 };
58 
65 std::shared_ptr<Feature> ComputeFPFHFeature(
66  const geometry::PointCloud &input,
67  const geometry::KDTreeSearchParam &search_param =
69  const utility::optional<std::vector<size_t>> &indices =
71 
89  const Feature &source_features,
90  const Feature &target_features,
91  bool mutual_filter = false,
92  float mutual_consistency_ratio = 0.1);
93 
94 } // namespace registration
95 } // namespace pipelines
96 } // namespace open3d
Base class for KDTree search parameters.
Definition: KDTreeSearchParam.h:16
KDTree search parameters for pure KNN search.
Definition: KDTreeSearchParam.h:44
A point cloud consists of point coordinates, and optionally point colors and point normals.
Definition: PointCloud.h:36
Class to store featrues for registration.
Definition: Feature.h:31
size_t Num() const
Returns number of points.
Definition: Feature.h:44
std::shared_ptr< Feature > SelectByIndex(const std::vector< size_t > &indices, bool invert=false) const
Selects features from input Feature group, with indices in indices, and returns a new Feature group w...
Definition: Feature.cpp:21
Eigen::MatrixXd data_
Data buffer storing features.
Definition: Feature.h:56
size_t Dimension() const
Returns feature dimensions per point.
Definition: Feature.h:42
void Resize(int dim, int n)
Definition: Feature.h:37
Definition: Optional.h:259
CorrespondenceSet CorrespondencesFromFeatures(const Feature &source_features, const Feature &target_features, bool mutual_filter, float mutual_consistent_ratio)
Function to find correspondences via 1-nearest neighbor feature matching. Target is used to construct...
Definition: Feature.cpp:295
std::vector< Eigen::Vector2i > CorrespondenceSet
Definition: Feature.h:26
std::shared_ptr< Feature > ComputeFPFHFeature(const geometry::PointCloud &input, const geometry::KDTreeSearchParam &search_param, const utility::optional< std::vector< size_t >> &indices)
Definition: Feature.cpp:143
constexpr nullopt_t nullopt
Definition: Optional.h:152
Definition: PinholeCameraIntrinsic.cpp:16