gtsam_points
Loading...
Searching...
No Matches
covariance_estimation.hpp
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2021 Kenji Koide (k.koide@aist.go.jp)
3
4#pragma once
5
6#include <vector>
7#include <Eigen/Core>
8#include <gtsam_points/types/point_cloud.hpp>
9
10namespace gtsam_points {
11
16public:
17 enum RegularizationMethod { NONE, EIG };
18
20
21public:
24 RegularizationMethod regularization_method;
25 Eigen::Vector3d eigen_values;
26};
27
35std::vector<Eigen::Matrix4d> estimate_covariances(const Eigen::Vector4d* points, int num_points, const CovarianceEstimationParams& params);
36
46std::vector<Eigen::Matrix4d>
47estimate_covariances(const Eigen::Vector4d* points, int num_points, int k_neighbors, const Eigen::Vector3d& eigen_values, int num_threads);
48
49std::vector<Eigen::Matrix4d> estimate_covariances(const Eigen::Vector4d* points, int num_points, int k_neighbors = 10, int num_threads = 1);
50
51template <typename Alloc>
52std::vector<Eigen::Matrix4d> estimate_covariances(const std::vector<Eigen::Vector4d, Alloc>& points, int k_neighbors = 10, int num_threads = 1) {
53 return estimate_covariances(points.data(), points.size(), k_neighbors, num_threads);
54}
55
56std::vector<Eigen::Matrix4d> estimate_covariances(const PointCloud& points, int k_neighbors = 10, int num_threads = 1);
57
58} // namespace gtsam_points
Covariance estimation parameters.
Definition covariance_estimation.hpp:15
RegularizationMethod regularization_method
Regularization method.
Definition covariance_estimation.hpp:24
Eigen::Vector3d eigen_values
Eigenvalues used for EIG regularization.
Definition covariance_estimation.hpp:25
int num_threads
Number of threads.
Definition covariance_estimation.hpp:22
int k_neighbors
Number of neighboring points used for covariance estimation.
Definition covariance_estimation.hpp:23