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

RANSAC粗配准算法 / RANSAC coarse registration algorithm. More...

#include <ransac_registration.hpp>

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

Public Types

using base_type = base_coarse_registration_t< ransac_registration_t< DataType >, DataType >
 
using transformation_t = Eigen::Matrix< DataType, 4, 4 >
 
using vector3_t = Eigen::Matrix< DataType, 3, 1 >
 
using matrix3_t = Eigen::Matrix< DataType, 3, 3 >
 
- Public Types inherited from toolbox::pcl::base_coarse_registration_t< ransac_registration_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 result_type = registration_result_t< DataType >
 

Public Member Functions

 ransac_registration_t ()=default
 
 ~ransac_registration_t ()=default
 
void set_confidence (DataType confidence)
 设置置信度水平 / Set confidence level
 
DataType get_confidence () const
 获取置信度水平 / Get confidence level
 
void set_sample_size (std::size_t size)
 设置最小样本大小 / Set minimum sample size
 
std::size_t get_sample_size () const
 获取样本大小 / Get sample size
 
void set_refine_result (bool refine)
 设置是否使用所有内点精炼结果 / Set whether to refine result using all inliers
 
bool get_refine_result () const
 获取是否精炼结果 / Get whether to refine result
 
void set_early_stop_ratio (DataType ratio)
 设置早停阈值(内点比例) / Set early stopping threshold (inlier ratio)
 
DataType get_early_stop_ratio () const
 获取早停阈值 / Get early stopping threshold
 
- Public Member Functions inherited from toolbox::pcl::base_coarse_registration_t< ransac_registration_t< DataType >, DataType >
 base_coarse_registration_t ()=default
 
 base_coarse_registration_t (const base_coarse_registration_t &)=delete
 
 base_coarse_registration_t (base_coarse_registration_t &&)=default
 
virtual ~base_coarse_registration_t ()=default
 
base_coarse_registration_toperator= (const base_coarse_registration_t &)=delete
 
base_coarse_registration_toperator= (base_coarse_registration_t &&)=default
 
void set_source (const point_cloud_ptr &source)
 设置源点云 / Set source point cloud
 
void set_target (const point_cloud_ptr &target)
 设置目标点云 / Set target point cloud
 
void set_correspondences (const correspondences_ptr &correspondences)
 设置初始对应关系(可选,主要用于RANSAC类算法) / Set initial correspondences (optional, mainly for RANSAC-like algorithms)
 
void set_max_iterations (std::size_t max_iterations)
 设置最大迭代次数 / Set maximum iterations
 
void set_inlier_threshold (DataType threshold)
 设置内点距离阈值 / Set inlier distance threshold
 
void set_convergence_threshold (DataType threshold)
 设置收敛阈值 / Set convergence threshold
 
void set_min_inliers (std::size_t min_inliers)
 设置最小内点数量 / Set minimum number of inliers
 
bool align (result_type &result)
 执行配准 / Perform registration
 
std::string get_algorithm_name () const
 获取算法名称 / Get algorithm name
 
void enable_parallel (bool enable=true)
 启用/禁用并行计算 / Enable/disable parallel computation
 
bool is_parallel_enabled () const
 获取并行计算状态 / Get parallel computation status
 
void set_random_seed (unsigned int seed)
 设置随机种子 / Set random seed
 

Protected Member Functions

bool align_impl (result_type &result)
 派生类实现的配准算法 / Registration algorithm implementation by derived class
 
std::string get_algorithm_name_impl () const
 获取算法名称实现 / Get algorithm name implementation
 
bool validate_input_impl () const
 额外的输入验证 / Additional input validation
 
void set_correspondences_impl (const correspondences_ptr &)
 设置对应关系的钩子函数 / Hook function for setting correspondences
 
- Protected Member Functions inherited from toolbox::pcl::base_coarse_registration_t< ransac_registration_t< DataType >, DataType >
void set_source_impl (const point_cloud_ptr &)
 派生类可选实现的钩子函数 / Optional hook functions for derived classes
 
