帮助中心帮助中心
在点云找到最近的邻居的一个点
[指标,经销]= findNearestNeighbors (ptCloud、点、K)
[指标,经销]= findNearestNeighbors (ptCloud点,K, camMatrix)
[指标,经销]= findNearestNeighbors (___、名称、值)
例子
(指数,经销)= findNearestNeighbors (ptCloud,点,K)返回指数再对邻居查询的点在输入点云。ptCloud可以是一个组织或组织点云。再邻居查询的点计算通过使用基于kd tree的搜索算法。
(指数,经销)= findNearestNeighbors (ptCloud,点,K)
指数
经销
ptCloud
点
K
(指数,经销)= findNearestNeighbors (ptCloud,点,K,camMatrix)再返回查询的邻居点在输入点云。输入点云是一个有组织的深度相机生成的点云。查询的邻居再点确定使用快速近似再搜索算法。
(指数,经销)= findNearestNeighbors (ptCloud,点,K,camMatrix)
camMatrix
函数使用摄像机投影矩阵camMatrix知道相邻点之间的关系,因此,加速了最近邻搜索。然而,结果精度较低相比基于kd tree的方式。
请注意
这个语法只支持组织RGB-D传感器金宝app产生的点云数据。
您可以使用estimateCameraMatrix估计摄像机投影矩阵为给定的点云数据。
estimateCameraMatrix
(指数,经销)= findNearestNeighbors (___,名称,值)指定选项使用一个或多个名称参数除了输入参数在前面的语法。
(指数,经销)= findNearestNeighbors (___,名称,值)
名称,值
全部折叠
一组三维坐标点加载到工作区。
负载(“xyzPoints.mat”);
创建一个点云对象。
ptCloud = pointCloud (xyzPoints);
指定一个查询点最近的邻居的数量。
点= (0,0,0);K = 220;
得到了指数和K最近的相邻点的距离。
[指标,经销]= findNearestNeighbors (ptCloud点K);
显示点云。图查询点最近的邻居。
图pcshow (ptCloud)在plot3(点(1),(2),(3),“* r”)plot3 (ptCloud.Location(指标,1),ptCloud.Location(指标,2),ptCloud.Location(指标,3),‘*’)传说(“点云”,“查询点”,“最近的邻居的,“位置”,“southoutside”,“颜色”(1 1 1))从
再找到邻居组织查询点的点云数据通过使用摄像机投影矩阵。计算摄像机投影矩阵从采样点云数据点及其对应的像点坐标。
一个有组织的点云数据装载到工作区。生成的点云是通过使用Kinect深度传感器。
ld =负载(“object3d.mat”);ptCloud = ld.ptCloud;
指定步长采样点云数据。
stepSize = 100;
样本的输入点云计算和存储三维点坐标作为点云采样对象。
指数= 1:stepSize: ptCloud.Count;tempPtCloud =选择(ptCloud、指标);
删除无效的采样点云的点。
[tempPtCloud, validIndices] = removeInvalidPoints (tempPtCloud);
定义输入点的三维世界坐标点云。
worldPoints = tempPtCloud.Location;
找到相对应的二维图像坐标输入点云的三维点坐标。
[Y、X] = ind2sub([大小(ptCloud.Location, 1),大小(ptCloud.Location, 2)),指数);imagePoints = [X (validIndices) Y (validIndices) ');
估计摄像机投影矩阵的图像点坐标和世界。
camMatrix = estimateCameraMatrix (imagePoints worldPoints);
点= (0.4 0.3 0.2);K = 20;
发现K的指数和距离最近的相邻点通过摄像机投影矩阵。使用点云的方法选择得到的点云数据最近的邻居。
选择
[指标,经销]= findNearestNeighbors (ptCloud,点K camMatrix);ptCloudB =选择(ptCloud、指标);
显示查询的点云和最近的邻居。
图pcshow (ptCloud)在pcshow (ptCloudB.Location“ob”)传说(“点云”,“最近的邻居的,“位置”,“southoutside”,“颜色”(1 1 1))从
pointCloud
点云,指定为一个pointCloud对象。
函数支持组织的点云数据生成金宝app只从RGB-D传感器。
(x,y,z]
查询点,指定为一个三元素向量的形式(x,y,z]。
最近的邻居,指定为一个正整数。
相机的投影矩阵,指定为一个4-by-3矩阵映射点二维图像点3 d世界。你可以计算camMatrix通过使用estimateCameraMatrix函数。
指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
Name1 = Value1,…,以=家
的名字
价值
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。
例子:findNearestNeighbors (ptCloud点k“排序”,真的)
findNearestNeighbors (ptCloud点k“排序”,真的)
排序
假
真正的
排序指标,指定为逗号分隔条“排序”和一个逻辑标量。当您设置排序来真正的,返回的指标是升序排序基于距离查询点。关掉排序、设置排序来假。
“排序”
MaxLeafChecks
正
叶节点检查数量,指定为逗号分隔两人组成的“MaxLeafChecks”和一个整数。当你将这个值设置为正,整个树搜索。当搜索整个树时,它产生精确的搜索结果。增加叶节点检查增加的数量的准确性,但会降低效率。
“MaxLeafChecks”
名称-值参数“MaxLeafChecks”只与基于kd tree的搜索方法是有效的。
指数的储存点,作为一个列向量返回。向量包含线性指数K最近的邻居存储在点云。
距离查询点,作为一个列向量返回。向量包含之间的欧几里得距离查询点最近的邻国。
[1]Muja、m和大卫·g·劳。最近的邻居“快速近似算法自动配置”。VISAPP国际会议在计算机视觉理论和应用程序。2009年。331 - 340页。
使用笔记和限制:
在不平台代码生成的值“MaxLeafChecks”必须设置为默认值吗正。如果你以外的指定值正,函数生成一个警告,自动分配的默认值“MaxLeafChecks”。
GPU代码生成的camMatrix输入参数被忽略。
GPU代码生成的“MaxLeafChecks”名称-值对的选项将被忽略。
pointCloud|estimateCameraMatrix|cameraMatrix
cameraMatrix
您有一张这本Beispiels geanderte版本。您这本Beispiel麻省理工学院古老Anderungen offnen吗?
您有窗户的链接geklickt,汪汪汪der diesem MATLAB-Befehl entspricht:
在das MATLAB-Befehlsfenster Fuhren您窝Befehl军队Eingabe来自。浏览器unterstutzen MATLAB-Befehle。
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室