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

对应点生成器的基类(CRTP模式) / Base class for correspondence generators (CRTP pattern) More...

#include <base_correspondence_generator.hpp>

Public Types

using point_cloud = toolbox::types::point_cloud_t< DataType >
 
using point_cloud_ptr = std::shared_ptr< point_cloud >
 
using signatures_ptr = std::shared_ptr< std::vector< Signature > >
 
using keypoint_indices_ptr = std::shared_ptr< std::vector< std::size_t > >
 

Public Member Functions

 base_correspondence_generator_t ()=default
 
virtual ~base_correspondence_generator_t ()=default
 
 base_correspondence_generator_t (const base_correspondence_generator_t &)=delete
 
base_correspondence_generator_toperator= (const base_correspondence_generator_t &)=delete
 
 base_correspondence_generator_t (base_correspondence_generator_t &&)=default
 
base_correspondence_generator_toperator= (base_correspondence_generator_t &&)=default
 
void set_source (const point_cloud_ptr &src_cloud, const signatures_ptr &src_descriptors, const keypoint_indices_ptr &src_keypoint_indices)
 设置源数据 / Set source data
 
void set_destination (const point_cloud_ptr &dst_cloud, const signatures_ptr &dst_descriptors, const keypoint_indices_ptr &dst_keypoint_indices)
 设置目标数据 / Set destination data
 
void set_ratio (float ratio)
 设置比率测试阈值 / Set ratio test threshold
 
float get_ratio () const
 获取比率测试阈值 / Get ratio test threshold
 
void set_mutual_verification (bool mutual_verification)
 设置是否启用双向验证 / Set whether to enable mutual verification
 
bool get_mutual_verification () const
 获取是否启用双向验证 / Get whether mutual verification is enabled
 
void set_distance_threshold (float distance_threshold)
 设置距离阈值 / Set distance threshold
 
float get_distance_threshold () const
 获取距离阈值 / Get distance threshold
 
void compute (std::vector< correspondence_t > &correspondences)
 计算对应关系 / Compute correspondences
 
std::string get_statistics () const
 获取最后一次计算的统计信息 / Get statistics from last computation
 

Protected Member Functions

bool validate_input () const
 验证输入数据的有效性 / Validate input data
 
bool apply_ratio_test (const std::vector< correspondence_t > &candidates) const
 应用比率测试 / Apply ratio test
 
void apply_distance_threshold (std::vector< correspondence_t > &correspondences) const
 应用距离阈值过滤 / Apply distance threshold filtering
 
float compute_geometric_consistency (const std::vector< correspondence_t > &correspondences) const
 计算几何一致性分数(简单验证) / Compute geometric consistency score (simple verification)
 
void reset_statistics ()
 重置统计信息 / Reset statistics
 

Protected Attributes

point_cloud_ptr m_src_cloud
 
point_cloud_ptr m_dst_cloud
 
signatures_ptr m_src_descriptors
 
signatures_ptr m_dst_descriptors
 
keypoint_indices_ptr m_src_keypoint_indices
 
keypoint_indices_ptr m_dst_keypoint_indices
 
float m_ratio = 0.8F
 比率测试阈值 / Ratio test threshold
 
float m_distance_threshold = std::numeric_limits<float>::max()
 距离阈值 / Distance threshold
 
bool m_mutual_verification = true
 是否启用双向验证 / Whether to enable mutual verification
 
std::size_t m_total_candidates = 0
 
std::size_t m_ratio_test_passed = 0
 
std::size_t m_mutual_test_passed = 0
 
std::size_t m_distance_test_passed = 0
 

Detailed Description

template<typename Derived, typename DataType, typename Signature>
class toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >

对应点生成器的基类(CRTP模式) / Base class for correspondence generators (CRTP pattern)

该类定义了所有对应点生成算法的通用接口,使用CRTP模式实现静态多态。 This class defines the common interface for all correspondence generation algorithms, using CRTP pattern for static polymorphism.