void set_target_impl (const point_cloud_ptr &)
 
void set_correspondences_impl (const correspondences_ptr &)
 
void set_max_iterations_impl (std::size_t)
 
void set_inlier_threshold_impl (DataType)
 
void set_convergence_threshold_impl (DataType)
 
void set_min_inliers_impl (std::size_t)
 
bool validate_input () const
 验证输入数据 / Validate input data
 
bool validate_input_impl () const
 派生类的额外输入验证(可选) / Additional input validation for derived class (optional)
 
DataType compute_fitness_score (const Eigen::Matrix< DataType, 4, 4 > &transformation, const std::vector< std::size_t > &inliers) const
 计算配准质量评分 / Compute registration fitness score
 
const point_cloud_ptrget_source_cloud () const
 获取受保护的成员变量访问 / Get access to protected members
 
const point_cloud_ptrget_target_cloud () const
 
const correspondences_ptrget_correspondences () const
 
std::size_t get_max_iterations () const
 
DataType get_inlier_threshold () const
 
DataType get_convergence_threshold () const
 
std::size_t get_min_inliers () const
 
unsigned int get_random_seed () const
 

Friends

class base_coarse_registration_t< ransac_registration_t< DataType >, DataType >
 

Detailed Description

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

RANSAC粗配准算法 / RANSAC coarse registration algorithm.

基于对应关系的RANSAC配准算法,通过随机采样一致性方法找到最佳的刚体变换。 Correspondence-based RANSAC registration algorithm that finds the best rigid transformation through random sample consensus.

