主要内容

pcmatchfeatures

查找点云之间的匹配特征

描述

索引= pcmatchfeatures (features1,features2)查找提取点云特征的输入矩阵之间的匹配特征,并在每个特征矩阵中返回它们的索引。

实例

索引= pcmatchfeatures (features1,features2,ptCloud1,ptCloud2)基于与特征矩阵对应的点云的空间关系信息拒绝不明确的特征匹配。

[索引,分数) = pcmatchfeatures (___)使用以前语法中输入参数的任意组合返回匹配特征之间的标准化欧几里德距离。

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

例子

全部崩溃

此示例演示如何使用pcmatchfeatures作用

预处理

将点云数据读入工作区。

ptCld=pcread(“茶壶,铺层”);

向下采样点云。

ptCloud=pcdownsample(ptCld,“网格平均”,0.05);

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

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

将两点云可视化。

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

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

匹配相应的功能

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

使用特征提取作用

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

找到匹配特性。

[matchingPairs,分数]= pcmatchfeatures (fixedFeature、movingFeature ptCloud, ptCloudTformed);长度(matchingPairs)
ans = 3414

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

平均(分数)
ans = 0.0017

输入参数

全部崩溃

第一个特性集,指定为M1.——- - - - - -N矩阵矩阵包含M1.特性,N为每个特征向量的长度。每一行代表一个特性。

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的

第二个要素集,指定为M2.——- - - - - -N矩阵矩阵包含M2.特性,N为每个特征向量的长度。每一行代表一个特性。

数据类型:仅有一个的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64|必然的

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

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

名称值参数

指定可选的逗号分隔的字符对名称、值参数。名称是参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

匹配方法,指定为逗号分隔对,由“方法”,要么“详尽”“近似”.该方法决定了函数如何找到两者之间最接近的邻居features1features2.当两个特征向量之间的距离小于或等于匹配阈值时,两个特征向量进行匹配。

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

  • “近似”-使用有效的近似最近邻搜索。对大型要素集使用此方法。有关该算法的更多信息,请参阅[1]

数据类型:字符|一串

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

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

数据类型:仅有一个的|双重的

空间关系阈值,指定为逗号分隔对,由“RejectRatio”和范围内的标量(0 1).

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

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

笔记

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

数据类型:仅有一个的|双重的

输出参数

全部崩溃

匹配特征的索引,作为P-by-2矩阵。P是匹配特征的数量。每一行对应于两行之间的匹配特征features1features2输入,其中第一个元素是中特征的索引features1第二个元素是中匹配特征的索引features2

数据类型:uint32

匹配特征之间的标准化欧几里德距离,返回为P-元素列向量向量的第th个元素是向量中匹配特征之间的距离第四排索引输出。

数据类型:仅有一个的|双重的

参考文献

[1] 穆哈、马吕斯和大卫·G·洛。“具有自动算法配置的快速近似近邻。”中第四届计算机视觉理论与应用国际会议论文集, 331 - 40。葡萄牙里斯本:科学出版社-科学技术出版物,2009。https://doi.org/10.5220/0001787803310340。

[2] 周、钱毅、杰斯克公园和弗拉德伦·科尔顿。“快速全球注册”,中文版欧洲计算机视觉会议,第766-782页。湛斯普林格,2016年。

扩展能力

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

在R2020b中引入