cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
registration.hpp File Reference

点云配准算法统一导出文件 / Unified export file for point cloud registration algorithms More...

Include dependency graph for registration.hpp:

Go to the source code of this file.

Namespaces

namespace  toolbox
 
namespace  toolbox::pcl
 

Macros

#define LOG_ERROR_S   toolbox::logger::thread_logger_t::instance().error_s()
 

Typedefs

using toolbox::pcl::ransac_registration = ransac_registration_t< float >
 
using toolbox::pcl::four_pcs_registration = four_pcs_registration_t< float >
 
using toolbox::pcl::super_four_pcs_registration = super_four_pcs_registration_t< float >
 
using toolbox::pcl::registration_result = registration_result_t< float >
 
using toolbox::pcl::ransac_registration_d = ransac_registration_t< double >
 
using toolbox::pcl::four_pcs_registration_d = four_pcs_registration_t< double >
 
using toolbox::pcl::super_four_pcs_registration_d = super_four_pcs_registration_t< double >
 
using toolbox::pcl::registration_result_d = registration_result_t< double >
 

Functions

template<typename DataType >
registration_result_t< DataType > toolbox::pcl::quick_registration (const std::shared_ptr< toolbox::types::point_cloud_t< DataType > > &source, const std::shared_ptr< toolbox::types::point_cloud_t< DataType > > &target, const std::string &algorithm="super4pcs", DataType overlap=0.5f)
 配准算法选择指南 / Registration algorithm selection guide
 

Detailed Description

点云配准算法统一导出文件 / Unified export file for point cloud registration algorithms

该文件提供了点云配准的统一接口,包括粗配准和精配准算法。 This file provides a unified interface for point cloud registration, including both coarse and fine registration algorithms.

粗配准算法 / Coarse Registration Algorithms:

  • RANSAC: 基于对应关系的随机采样一致性算法 / Correspondence-based random sample consensus
  • 4PCS: 4点共面集算法,不需要初始对应关系 / 4-Point Congruent Sets, no initial correspondences needed
  • Super4PCS: 优化的4PCS,适合大规模点云 / Optimized 4PCS for large-scale point clouds
using namespace toolbox::pcl;
// RANSAC配准示例 / RANSAC registration example
ransac.set_source(source_cloud);
ransac.set_target(target_cloud);
ransac.set_correspondences(correspondences);
if (ransac.align(result)) {
std::cout << "配准成功,内点数 / Registration successful, inliers: "
<< result.inliers.size() << std::endl;
}
// 4PCS配准示例(不需要对应关系) / 4PCS registration example (no correspondences needed)
fourpcs.set_source(source_cloud);
fourpcs.set_target(target_cloud);
fourpcs.set_delta(0.01f); // 1cm精度 / 1cm accuracy
fourpcs.set_overlap(0.5f); // 50%重叠 / 50% overlap
if (fourpcs.align(result)) {
// 使用result.transformation变换源点云
// Use result.transformation to transform source cloud
}
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
bool align(result_type &result)
执行配准 / Perform registration
Definition base_coarse_registration.hpp:117
4PCS(4-Point Congruent Sets)粗配准算法 / 4PCS coarse registration algorithm
Definition four_pcs_registration.hpp:42
void set_overlap(DataType overlap)
设置重叠率估计 / Set overlap ratio estimate
Definition four_pcs_registration.hpp:99
void set_delta(DataType delta)
设置配准精度delta / Set registration accuracy delta
Definition four_pcs_registration.hpp:87
RANSAC粗配准算法 / RANSAC coarse registration algorithm.
Definition ransac_registration.hpp:46
Definition base_correspondence_generator.hpp:18
点云配准算法统一导出文件 / Unified export file for point cloud registration algorithms
配准结果结构体 / Registration result structure
Definition registration_result.hpp:15
std::vector< std::size_t > inliers
内点索引 / Inlier indices
Definition registration_result.hpp:20

Macro Definition Documentation

◆ LOG_ERROR_S

#define LOG_ERROR_S   toolbox::logger::thread_logger_t::instance().error_s()