Template Parameters
DataType数据类型(如float或double) / Data type (e.g., float or double)
// 使用示例 / Usage example
ransac.set_source(source_cloud);
ransac.set_target(target_cloud);
ransac.set_correspondences(correspondences);
ransac.set_max_iterations(1000);
ransac.set_inlier_threshold(0.05f);
ransac.set_confidence(0.99f);
if (ransac.align(result)) {
std::cout << "Registration successful with " << result.inliers.size()
<< " inliers" << std::endl;
}
void set_target(const point_cloud_ptr &target)
设置目标点云 / Set target point cloud
Definition base_coarse_registration.hpp:60
void set_correspondences(const correspondences_ptr &correspondences)
设置初始对应关系(可选,主要用于RANSAC类算法) / Set initial correspondences (optional, mainly for RANSAC-like algorithms...
Definition base_coarse_registration.hpp:70
void set_source(const point_cloud_ptr &source)
设置源点云 / Set source point cloud
Definition base_coarse_registration.hpp:51
void set_inlier_threshold(DataType threshold)
设置内点距离阈值 / Set inlier distance threshold
Definition base_coarse_registration.hpp:88
bool align(result_type &result)
执行配准 / Perform registration
Definition base_coarse_registration.hpp:117
void set_max_iterations(std::size_t max_iterations)
设置最大迭代次数 / Set maximum iterations
Definition base_coarse_registration.hpp:79
RANSAC粗配准算法 / RANSAC coarse registration algorithm.
Definition ransac_registration.hpp:46
void set_confidence(DataType confidence)
设置置信度水平 / Set confidence level
Definition ransac_registration.hpp:66
配准结果结构体 / Registration result structure
Definition registration_result.hpp:15
std::vector< std::size_t > inliers
内点索引 / Inlier indices
Definition registration_result.hpp:20

Member Typedef Documentation

◆ base_type

template<typename DataType >
using toolbox::pcl::ransac_registration_t< DataType >::base_type = base_coarse_registration_t<ransac_registration_t<DataType>, DataType>

◆ matrix3_t

template<typename DataType >
using toolbox::pcl::ransac_registration_t< DataType >::matrix3_t = Eigen::Matrix<DataType, 3, 3>

◆ transformation_t

template<typename DataType >
using toolbox::pcl::ransac_registration_t< DataType >::transformation_t = Eigen::Matrix<DataType, 4, 4>

◆ vector3_t

template<typename DataType >
using toolbox::pcl::ransac_registration_t< DataType >::vector3_t = Eigen::Matrix<DataType, 3, 1>

Constructor & Destructor Documentation

◆ ransac_registration_t()

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

◆ ~ransac_registration_t()

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

Member Function Documentation

◆ align_impl()

template<typename DataType >
bool toolbox::pcl::ransac_registration_t< DataType >::align_impl ( result_type result)
protected

派生类实现的配准算法 / Registration algorithm implementation by derived class

Parameters
result[out] 配准结果 / Registration result
Returns
是否成功 / Whether successful

◆ get_algorithm_name_impl()

template<typename DataType >
std::string toolbox::pcl::ransac_registration_t< DataType >::get_algorithm_name_impl ( ) const
inlineprotected

获取算法名称实现 / Get algorithm name implementation

Returns
算法名称 / Algorithm name

◆ get_confidence()

template<typename DataType >
DataType toolbox::pcl::ransac_registration_t< DataType >::get_confidence ( ) const
inline

获取置信度水平 / Get confidence level

Returns
置信度 / Confidence level

◆ get_early_stop_ratio()

template<typename DataType >
DataType toolbox::pcl::ransac_registration_t< DataType >::get_early_stop_ratio ( ) const
inline

获取早停阈值 / Get early stopping threshold

Returns
早停阈值 / Early stopping threshold

◆ get_refine_result()

template<typename DataType >
bool toolbox::pcl::ransac_registration_t< DataType >::get_refine_result ( ) const
inline

获取是否精炼结果 / Get whether to refine result

Returns
是否精炼 / Whether to refine

◆ get_sample_size()

template<typename DataType >
std::size_t toolbox::pcl::ransac_registration_t< DataType >::get_sample_size ( ) const
inline

获取样本大小 / Get sample size

Returns
样本大小 / Sample size

◆ set_confidence()

template<typename DataType >
void toolbox::pcl::ransac_registration_t< DataType >::set_confidence ( DataType  confidence)
inline

设置置信度水平 / Set confidence level

Parameters
confidence置信度(0到1之间) / Confidence level (between 0 and 1)

◆ set_correspondences_impl()

template<typename DataType >
void toolbox::pcl::ransac_registration_t< DataType >::set_correspondences_impl ( const correspondences_ptr )
inlineprotected

设置对应关系的钩子函数 / Hook function for setting correspondences

◆ set_early_stop_ratio()

template<typename DataType >
void toolbox::pcl::ransac_registration_t< DataType >::set_early_stop_ratio ( DataType  ratio)
inline

设置早停阈值(内点比例) / Set early stopping threshold (inlier ratio)

Parameters
ratio内点比例阈值(0到1之间) / Inlier ratio threshold (between 0 and 1)

◆ set_refine_result()

template<typename DataType >
void toolbox::pcl::ransac_registration_t< DataType >::set_refine_result ( bool  refine)
inline

设置是否使用所有内点精炼结果 / Set whether to refine result using all inliers

Parameters
refinetrue启用精炼,false禁用 / true to enable refinement, false to disable

◆ set_sample_size()

template<typename DataType >
void toolbox::pcl::ransac_registration_t< DataType >::set_sample_size ( std::size_t  size)
inline

设置最小样本大小 / Set minimum sample size

Parameters
size样本大小(至少3) / Sample size (at least 3)

◆ validate_input_impl()

template<typename DataType >
bool toolbox::pcl::ransac_registration_t< DataType >::validate_input_impl ( ) const
protected

额外的输入验证 / Additional input validation

Returns
是否有效 / Whether valid

Friends And Related Symbol Documentation

◆ base_coarse_registration_t< ransac_registration_t< DataType >, DataType >

template<typename DataType >
friend class base_coarse_registration_t< ransac_registration_t< DataType >, DataType >
friend

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