Template Parameters
Derived派生类类型 / Derived class type
DataType数据类型(如float或double) / Data type (e.g., float or double)
Signature描述子签名类型 / Descriptor signature type
// 派生类示例 / Derived class example
template<typename DataType, typename Signature>
class my_correspondence_generator_t
my_correspondence_generator_t<DataType, Signature>,
DataType, Signature>
{
public:
void compute_impl(std::vector<correspondence_t>& correspondences) {
// 实现具体的对应点生成算法 / Implement specific correspondence generation algorithm
}
};
对应点生成器的基类(CRTP模式) / Base class for correspondence generators (CRTP pattern)
Definition base_correspondence_generator.hpp:61

Member Typedef Documentation

◆ keypoint_indices_ptr

template<typename Derived , typename DataType , typename Signature >
using toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::keypoint_indices_ptr = std::shared_ptr<std::vector<std::size_t> >

◆ point_cloud

template<typename Derived , typename DataType , typename Signature >
using toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::point_cloud = toolbox::types::point_cloud_t<DataType>

◆ point_cloud_ptr

template<typename Derived , typename DataType , typename Signature >
using toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::point_cloud_ptr = std::shared_ptr<point_cloud>

◆ signatures_ptr

template<typename Derived , typename DataType , typename Signature >
using toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::signatures_ptr = std::shared_ptr<std::vector<Signature> >

Constructor & Destructor Documentation

◆ base_correspondence_generator_t() [1/3]

template<typename Derived , typename DataType , typename Signature >
toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::base_correspondence_generator_t ( )
default

◆ ~base_correspondence_generator_t()

template<typename Derived , typename DataType , typename Signature >
virtual toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::~base_correspondence_generator_t ( )
virtualdefault

◆ base_correspondence_generator_t() [2/3]

template<typename Derived , typename DataType , typename Signature >
toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::base_correspondence_generator_t ( const base_correspondence_generator_t< Derived, DataType, Signature > &  )
delete

◆ base_correspondence_generator_t() [3/3]

template<typename Derived , typename DataType , typename Signature >
toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::base_correspondence_generator_t ( base_correspondence_generator_t< Derived, DataType, Signature > &&  )
default

Member Function Documentation

◆ apply_distance_threshold()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::apply_distance_threshold ( std::vector< correspondence_t > &  correspondences) const
inlineprotected

应用距离阈值过滤 / Apply distance threshold filtering

Parameters
correspondences[in/out] 对应关系 / Correspondences

◆ apply_ratio_test()

template<typename Derived , typename DataType , typename Signature >
bool toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::apply_ratio_test ( const std::vector< correspondence_t > &  candidates) const
inlineprotected

应用比率测试 / Apply ratio test

Parameters
candidates候选对应关系 / Candidate correspondences
Returns
是否通过测试 / Whether the test is passed

◆ compute()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::compute ( std::vector< correspondence_t > &  correspondences)
inline

计算对应关系 / Compute correspondences

Parameters
correspondences[out] 输出的对应关系 / Output correspondences

◆ compute_geometric_consistency()

template<typename Derived , typename DataType , typename Signature >
float toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::compute_geometric_consistency ( const std::vector< correspondence_t > &  correspondences) const
inlineprotected

计算几何一致性分数(简单验证) / Compute geometric consistency score (simple verification)

Parameters
correspondences对应关系 / Correspondences
Returns
一致性分数 / Consistency score

◆ get_distance_threshold()

template<typename Derived , typename DataType , typename Signature >
float toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::get_distance_threshold ( ) const
inline

获取距离阈值 / Get distance threshold

Returns
距离阈值 / Distance threshold

◆ get_mutual_verification()

template<typename Derived , typename DataType , typename Signature >
bool toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::get_mutual_verification ( ) const
inline

获取是否启用双向验证 / Get whether mutual verification is enabled

Returns
是否启用双向验证 / Whether mutual verification is enabled

◆ get_ratio()

template<typename Derived , typename DataType , typename Signature >
float toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::get_ratio ( ) const
inline

获取比率测试阈值 / Get ratio test threshold

Returns
比率阈值 / Ratio threshold

◆ get_statistics()

template<typename Derived , typename DataType , typename Signature >
std::string toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::get_statistics ( ) const
inline

获取最后一次计算的统计信息 / Get statistics from last computation

Returns
统计信息字符串 / Statistics string

◆ operator=() [1/2]

template<typename Derived , typename DataType , typename Signature >
base_correspondence_generator_t & toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::operator= ( base_correspondence_generator_t< Derived, DataType, Signature > &&  )
default

