PCL - ICP代碼研讀(二三 ) - ConvergenceCriteria架構

PCL - ICP代碼研讀(二三 ) - ConvergenceCriteria架構

前言

ConvergenceCriteria是一個抽象類別,提供了hasConverged介面,用於判斷當前點雲校正算法是否收斂。

本篇對應到convergence_criteria.h這個檔案。

ConvergenceCriteria

#pragma once

#include <pcl/memory.h>
#include <pcl/pcl_macros.h>

namespace pcl {
namespace registration {
/** \brief @b ConvergenceCriteria represents an abstract base class for
 * different convergence criteria used in registration loops.
 *
 * This should be used as part of an Iterative Closest Point (ICP)-like
 * method, to verify if the algorithm has reached convergence.
 *
 * Typical convergence criteria that could inherit from this include:
 *
 *  * a maximum number of iterations has been reached
 *  * the transformation (R, t) cannot be further updated (the difference between
 * current and previous is smaller than a threshold)
 *  * the Mean Squared Error (MSE) between the current set of correspondences and the
 * previous one is smaller than some threshold
 *
 * \author Radu B. Rusu
 * \ingroup registration
 */
class PCL_EXPORTS ConvergenceCriteria {
public:

using

定義名稱,方便後續使用:

  using Ptr = shared_ptr<ConvergenceCriteria>;
  using ConstPtr = shared_ptr<const ConvergenceCriteria>;

constructor和destructor

  /** \brief Empty constructor. */
  ConvergenceCriteria() {}

  /** \brief Empty destructor. */
  virtual ~ConvergenceCriteria() {}

收斂判斷函數

hasConverged函數用於判斷當前校正算法收斂與否。

此外還提供了bool operator,所以在icp.hpp中才可以使用converged_ = static_cast<bool>((*convergence_criteria_));直接把ConvergenceCriteria物件轉成bool值。

  /** \brief Check if convergence has been reached. Pure virtual. */
  virtual bool
  hasConverged() = 0;

  /** \brief Bool operator. */
  operator bool() { return (hasConverged()); }
};
} // namespace registration
} // namespace pcl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值