PCL - ICP代碼研讀(四 ) - getFitnessScore函數

本文详细介绍了PCL库中Registration类的getFitnessScore函数,分为针对两个向量和两个点云的实现。前者用于计算mse,后者在ICP流程中评估配准后的误差。通过实例和代码片段展示如何计算距离平方的mse,并揭示了在处理点云配准时的策略。

PCL - ICP代碼研讀(四 ) - getFitnessScore函數

前言

接續PCL - ICP代碼研讀(三 ) - Registration初始化,本篇主要介紹Registration類別的getFitnessScore函數。這個函數用於計算source與target間的mse(mean squared error)。PCL中提供了兩個版本的getFitnessScore,分別適用於兩個向量或點雲。

getFitnessScore - for two vectors

傳入的兩個向量代表距離平方,這個函數用於計算它們之間的mse。

// 看不懂?
// 計算兩個向量的mse?
template <typename PointSource, typename PointTarget, typename Scalar>
inline double
Registration<PointSource, PointTarget, Scalar>::getFitnessScore(
    const std::vector<float>& distances_a, const std::vector<float>& distances_b)
{
   
   

Eigen::VectorXf::Map基於現存的向量或陣列之上,建立一個Eigen::VectorXf的映射。其建構子第一個參數表示現存向量的位址,第二個參數表示欲建立row數為多少的向量。

所以這段代碼的涵意為:分別取兩向量的前nr_elem個元素為map_amap_b

  unsigned int nr_elem =
      static_
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值