主要内容

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 0;...-sin(pi / 6)cos(pi / 6)0 0;...0 0 1 0;...5 5 10 1];tform = actifine3d(a);ptcloudtformed = pctransform(ptcloud,tform);

想象这两个点云。

pcshowpair(ptcloud,ptcloudtformed);传奇(“原来的”“转变”“textcolor”,[1 1 0]);

图中包含一个轴对象。axis对象包含两个散点类型的对象。这些对象代表原始的,转化的。

匹配相应的功能

在预处理部分中,我们通过转换和旋转原始点云创建第二点云。在本节中,我们使用pcmatchfeatures函数查找这些点云之间的匹配特征。

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

fixedfeature =提取物(ptcloud);搬家=提取物(Ptcloudtformed);长度(移动)
ans = 16578

查找匹配功能。

[匹配方,分数] = PCMatchFeatures(FixingFeature,MotherFeature,Ptcloud,Ptcloudtformed);长度(匹配方)
ans = 3414.

靠近零的分数意味着算法对匹配和反之亦然是有信心的。计算使用所有匹配的平均分数分数向量。

意思是(分数)
ans = 0.0017.

输入参数

全部折叠

第一个功能集,指定为一个1-经过-N矩阵。矩阵包含了1功能和N是每个特征向量的长度。每行代表一个特征。

数据类型:||int8|INT16|INT32.|int64|uint8|uint16|uint32|uint64|逻辑

第二个特性集,指定为2-经过-N矩阵。矩阵包含了2功能和N是每个特征向量的长度。每行代表一个特征。

数据类型:||int8|INT16|INT32.|int64|uint8|uint16|uint32|uint64|逻辑

第一点云,指定为pointcloud.目的。

第二点云,指定为pointcloud.目的。

名称-值参数

指定可选的逗号分隔的对名称,值论点。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:“MatchThreshold”,0.03设置匹配功能的归一化距离阈值0.03

匹配方法,指定为逗号分隔的对,由“方法”和任何一个'穷举着'或者'近似'.该方法确定该功能如何找到最近的邻居之间特点1特点2.当它们之间的距离小于或等于匹配阈值时,两个特征向量匹配。

  • '穷举着'—计算指定特征向量之间的成对距离。

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

数据类型:char|字符串

匹配阈值,指定为逗号分隔的对'matchthreshold'和值域内的标量(0 1]。

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

数据类型:|

空间关系阈值,指定为逗号分隔对组成'exedratio'和值域内的标量(0,1.).

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

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

请注意

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

数据类型:|

输出参数

全部折叠

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

数据类型:uint32

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

数据类型:|

参考

Muja, Marius和David G. Lowe。"具有自动算法配置的快速近似最近邻"在第四届计算机视觉理论与应用国际会议论文集,331-40。Lisboa,葡萄牙:Scitepress - 科学技术出版物,2009。HTTPS://Doi.org/10.5220 / 0001787803310340。

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

扩展功能

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

介绍了R2020b