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

自定义函数的对应关系排序器 / Custom function-based correspondence sorter More...

#include <custom_function_sorter.hpp>

Inheritance diagram for toolbox::pcl::custom_function_sorter_t< DataType >:

Public Types

using base_type = base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
 
using quality_function_t = std::function< DataType(const correspondence_t &correspondence, std::size_t index, const point_cloud &source_cloud, const point_cloud &target_cloud)>
 质量函数类型定义 / Quality function type definition
 
using simple_quality_function_t = std::function< DataType(const correspondence_t &correspondence)>
 简化的质量函数类型(仅基于对应关系) / Simplified quality function type (based on correspondence only)
 
- Public Types inherited from toolbox::pcl::base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
using point_cloud = toolbox::types::point_cloud_t< DataType >
 
using point_cloud_ptr = std::shared_ptr< point_cloud >
 
using correspondences_ptr = std::shared_ptr< std::vector< correspondence_t > >
 
using quality_scores_t = std::vector< DataType >
 
using sorted_indices_t = std::vector< std::size_t >
 

Public Member Functions

 custom_function_sorter_t ()=default
 
 ~custom_function_sorter_t ()=default
 
void set_quality_function (quality_function_t func)
 设置自定义质量函数 / Set custom quality function
 
void set_simple_quality_function (simple_quality_function_t func)
 设置简化的质量函数(仅基于对应关系) / Set simplified quality function (based on correspondence only)
 
bool has_quality_function () const
 检查是否设置了质量函数 / Check if quality function is set
 
- Public Member Functions inherited from toolbox::pcl::base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
 base_correspondence_sorter_t ()=default
 
 base_correspondence_sorter_t (const base_correspondence_sorter_t &)=delete
 
 base_correspondence_sorter_t (base_correspondence_sorter_t &&)=default
 
virtual ~base_correspondence_sorter_t ()=default
 
base_correspondence_sorter_toperator= (const base_correspondence_sorter_t &)=delete
 
base_correspondence_sorter_toperator= (base_correspondence_sorter_t &&)=default
 
void set_point_clouds (const point_cloud_ptr &source, const point_cloud_ptr &target)
 设置源点云和目标点云 / Set source and target point clouds
 
void set_correspondences (const correspondences_ptr &correspondences)
 设置对应关系 / Set correspondences
 
sorted_indices_t compute_sorted_indices (quality_scores_t &scores)
 计算质量分数并返回排序后的索引 / Compute quality scores and return sorted indices
 
quality_scores_t compute_quality_scores ()
 仅计算质量分数,不排序 / Compute quality scores only, without sorting
 
std::string get_sorter_name () const
 获取排序器名称 / Get sorter name
 
void clear_cache ()
 清除缓存 / Clear cache
 
void enable_parallel (bool enable=true)
 启用/禁用并行计算 / Enable/disable parallel computation
 
bool is_parallel_enabled () const
 获取并行计算状态 / Get parallel computation status
 

Protected Member Functions

void compute_quality_scores_impl (quality_scores_t &scores)
 计算质量分数的实现 / Implementation of quality score computation
 
bool validate_input_impl () const
 验证输入数据的实现 / Implementation of input validation
 
std::string get_sorter_name_impl () const
 获取排序器名称实现 / Get sorter name implementation
 
- Protected Member Functions inherited from toolbox::pcl::base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
bool validate_input () const
 验证输入数据 / Validate input data
 
bool validate_input_impl () const
 派生类可选的额外验证 / Optional additional validation for derived class
 
std::string get_sorter_name_impl () const
 派生类必须实现的排序器名称获取方法 / Sorter name getter that derived class must implement
 
const point_cloud_ptrget_source_cloud () const
 获取受保护的成员变量访问 / Get access to protected members
 
const point_cloud_ptrget_target_cloud () const
 
const correspondences_ptrget_correspondences () const
 

Friends

class base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
 

Additional Inherited Members

- Protected Attributes inherited from toolbox::pcl::base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
point_cloud_ptr m_source_cloud
 
point_cloud_ptr m_target_cloud
 
correspondences_ptr m_correspondences
 
bool m_cached
 
quality_scores_t m_cached_scores
 
sorted_indices_t m_cached_indices
 
bool m_parallel_enabled
 

Detailed Description

template<typename DataType>
class toolbox::pcl::custom_function_sorter_t< DataType >

自定义函数的对应关系排序器 / Custom function-based correspondence sorter

该排序器允许用户提供自定义的质量评估函数。 This sorter allows users to provide custom quality evaluation functions.