◆ operator=() [2/2]

template<typename Derived , typename DataType , typename Signature >
base_correspondence_generator_t & toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::operator= ( const base_correspondence_generator_t< Derived, DataType, Signature > &  )
delete

◆ reset_statistics()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::reset_statistics ( )
inlineprotected

重置统计信息 / Reset statistics

◆ set_destination()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::set_destination ( const point_cloud_ptr dst_cloud,
const signatures_ptr dst_descriptors,
const keypoint_indices_ptr dst_keypoint_indices 
)
inline

设置目标数据 / Set destination data

Parameters
dst_cloud目标点云 / Destination point cloud
dst_descriptors目标描述子 / Destination descriptors
dst_keypoint_indices目标关键点索引 / Destination keypoint indices

◆ set_distance_threshold()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::set_distance_threshold ( float  distance_threshold)
inline

设置距离阈值 / Set distance threshold

Parameters
distance_threshold最大允许的描述子距离 / Maximum allowed descriptor distance

◆ set_mutual_verification()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::set_mutual_verification ( bool  mutual_verification)
inline

设置是否启用双向验证 / Set whether to enable mutual verification

Parameters
mutual_verificationtrue启用,false禁用 / true to enable, false to disable

◆ set_ratio()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::set_ratio ( float  ratio)
inline

设置比率测试阈值 / Set ratio test threshold

Parameters
ratio比率阈值(通常0.7-0.8) / Ratio threshold (typically 0.7-0.8)

◆ set_source()

template<typename Derived , typename DataType , typename Signature >
void toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::set_source ( const point_cloud_ptr src_cloud,
const signatures_ptr src_descriptors,
const keypoint_indices_ptr src_keypoint_indices 
)
inline

设置源数据 / Set source data

Parameters
src_cloud源点云 / Source point cloud
src_descriptors源描述子 / Source descriptors
src_keypoint_indices源关键点索引 / Source keypoint indices

◆ validate_input()

template<typename Derived , typename DataType , typename Signature >
bool toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::validate_input ( ) const
inlineprotected

验证输入数据的有效性 / Validate input data

Returns
true表示有效,false表示无效 / true if valid, false if invalid

Member Data Documentation

◆ m_distance_test_passed

template<typename Derived , typename DataType , typename Signature >
std::size_t toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_distance_test_passed = 0
mutableprotected

◆ m_distance_threshold

template<typename Derived , typename DataType , typename Signature >
float toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_distance_threshold = std::numeric_limits<float>::max()
protected

距离阈值 / Distance threshold

◆ m_dst_cloud

template<typename Derived , typename DataType , typename Signature >
point_cloud_ptr toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_dst_cloud
protected

◆ m_dst_descriptors

template<typename Derived , typename DataType , typename Signature >
signatures_ptr toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_dst_descriptors
protected

◆ m_dst_keypoint_indices

template<typename Derived , typename DataType , typename Signature >
keypoint_indices_ptr toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_dst_keypoint_indices
protected

◆ m_mutual_test_passed

template<typename Derived , typename DataType , typename Signature >
std::size_t toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_mutual_test_passed = 0
mutableprotected

◆ m_mutual_verification

template<typename Derived , typename DataType , typename Signature >
bool toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_mutual_verification = true
protected

是否启用双向验证 / Whether to enable mutual verification

◆ m_ratio

template<typename Derived , typename DataType , typename Signature >
float toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_ratio = 0.8F
protected

比率测试阈值 / Ratio test threshold

◆ m_ratio_test_passed

template<typename Derived , typename DataType , typename Signature >
std::size_t toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_ratio_test_passed = 0
mutableprotected

◆ m_src_cloud

template<typename Derived , typename DataType , typename Signature >
point_cloud_ptr toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_src_cloud
protected

◆ m_src_descriptors

template<typename Derived , typename DataType , typename Signature >
signatures_ptr toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_src_descriptors
protected

◆ m_src_keypoint_indices

template<typename Derived , typename DataType , typename Signature >
keypoint_indices_ptr toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_src_keypoint_indices
protected

◆ m_total_candidates

template<typename Derived , typename DataType , typename Signature >
std::size_t toolbox::pcl::base_correspondence_generator_t< Derived, DataType, Signature >::m_total_candidates = 0
mutableprotected

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