文档帮助中心文档
在点云中找到点最近的邻居
[索引,距离]=FindNearestNeights(ptCloud,point,K)
[索引,距离]=FindNearestNeights(ptCloud,point,K,camMatrix)
[索引,距离]=FindNearest邻居(___、名称、值)
实例
[指数,区]=找到最近的邻居(云彩,点,K)返回指数查找输入点云中查询点的k近邻。云彩可以是无组织的或有组织的点云。使用基于Kd树的搜索算法计算查询点的K近邻。
[指数,区]=找到最近的邻居(云彩,点,K)
指数
区
云彩
点
K
[指数,区]=找到最近的邻居(云彩,点,K,camMatrix)返回输入点云中查询点的K近邻。输入点云是由深度摄影机生成的有组织点云。使用快速近似K近邻搜索算法确定查询点的K近邻。
[指数,区]=找到最近的邻居(云彩,点,K,camMatrix)
camMatrix
该函数使用摄影机投影矩阵camMatrix了解相邻点之间的关系,从而加快最近邻搜索。然而,与基于kd树的方法相比,结果的准确性较低。
笔记
此语法仅支持RGB-D传感器生成的金宝app有组织点云数据。
您可以使用估计摄影机矩阵估计给定点云数据的相机投影矩阵。
估计摄影机矩阵
[指数,区]=找到最近的邻居(___,名称、值)除了前面语法中的输入参数外,指定使用一个或多个名称值参数的选项。
[指数,区]=找到最近的邻居(___,名称、值)
名称、值
全部折叠
将一组三维坐标点加载到工作区中。
装载(“xyzPoints.mat”);
创建点云对象。
ptCloud = pointCloud (xyzPoints);
指定要识别的查询点和最近邻居的数量。
点= (0,0,0);K = 220;
得到K个最近邻点的指数和距离。
[索引,距离]=FindNearestNeights(ptCloud,point,K);
显示点云。绘制查询点和它们最近的邻居。
图pcshow(云端)保持在图3(点(1)、点(2)、点(3),“*r”)图3(ptCloud.Location(索引1)、ptCloud.Location(索引2)、ptCloud.Location(索引3),‘*’)传奇(“点云”,“查询点”,“最近的邻居的,“位置”,“南外”,“颜色”,[1 1 1])保持从
使用摄像机投影矩阵在组织的点云数据中查找查询点的K近邻,从采样的点云数据点及其对应的图像点坐标计算摄像机投影矩阵。
将组织好的点云数据加载到工作区。点云是使用Kinect深度传感器生成的。
ld=负载(“object3d.mat”);ptCloud=ld.ptCloud;
指定采样点云数据的步长。
stepSize = 100;
对输入点云进行采样,并将采样的三维点坐标存储为点云对象。
索引=1:步长:ptCloud.Count;temptcloud=select(ptCloud,索引);
从采样点云中删除无效点。
[tempPtCloud, validIndices] = removeInvalidPoints (tempPtCloud);
定义输入点云的三维世界点坐标。
worldPoints=temptcloud.Location;
求输入点云的三维点坐标对应的二维图像坐标。
[Y、X] = ind2sub([大小(ptCloud.Location, 1),大小(ptCloud.Location, 2)),指数);imagePoints = [X(validIndices)' Y(validIndices)'];
根据图像和世界点坐标估计摄像机投影矩阵。
camMatrix=估计CameraMatrix(图像点、世界点);
Point = [0.4 0.3 0.2];K = 20;
利用摄像机投影矩阵求K个最近邻点的指标和距离。使用点云方法选择获取最近邻的点云数据。
选择
[索引,距离]=FindNearestNeights(ptCloud,point,K,camMatrix);ptCloudB=选择(ptCloud,索引);
显示点云和查询点的最近邻居。
图pcshow(云端)保持在pcshow (ptCloudB。的位置,“ob”)传奇(“点云”,“最近的邻居的,“位置”,“南外”,“颜色”,[1 1 1])保持从
pointCloud
点云,指定为pointCloud对象。
该功能支持仅由RGB-D传金宝app感器生成的有组织点云数据。
[x,Y,Z]
查询点,指定为表单的三元素向量[x,Y,Z].
最近的邻居数,指定为正整数。
相机投影矩阵,指定为一个4乘3的矩阵,它将3-D世界点映射到2-D图像点。你可以计算camMatrix通过使用估计摄影机矩阵作用
指定可选的逗号分隔的字符对名称、值参数。名称是参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家.
名称
价值
Name1, Value1,…,的家
findNearestNeighbors (ptCloud点k“排序”,真的)
“排序”
错误的
真正的
排序索引,指定为逗号分隔的对“排序”和一个逻辑标量。当您设置排序到真正的,返回的索引根据到查询点的距离升序排序。要关闭排序,请设置排序到错误的.
排序
“MaxLeafChecks”
正
要检查的叶节点数目,指定为逗号分隔的对,包括“MaxLeafChecks”和一个整数。当您将此值设置为正,则搜索整个树。当搜索整个树时,它会生成精确的搜索结果。增加用于检查的叶节点数量可以提高准确性,但会降低效率。
名称-值参数“MaxLeafChecks”仅对基于kd树的搜索方法有效。
存储点的索引,作为列向量返回。向量包含存储在点云中最近邻的K个线性指标。
到查询点的距离,作为列向量返回。向量包含查询点与其最近邻居之间的欧氏距离。
[1] Muja,M.和David G.Lowe,“具有自动算法配置的快速近似近邻”。在VISAPP国际计算机视觉理论与应用会议上2009年,第331-340页。
使用注意事项及限制:
对于非主机平台中的代码生成,值“MaxLeafChecks”必须设置为默认值正。如果指定的值不是正,该函数将生成警告并自动为“MaxLeafChecks”.
对于GPU代码生成,camMatrix输入参数被忽略。
对于GPU代码生成,“MaxLeafChecks”名称-值对选项被忽略。
摄影机矩阵|估计摄影机矩阵|pointCloud
摄影机矩阵
您有此示例的修改版本。是否要用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。
与当地办事处联系