cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN > Class Template Reference

MLS (Moving Least Squares) 关键点提取器 / MLS (Moving Least Squares) keypoint extractor. More...

#include <mls_keypoints.hpp>

Inheritance diagram for toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >:

Classes

struct  MLSResult
 

Public Types

enum class  polynomial_order_t : int { NONE = 0 , LINEAR = 1 , QUADRATIC = 2 }
 
using base_type = base_keypoint_extractor_t< mls_keypoint_extractor_t< DataType, KNN >, DataType, KNN >
 
using data_type = typename base_type::data_type
 
using knn_type = typename base_type::knn_type
 
using point_cloud = typename base_type::point_cloud
 
using point_cloud_ptr = typename base_type::point_cloud_ptr
 
using indices_vector = typename base_type::indices_vector
 

Public Member Functions

 mls_keypoint_extractor_t ()=default
 
std::size_t set_input_impl (const point_cloud &cloud)
 
std::size_t set_input_impl (const point_cloud_ptr &cloud)
 
std::size_t set_knn_impl (const knn_type &knn)
 
std::size_t set_search_radius_impl (data_type radius)
 
void enable_parallel_impl (bool enable)
 
indices_vector extract_impl ()
 
void extract_impl (indices_vector &keypoint_indices)
 
point_cloud extract_keypoints_impl ()
 
void extract_keypoints_impl (point_cloud_ptr output)
 
void set_polynomial_order (polynomial_order_t order)
 
void set_sqr_gauss_param (data_type sqr_gauss_param)
 
void set_compute_curvatures (bool compute)
 
void set_variation_threshold (data_type threshold)
 
void set_curvature_threshold (data_type threshold)
 
void set_non_maxima_radius (data_type radius)
 
void set_min_neighbors (std::size_t min_neighbors)
 
polynomial_order_t get_polynomial_order () const
 
data_type get_sqr_gauss_param () const
 
bool get_compute_curvatures () const
 
data_type get_variation_threshold () const
 
data_type get_curvature_threshold () const
 
data_type get_non_maxima_radius () const
 
std::size_t get_min_neighbors () const
 

Detailed Description

template<typename DataType, typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
class toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >

MLS (Moving Least Squares) 关键点提取器 / MLS (Moving Least Squares) keypoint extractor.

Template Parameters
DataType数据类型(float或double) / Data type (float or double)
KNN最近邻搜索算法类型,默认使用 kdtree_generic_t / K-nearest neighbor search algorithm type, defaults to kdtree_generic_t

MLS算法通过局部多项式曲面拟合来检测表面变化显著的关键点,支持不同阶数的多项式拟合 / MLS algorithm detects keypoints with significant surface variations through local polynomial surface fitting, supporting different polynomial orders

Member Typedef Documentation

◆ base_type

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
using toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::base_type = base_keypoint_extractor_t<mls_keypoint_extractor_t<DataType, KNN>, DataType, KNN>

◆ data_type

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
using toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::data_type = typename base_type::data_type

◆ indices_vector

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
using toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::indices_vector = typename base_type::indices_vector

◆ knn_type

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
using toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::knn_type = typename base_type::knn_type

◆ point_cloud

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
using toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::point_cloud = typename base_type::point_cloud

◆ point_cloud_ptr

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
using toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::point_cloud_ptr = typename base_type::point_cloud_ptr

Member Enumeration Documentation

◆ polynomial_order_t

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
enum class toolbox::pcl::mls_keypoint_extractor_t::polynomial_order_t : int
strong
Enumerator
NONE 
LINEAR 
QUADRATIC 

Constructor & Destructor Documentation

◆ mls_keypoint_extractor_t()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::mls_keypoint_extractor_t ( )
default

Member Function Documentation

◆ enable_parallel_impl()

template<typename DataType , typename KNN >
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::enable_parallel_impl ( bool  enable)

◆ extract_impl() [1/2]

template<typename DataType , typename KNN >
mls_keypoint_extractor_t< DataType, KNN >::indices_vector toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::extract_impl ( )

◆ extract_impl() [2/2]

template<typename DataType , typename KNN >
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::extract_impl ( indices_vector keypoint_indices)

◆ extract_keypoints_impl() [1/2]

template<typename DataType , typename KNN >
mls_keypoint_extractor_t< DataType, KNN >::point_cloud toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::extract_keypoints_impl ( )

◆ extract_keypoints_impl() [2/2]

template<typename DataType , typename KNN >
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::extract_keypoints_impl ( point_cloud_ptr  output)

◆ get_compute_curvatures()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
bool toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_compute_curvatures ( ) const
inline

◆ get_curvature_threshold()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
data_type toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_curvature_threshold ( ) const
inline

◆ get_min_neighbors()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
std::size_t toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_min_neighbors ( ) const
inline

◆ get_non_maxima_radius()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
data_type toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_non_maxima_radius ( ) const
inline

◆ get_polynomial_order()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
polynomial_order_t toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_polynomial_order ( ) const
inline

◆ get_sqr_gauss_param()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
data_type toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_sqr_gauss_param ( ) const
inline

◆ get_variation_threshold()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
data_type toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::get_variation_threshold ( ) const
inline

◆ set_compute_curvatures()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_compute_curvatures ( bool  compute)
inline

◆ set_curvature_threshold()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_curvature_threshold ( data_type  threshold)
inline

◆ set_input_impl() [1/2]

template<typename DataType , typename KNN >
std::size_t toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_input_impl ( const point_cloud cloud)

◆ set_input_impl() [2/2]

template<typename DataType , typename KNN >
std::size_t toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_input_impl ( const point_cloud_ptr cloud)

◆ set_knn_impl()

template<typename DataType , typename KNN >
std::size_t toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_knn_impl ( const knn_type knn)

◆ set_min_neighbors()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_min_neighbors ( std::size_t  min_neighbors)
inline

◆ set_non_maxima_radius()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_non_maxima_radius ( data_type  radius)
inline

◆ set_polynomial_order()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_polynomial_order ( polynomial_order_t  order)
inline

◆ set_search_radius_impl()

template<typename DataType , typename KNN >
std::size_t toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_search_radius_impl ( data_type  radius)

◆ set_sqr_gauss_param()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_sqr_gauss_param ( data_type  sqr_gauss_param)
inline

◆ set_variation_threshold()

template<typename DataType , typename KNN = kdtree_generic_t<point_t<DataType>, toolbox::metrics::L2Metric<DataType>>>
void toolbox::pcl::mls_keypoint_extractor_t< DataType, KNN >::set_variation_threshold ( data_type  threshold)
inline

The documentation for this class was generated from the following files: