GLIM
Loading...
Searching...
No Matches
cloud_covariance_estimation.hpp
1#pragma once
2
3#include <Eigen/Core>
4#include <Eigen/Geometry>
5
6namespace glim {
7
11enum class RegularizationMethod { NONE, PLANE, NORMALIZED_MIN_EIG, FROBENIUS };
12
17public:
18 CloudCovarianceEstimation(const int num_threads = 1);
20
28 void estimate(const std::vector<Eigen::Vector4d>& points, const std::vector<int>& neighbors, std::vector<Eigen::Vector4d>& normals, std::vector<Eigen::Matrix4d>& covs) const;
29
39 const std::vector<Eigen::Vector4d>& points,
40 const std::vector<int>& neighbors,
41 const int k_neighbors,
42 std::vector<Eigen::Vector4d>& normals,
43 std::vector<Eigen::Matrix4d>& covs) const;
44
46 std::vector<Eigen::Matrix4d> estimate(const std::vector<Eigen::Vector4d>& points, const std::vector<int>& neighbors, const int k_neighbors) const;
47
49 std::vector<Eigen::Matrix4d> estimate(const std::vector<Eigen::Vector4d>& points, const std::vector<int>& neighbors) const;
50
58 Eigen::Matrix4d regularize(const Eigen::Matrix4d& cov, Eigen::Vector3d* eigenvalues = nullptr, Eigen::Matrix3d* eigenvectors = nullptr) const;
59
60private:
61 const RegularizationMethod regularization_method;
62 const int num_threads;
63};
64
65} // namespace glim
Point covariance estimation.
Definition cloud_covariance_estimation.hpp:16
void estimate(const std::vector< Eigen::Vector4d > &points, const std::vector< int > &neighbors, std::vector< Eigen::Vector4d > &normals, std::vector< Eigen::Matrix4d > &covs) const
Estimate point normals and covariances.
Eigen::Matrix4d regularize(const Eigen::Matrix4d &cov, Eigen::Vector3d *eigenvalues=nullptr, Eigen::Matrix3d *eigenvectors=nullptr) const
Regularize a covariance matrix.
std::vector< Eigen::Matrix4d > estimate(const std::vector< Eigen::Vector4d > &points, const std::vector< int > &neighbors) const
Estimate point covariances.
void estimate(const std::vector< Eigen::Vector4d > &points, const std::vector< int > &neighbors, const int k_neighbors, std::vector< Eigen::Vector4d > &normals, std::vector< Eigen::Matrix4d > &covs) const
Estimate point normals and covariances.
std::vector< Eigen::Matrix4d > estimate(const std::vector< Eigen::Vector4d > &points, const std::vector< int > &neighbors, const int k_neighbors) const
Estimate point covariances.