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

暴力搜索对应点生成器 / Brute-force correspondence generator More...

#include <brute_force_correspondence_generator.hpp>

Inheritance diagram for toolbox::pcl::brute_force_correspondence_generator_t< DataType, Signature >:

Public Types

using base_type = base_correspondence_generator_t< brute_force_correspondence_generator_t< DataType, Signature >, DataType, Signature >
 
- Public Types inherited from toolbox::pcl::base_correspondence_generator_t< brute_force_correspondence_generator_t< DataType, Signature >, DataType, Signature >
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

void enable_parallel (bool enable)
 启用或禁用并行计算 / Enable or disable parallel computation
 
bool is_parallel_enabled () const
 获取是否启用并行计算 / Get whether parallel computation is enabled
 
void compute_impl (std::vector< correspondence_t > &correspondences)
 计算对应关系的实现 / Implementation of computing correspondences
 
- Public Member Functions inherited from toolbox::pcl::base_correspondence_generator_t< brute_force_correspondence_generator_t< DataType, Signature >, DataType, Signature >
 base_correspondence_generator_t ()=default
 
 base_correspondence_generator_t (const base_correspondence_generator_t &)=delete
 
 base_correspondence_generator_t (base_correspondence_generator_t &&)=default
 
virtual ~base_correspondence_generator_t ()=default
 
base_correspondence_generator_toperator= (const base_correspondence_generator_t &)=delete
 
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
 

Additional Inherited Members

- Protected Member Functions inherited from toolbox::pcl::base_correspondence_generator_t< brute_force_correspondence_generator_t< DataType, Signature >, DataType, Signature >
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 inherited from toolbox::pcl::base_correspondence_generator_t< brute_force_correspondence_generator_t< DataType, Signature >, DataType, Signature >
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
 比率测试阈值 / Ratio test threshold
 
float m_distance_threshold
 距离阈值 / Distance threshold
 
bool m_mutual_verification
 是否启用双向验证 / Whether to enable mutual verification
 
std::size_t m_total_candidates
 
std::size_t m_ratio_test_passed
 
std::size_t m_mutual_test_passed
 
std::size_t m_distance_test_passed
 

Detailed Description

template<typename DataType, typename Signature>
class toolbox::pcl::brute_force_correspondence_generator_t< DataType, Signature >

暴力搜索对应点生成器 / Brute-force correspondence generator

直接计算所有描述子对之间的距离,不使用任何加速结构。 适用于小规模数据或需要精确结果的场景。 Directly computes distances between all descriptor pairs without any acceleration structure. Suitable for small-scale data or scenarios requiring exact results.

Template Parameters
DataType数据类型(如float或double) / Data type (e.g., float or double)
Signature描述子签名类型 / Descriptor signature type
// 使用示例 / Usage example
// 设置数据和参数 / Set data and parameters
corr_gen.set_source(src_cloud, src_descriptors, src_keypoints);
corr_gen.set_destination(dst_cloud, dst_descriptors, dst_keypoints);
corr_gen.set_ratio(0.8f);
corr_gen.set_mutual_verification(true);
corr_gen.enable_parallel(true); // 启用并行计算 / Enable parallel computation
// 计算对应关系 / Compute correspondences
std::vector<correspondence_t> correspondences;
corr_gen.compute(correspondences);
void set_destination(const point_cloud_ptr &dst_cloud, const signatures_ptr &dst_descriptors, const keypoint_indices_ptr &dst_keypoint_indices)
设置目标数据 / Set destination data
Definition base_correspondence_generator.hpp:98
void set_ratio(float ratio)
设置比率测试阈值 / Set ratio test threshold
Definition base_correspondence_generator.hpp:111
void set_source(const point_cloud_ptr &src_cloud, const signatures_ptr &src_descriptors, const keypoint_indices_ptr &src_keypoint_indices)
设置源数据 / Set source data
Definition base_correspondence_generator.hpp:83
void compute(std::vector< correspondence_t > &correspondences)
计算对应关系 / Compute correspondences
Definition base_correspondence_generator.hpp:153
void set_mutual_verification(bool mutual_verification)
设置是否启用双向验证 / Set whether to enable mutual verification
Definition base_correspondence_generator.hpp:123
暴力搜索对应点生成器 / Brute-force correspondence generator
Definition brute_force_correspondence_generator.hpp:42
void enable_parallel(bool enable)
启用或禁用并行计算 / Enable or disable parallel computation
Definition brute_force_correspondence_generator.hpp:56

Member Typedef Documentation

◆ base_type

template<typename DataType , typename Signature >
using toolbox::pcl::brute_force_correspondence_generator_t< DataType, Signature >::base_type = base_correspondence_generator_t< brute_force_correspondence_generator_t<DataType, Signature>, DataType, Signature>

Member Function Documentation

◆ compute_impl()

template<typename DataType , typename Signature >
void toolbox::pcl::brute_force_correspondence_generator_t< DataType, Signature >::compute_impl ( std::vector< correspondence_t > &  correspondences)

计算对应关系的实现 / Implementation of computing correspondences

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

◆ enable_parallel()

template<typename DataType , typename Signature >
void toolbox::pcl::brute_force_correspondence_generator_t< DataType, Signature >::enable_parallel ( bool  enable)
inline

启用或禁用并行计算 / Enable or disable parallel computation

Parameters
enabletrue启用并行,false禁用 / true to enable parallel, false to disable

◆ is_parallel_enabled()

template<typename DataType , typename Signature >
bool toolbox::pcl::brute_force_correspondence_generator_t< DataType, Signature >::is_parallel_enabled ( ) const
inline

获取是否启用并行计算 / Get whether parallel computation is enabled

Returns
是否启用并行 / Whether parallel is enabled

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