主要内容

pcmatchfeatures

寻找点云之间的匹配特征

描述

indexPairs=pcmatchfeatures(特点1特点2在提取的点云要素的输入矩阵之间查找匹配要素,并在每个要素矩阵中返回其索引。

例子

indexPairs=pcmatchfeatures(特点1特点2ptCloud1ptCloud2拒绝基于特征矩阵对应点云的空间关系信息的模糊特征匹配。

indexPairs分数]=pcmatchfeatures(___使用来自前面语法的输入参数的任意组合返回匹配特性之间的标准化欧氏距离。

___]=pcmatchfeatures(___名称,值指定使用一个或多个名称-值对参数以及以前语法中的任何参数组合的选项。例如“MatchThreshold”,0.03将匹配特征的规格化距离阈值设置为0.03

例子

全部折叠

这个例子展示了如何使用pcmatchfeatures函数。

预处理

将点云数据读取到工作区中。

ptCld = pcread (“teapot.ply”);

向下采样点云。

ptCloud = pcdownsample (ptCld,“gridAverage”, 0.05);

使用变换矩阵变换并创建新的点云一个

A=[cos(pi/6)sin(pi/6)0;...-sin(pi/6)cos(pi/6)0;...0 0 1 0;...5 5 10 1];tform = affine3d(一个);ptCloudTformed = pctransform (ptCloud tform);

想象这两个点云。

pcshowpair(ptCloud,ptcloudt格式);图例(“原始”“转换”“文本颜色”,[1 1 0]);

图中包含一个轴。轴包含两个散射类型的对象。这些对象表示原始的、经过变换的对象。

匹配相应的特征

在预处理部分,我们通过平移和旋转原始点云来创建第二个点云pcmatchfeatures函数查找这些点云之间的匹配特征。

从两个点云提取特征使用extractFPFHFeatures函数。

fixedFeature=extractFPFHFeatures(ptCloud);movingFeature=extractFPFHFeatures(ptCloudTformed);长度(movingFeature)
ans = 16578

查找匹配的功能。

[matchingPairs,scores]=pcMatchingFeatures(固定特征,移动特征,ptCloud,ptCloudt格式);长度(matchingPairs)
ans=3422

分数接近零表示算法对匹配有信心,反之亦然。使用分数矢量。

意思是(分数)
ans=0.0016

输入参数

全部折叠

第一个要素集,指定为1-借-N矩阵。矩阵包含了1特点,以及N是每个特征向量的长度。每行代表一个要素。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

第二个特性集,指定为2-借-N矩阵。矩阵包含了2特点,以及N是每个特征向量的长度。每行代表一个要素。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

第一点云,指定为点云对象

第二点云,指定为点云对象

名称-值对的观点

指定可选的逗号分隔的对名称,值论据。的名字参数名和价值是对应的值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值

例子:“MatchThreshold”,0.03将匹配特征的规格化距离阈值设置为0.03

匹配方法,指定为逗号分隔的对,由“方法”或者“详尽的”“近似值”。该方法确定函数如何查找特点1特点2.当两个特征向量之间的距离小于或等于匹配阈值时,两个特征向量匹配。

  • “详尽的”—计算指定特征向量之间的成对距离。

  • “近似值”-使用一个有效的近似最近邻搜索。对于大的特性集使用这种方法。有关算法的更多信息,请参见[1]

数据类型:烧焦|字符串

匹配阈值,指定为逗号分隔的对“匹配阈值”和值域内的标量(0 1].

当两个特征向量之间的归一化欧氏距离小于或等于匹配阈值时,两个特征向量将匹配。较高的值可能会导致额外的匹配,但会增加误报的风险。

数据类型:|

空间关系阈值,指定为逗号分隔对组成“不合格率”和值域内的标量(0,1).

该函数使用点云数据估计与潜在特征匹配关联的点之间的空间关系,并基于空间关系阈值拒绝匹配。较低的空间关系阈值可能会导致额外的匹配,但会增加误报的风险。

函数不考虑空间关系阈值,如果您不为ptCloud1ptCloud2输入参数。

请注意

为了考虑空间关系,特征矩阵之间必须至少匹配三个特征。

数据类型:|

输出参数

全部折叠

匹配特征的索引,返回为P2矩阵。P为匹配的特征个数。属性之间的每一行对应一个匹配的特征特点1特点2输入,其中第一个元素是特性的索引特点1第二个元素是匹配特征的索引特点2

数据类型:uint32

匹配特征之间的归一化欧氏距离,返回为P元列向量。的向量的第Th元素为中匹配特征之间的距离第一行indexPairs输出

数据类型:|

工具书类

Muja, Marius和David G. Lowe。"具有自动算法配置的快速近似最近邻"在第四届计算机视觉理论与应用国际会议论文集葡萄牙里斯本:科学与技术出版社,2009年。https://doi.org/10.5220/0001787803310340.

[2] Zhou Qian-Yi, Jaesik Park, Vladlen Koltun。“快速全球注册。”在欧洲计算机视觉会议, 766 - 782页。施普林格可汗,2016。

扩展功能

C / c++代码生成
使用Matlab®编码器生成C和C++代码™.

介绍了R2020b