Template Parameters
DataType数据类型(如float或double) / Data type (e.g., float or double)
// 使用示例 / Usage example
// 设置自定义质量函数 / Set custom quality function
[](const correspondence_t& corr,
std::size_t corr_idx,
const point_cloud<float>& src,
const point_cloud<float>& tgt) -> float {
// 自定义质量计算 / Custom quality computation
float desc_quality = 1.0f - (corr.distance / 100.0f);
// 可以访问点云数据进行更复杂的计算 / Can access point cloud data for
more complex computation const auto& src_point = src.points[corr.src_idx];
const auto& tgt_point = tgt.points[corr.dst_idx];
// 例如:考虑法向量一致性 / Example: consider normal consistency
// float normal_dot = src_point.normal.dot(tgt_point.normal);
return desc_quality;
});
auto scores = sorter.compute_quality_scores();
quality_scores_t compute_quality_scores()
仅计算质量分数,不排序 / Compute quality scores only, without sorting
Definition base_correspondence_sorter.hpp:144
自定义函数的对应关系排序器 / Custom function-based correspondence sorter
Definition custom_function_sorter.hpp:52
void set_quality_function(quality_function_t func)
设置自定义质量函数 / Set custom quality function
Definition custom_function_sorter.hpp:88
std::vector< point_t< T > > points
点坐标 / Point coordinates
Definition point.hpp:270
对应关系结构体 / Correspondence structure
Definition base_correspondence_generator.hpp:27
std::size_t src_idx
源点索引 / Source point index
Definition base_correspondence_generator.hpp:28
float distance
描述子间的距离 / Distance between descriptors
Definition base_correspondence_generator.hpp:30
std::size_t dst_idx
目标点索引 / Destination point index
Definition base_correspondence_generator.hpp:29

Member Typedef Documentation

◆ base_type

template<typename DataType >
using toolbox::pcl::custom_function_sorter_t< DataType >::base_type = base_correspondence_sorter_t<custom_function_sorter_t<DataType>, DataType>

◆ quality_function_t

template<typename DataType >
using toolbox::pcl::custom_function_sorter_t< DataType >::quality_function_t = std::function<DataType( const correspondence_t& correspondence, std::size_t index, const point_cloud& source_cloud, const point_cloud& target_cloud)>

质量函数类型定义 / Quality function type definition

参数 / Parameters:

  • correspondence: 对应关系 / Correspondence
  • index: 对应关系在数组中的索引 / Index of correspondence in array
  • source_cloud: 源点云 / Source point cloud
  • target_cloud: 目标点云 / Target point cloud 返回值 / Return: 质量分数 / Quality score

◆ simple_quality_function_t

template<typename DataType >
using toolbox::pcl::custom_function_sorter_t< DataType >::simple_quality_function_t = std::function<DataType(const correspondence_t& correspondence)>

简化的质量函数类型(仅基于对应关系) / Simplified quality function type (based on correspondence only)

Constructor & Destructor Documentation

◆ custom_function_sorter_t()

template<typename DataType >
toolbox::pcl::custom_function_sorter_t< DataType >::custom_function_sorter_t ( )
default

◆ ~custom_function_sorter_t()

template<typename DataType >
toolbox::pcl::custom_function_sorter_t< DataType >::~custom_function_sorter_t ( )
default

Member Function Documentation

◆ compute_quality_scores_impl()

template<typename DataType >
void toolbox::pcl::custom_function_sorter_t< DataType >::compute_quality_scores_impl ( quality_scores_t scores)
inlineprotected

计算质量分数的实现 / Implementation of quality score computation

Parameters
scores[out] 质量分数 / Quality scores

◆ get_sorter_name_impl()

template<typename DataType >
std::string toolbox::pcl::custom_function_sorter_t< DataType >::get_sorter_name_impl ( ) const
inlineprotected

获取排序器名称实现 / Get sorter name implementation

Returns
排序器名称 / Sorter name

◆ has_quality_function()

template<typename DataType >
bool toolbox::pcl::custom_function_sorter_t< DataType >::has_quality_function ( ) const
inline

检查是否设置了质量函数 / Check if quality function is set

Returns
是否已设置 / Whether set

◆ set_quality_function()

template<typename DataType >
void toolbox::pcl::custom_function_sorter_t< DataType >::set_quality_function ( quality_function_t  func)
inline

设置自定义质量函数 / Set custom quality function

Parameters
func质量函数 / Quality function

◆ set_simple_quality_function()

template<typename DataType >
void toolbox::pcl::custom_function_sorter_t< DataType >::set_simple_quality_function ( simple_quality_function_t  func)
inline

设置简化的质量函数(仅基于对应关系) / Set simplified quality function (based on correspondence only)

Parameters
func简化的质量函数 / Simplified quality function

◆ validate_input_impl()

template<typename DataType >
bool toolbox::pcl::custom_function_sorter_t< DataType >::validate_input_impl ( ) const
inlineprotected

验证输入数据的实现 / Implementation of input validation

Returns
是否有效 / Whether valid

Friends And Related Symbol Documentation

◆ base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >

template<typename DataType >
friend class base_correspondence_sorter_t< custom_function_sorter_t< DataType >, DataType >
friend

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