主要内容

findNeighborsInRadius

发现邻居的半径内点的点云

描述

例子

(指数,经销)= findNeighborsInRadius (ptCloud,,半径)返回指数的邻居在一个半径为一个查询输入点云。ptCloud可以是一个组织或组织点云。查询点的邻居在一个半径计算通过使用基于kd tree的搜索算法。

例子

(指数,经销)= findNeighborsInRadius (ptCloud,,半径,camMatrix)返回查询的邻居在一个半径点在输入点云。输入点云是一个有组织的深度相机生成的点云。查询点的邻居在一个半径确定使用快速近似邻居搜索算法。

函数使用摄像机投影矩阵camMatrix知道相邻点之间的关系,因此,提高搜索速度。然而,结果精度较低相比基于kd tree的方式。

请注意

  • 这个语法只支持组织RGB-D传感器万博1manbetx产生的点云数据。

  • 您可以使用estimateCameraMatrix估计摄像机投影矩阵为给定的点云数据。

(指数,经销)= findNeighborsInRadius (___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在前面的语法。

例子

全部折叠

一组三维坐标点加载到工作区。

负载(“xyzPoints.mat”);

创建一个点云对象。

ptCloud = pointCloud (xyzPoints);

查询指定一个点和半径内的邻居。

点= (0,0,3);半径= 0.5;

指数和距离的点位于指定的半径。

[指标,经销]= findNeighborsInRadius (ptCloud,点,半径);

得到的点云数据径向邻居。

ptCloudB =选择(ptCloud、指标);

显示点云。图查询点和相应的径向邻居。

图pcshow (ptCloud)plot3(点(1),(2),(3),‘*’)pcshow (ptCloudB.Location“r”)传说(“点云”,“查询点”,“径向邻居”,“位置”,“southoutside”,“颜色”(1 1 1))

图包含一个坐标轴对象。坐标轴对象包含3散射类型的对象。一个或多个行显示的值只使用这些对象标记代表点云,查询点,径向的邻居。

发现径向邻居组织查询点的点云数据通过使用摄像机投影矩阵。计算摄像机投影矩阵从采样点云数据点及其对应的像点坐标。

一个有组织的点云数据装载到工作区。生成的点云是通过使用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);半径= 0.05;

指数和径向距离的邻居。使用点云的方法选择相邻点的点云数据。

[指标,经销]= findNeighborsInRadius (ptCloud、点半径,camMatrix);ptCloudB =选择(ptCloud、指标);

显示周围的点云,径向邻居发现查询点。

图pcshow (ptCloud);持有;pcshow (ptCloudB.Location“b”);传奇(“点云”,“径向邻居”,“位置”,“southoutside”,“颜色”(1 1 1));

图包含一个坐标轴对象。坐标轴对象包含2散射类型的对象。这些对象代表点云,径向的邻居。

输入参数

全部折叠

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

查询点,指定为一个三元素向量的形式(x,y,z]

搜索半径,指定为一个标量。发现邻居们在指定的函数半径查询的输入点云。

相机的投影矩阵,指定为一个4-by-3矩阵映射点二维图像点3 d世界。你可以找到camMatrix通过使用estimateCameraMatrix函数。

名称-值参数

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

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

例子:findNeighborsInRadius (ptCloud点,半径,“排序”,真的)

排序指标,指定为逗号分隔条“排序”和一个逻辑标量。当您设置排序真正的,返回的指标是升序排序基于距离查询点。关掉排序、设置排序

叶节点的数量,指定为逗号分隔两人组成的“MaxLeafChecks”和一个整数。当你将这个值设置为,整个树搜索。当搜索整个树时,它产生精确的搜索结果。增加叶节点检查增加的数量的准确性,但会降低效率。

输出参数

全部折叠

指数的储存点,作为一个列向量返回。径向向量包含线性指数的邻居存储在点云。

距离查询点,作为一个列向量返回。向量包含之间的欧几里得距离查询点和径向邻国。

引用

[1]Muja、m和大卫·g·劳。最近的邻居“快速近似算法自动配置”。VISAPP国际会议在计算机视觉理论和应用程序。2009年。331 - 340页。

扩展功能

版本历史

介绍了R2015a