OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
未找到匹配项
公有类型 | 公有成员函数 | 所有成员列表
cv::ppf_match_3d::ICP 类参考

此类实现了一种非常高效且鲁棒的迭代最近点 (ICP) 算法变体。任务是将 3D 模型(或点云)与一组噪声目标数据进行配准。这些变体是在经过某些测试后由我自己组合在一起的。任务是要能够快速匹配杂乱场景中的部分、噪声点云。你会发现我强调的是性能,同时保持准确性。此实现基于 Tolga Birdal 在此处的 MATLAB 实现: http://www.mathworks.com/matlabcentral/fileexchange/47152-icp-registration-using-efficient-variants-and-multi-resolution-scheme 主要贡献来自: 更多...

#include <opencv2/surface_matching/icp.hpp>

cv::ppf_match_3d::ICP 的协作图

公有类型

枚举  {
  ICP_SAMPLING_TYPE_UNIFORM = 0 ,
  ICP_SAMPLING_TYPE_GELFAND = 1
}
 

公有成员函数

 ICP ()
 
 ICP (const int iterations, const float tolerence=0.05f, const float rejectionScale=2.5f, const int numLevels=6, const int sampleType=ICP::ICP_SAMPLING_TYPE_UNIFORM, const int numMaxCorr=1)
 ICP 构造函数,具有默认参数。
 
virtual ~ICP ()
 
int registerModelToScene (const Mat &srcPC, const Mat &dstPC, double &residual, Matx44d &pose)
 执行配准。
 
int ICP (const Mat &srcPC, const Mat &dstPC, std::vector< Pose3DPtr > &poses)
 使用多个初始位姿执行配准。
 

详细描述

此类实现了一种非常高效且鲁棒的迭代最近点 (ICP) 算法变体。任务是将 3D 模型(或点云)与一组噪声目标数据进行配准。这些变体是在经过某些测试后由我自己组合在一起的。任务是要能够快速匹配杂乱场景中的部分、噪声点云。你会发现我强调的是性能,同时保持准确性。此实现基于 Tolga Birdal 在此处的 MATLAB 实现: http://www.mathworks.com/matlabcentral/fileexchange/47152-icp-registration-using-efficient-variants-and-multi-resolution-scheme 主要贡献来自

  1. 挑剔的 ICP: http://www5.informatik.uni-erlangen.de/Forschung/Publikationen/2003/Zinsser03-ARI.pdf
  2. ICP 算法 的高效变体: http://docs.happycoders.org/orgadoc/graphics/imaging/fasticp_paper.pdf
  3. ICP 算法 的几何稳定采样: https://graphics.stanford.edu/papers/stabicp/stabicp.pdf
  4. 多分辨率配准: http://www.cvl.iis.u-tokyo.ac.jp/~oishi/Papers/Alignment/Jost_MultiResolutionICP_3DIM03.pdf
  5. Kok Lim Low 对点到平面度量的线性化: https://www.comp.nus.edu.sg/~lowkl/publications/lowk_point-to-plane_icp_techrep.pdf

成员枚举文档

◆ 匿名枚举

匿名枚举
枚举器
ICP_SAMPLING_TYPE_UNIFORM 
ICP_SAMPLING_TYPE_GELFAND 

构造函数和析构函数文档

◆ ICP() [1/2]

cv::ppf_match_3d::ICP::ICP ( )
inline
Python
cv.ppf_match_3d.ICP() -> <ppf_match_3d_ICP 对象>
cv.ppf_match_3d.ICP(iterations[, tolerence[, rejectionScale[, numLevels[, sampleType[, numMaxCorr]]]]]) -> <ppf_match_3d_ICP 对象>

◆ ~ICP()

virtual cv::ppf_match_3d::ICP::~ICP ( )
inlinevirtual

◆ ICP() [2/2]

cv::ppf_match_3d::ICP::ICP ( const int  iterations,
const float  tolerence = 0.05f,
const float  rejectionScale = 2.5f,
const int  numLevels = 6,
const int  sampleType = ICP::ICP_SAMPLING_TYPE_UNIFORM,
const int  numMaxCorr = 1 
)
inline
Python
cv.ppf_match_3d.ICP() -> <ppf_match_3d_ICP 对象>
cv.ppf_match_3d.ICP(iterations[, tolerence[, rejectionScale[, numLevels[, sampleType[, numMaxCorr]]]]]) -> <ppf_match_3d_ICP 对象>

ICP 构造函数,具有默认参数。

参数
[in]iterations
[in]tolerence控制 ICP 每次迭代的配准精度。
[in]rejectionScale为了鲁棒性,应用了鲁棒的异常值拒绝。此值实际上对应于标准差系数。拒绝比例 * &sigma 的点在配准期间将被忽略。
[in]numLevels要进行的金字塔层数。深金字塔提高了速度,但降低了精度。金字塔太粗可能会在不准确的配准之外产生计算开销。应选择此参数以优化平衡。典型值范围为 4 到 10。
[in]sampleType当前,此参数被忽略,仅应用统一采样。将其保留为 0。
[in]numMaxCorr当前,此参数被忽略,仅应用 PickyICP。将其保留为 1。

成员函数文档

◆ registerModelToScene() [1/2]

int cv::ppf_match_3d::ICP::registerModelToScene ( const Mat srcPC,
const Mat dstPC,
double &  residual,
Matx44d pose 
)
Python
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC) -> retval, residual, pose
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC, poses) -> retval, poses

执行配准。

参数
[in]srcPC模型的输入点云。预计具有法线 (Nx6)。当前,CV_32F 是唯一支持的数据类型。
[in]dstPC场景的输入点云。假设模型在场景上配准。场景保持静止。预计具有法线 (Nx6)。当前,CV_32F 是唯一支持的数据类型。
[out]residual输出配准误差。
[out]posesrcPC 和 dstPC 之间的变换。
返回值
成功终止后,函数返回 0。

假设模型在场景上配准。场景保持静止,而模型进行变换。输出位姿将模型变换到场景上。由于点到平面最小化,场景预计具有法线可用。预计具有法线 (Nx6)。

◆ registerModelToScene() [2/2]

int cv::ppf_match_3d::ICP::registerModelToScene ( const Mat srcPC,
const Mat dstPC,
std::vector< Pose3DPtr > &  poses 
)
Python
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC) -> retval, residual, pose
cv.ppf_match_3d.ICP.registerModelToScene(srcPC, dstPC, poses) -> retval, poses

使用多个初始位姿执行配准。

参数
[in]srcPC模型的输入点云。预计具有法线 (Nx6)。当前,CV_32F 是唯一支持的数据类型。
[in]dstPC场景的输入点云。当前,CV_32F 是唯一支持的数据类型。
[in,out]poses输入位姿,用于开始,但也是位姿的输出列表。
返回值
成功终止后,函数返回 0。

假设模型在场景上配准。场景保持静止,而模型进行变换。输出位姿将模型变换到场景上。由于点到平面最小化,场景预计具有法线可用。预计具有法线 (Nx6)。


此类的文档是从以下文件生成的