主要内容

pcmatchfeatures

找到匹配点云之间的特性

自从R2020b

描述

indexPairs= pcmatchfeatures (features1,features2)发现输入矩阵之间的匹配特性提取点云特征并返回他们的指数在每个特征矩阵。

例子

indexPairs= pcmatchfeatures (features1,features2,ptCloud1,ptCloud2)拒绝模棱两可的特征匹配基于空间关系信息相对应的点云特征矩阵。

(indexPairs,分数)= pcmatchfeatures (___)返回规范化欧几里得距离之间的匹配特性从先前的语法使用任何输入参数的组合。

(___)= pcmatchfeatures (___,名称,值)指定选项使用一个或多个名称-值对参数除了参数在以前的语法的任意组合。例如,“MatchThreshold”, 0.03设置匹配特征的归一化距离阈值0.03

例子

全部折叠

这个例子展示了如何使用匹配对应点云特征pcmatchfeatures函数。

预处理

点云数据读入工作区。

ptCld = pcread (“teapot.ply”);

Downsample点云。

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

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

一个= cos(π/ 6)sin(π/ 6)0 5;罪(π/ 6)因为(π/ 6)0 5;0 0 1 10;0 0 0 1);tform = affinetform3d(一个);ptCloudTformed = pctransform (ptCloud tform);

想象两个点云。

pcshowpair (ptCloud ptCloudTformed);传奇(“原始”,“转换”,“输入TextColor”,(1 1 0));

图包含一个坐标轴对象。坐标轴对象包含2散射类型的对象。这些对象代表原始,改变了。

匹配相应的功能

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

提取特征点云的使用extractFPFHFeatures函数。

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

找到匹配特性。

[matchingPairs,分数]= pcmatchfeatures (fixedFeature、movingFeature ptCloud, ptCloudTformed);长度(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|逻辑

第一个点云,指定为一个pointCloud对象。

第二点云,指定为一个pointCloud对象。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

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

匹配方法,指定为逗号分隔组成的“方法”,要么“详尽”“近似”。方法决定了函数找到最近的邻居之间features1features2。两个特征向量匹配,当它们之间的距离小于等于匹配阈值。

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

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

数据类型:字符|字符串

匹配阈值,指定为逗号分隔组成的“MatchThreshold”和一个标量范围(0 1]。

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

数据类型:|

空间关系的阈值,指定为逗号分隔组成的“RejectRatio”和一个标量范围(0 1)。

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

阈值函数没有考虑空间关系如果你不指定值ptCloud1ptCloud2输入参数。

请注意

至少有三个特性必须匹配特性矩阵考虑空间之间的关系。

数据类型:|

输出参数

全部折叠

指标的匹配特性,作为一个返回P2矩阵。P是匹配的数量特征。每一行对应一个之间的匹配特性features1features2输入,第一个元素的索引功能features1第二个元素是匹配的索引功能features2

数据类型:uint32

归一化之间的欧几里得距离匹配特性,作为一个返回P元列向量。的th元素的向量之间的距离的匹配特性th的行indexPairs输出。

数据类型:|

引用

[1]Muja,马吕斯和大卫·g·劳。最近的邻居“快速近似算法自动配置”。In第四届国际计算机视觉理论的程序和应用程序,331 - 40。葡京,葡萄牙:SciTePress -科技出版物,2009。https://doi.org/10.5220/0001787803310340。

[2]周、钱易Jaesik公园,Vladlen Koltun。“快速全球注册。”In欧洲计算机视觉,766 - 782页。施普林格,可汗,2016。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2020b