主要内容

Findneighborsinradius.

在点云中找到一个半径内的邻居

描述

例子

[指数stom.] = findneighborsinradius(Ptcloud.观点半径返回指数在输入点云中查询点的半径内的邻居。Ptcloud.可以成为未经组织或有组织的点云。通过使用基于KD-Tree的搜索算法来计算查询点的半径内的邻居。

例子

[指数stom.] = findneighborsinradius(Ptcloud.观点半径Cammatrix.在输入点云中的查询点的半径内返回邻居。输入点云是由深度相机生成的有组织点云。使用快速近似邻居搜索算法确定查询点的半径内的邻居。

该功能使用相机投影矩阵Cammatrix.要了解相邻点之间的关系,因此加快搜索。然而,与基于KD树的方法相比,结果具有较低的精度。

笔记

  • 此语法仅支持由RGB-D传感器产生万博1manbetx的有组织的点云数据。

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

[指数stom.] = findneighborsinradius(___名称,价值除了上述语法中的输入参数之外,使用一个或多个名称值对参数指定选项。

例子

全部收缩

将一组3-D坐标点加载到工作区中。

加载('xyzpoints.mat');

创建点云对象。

ptcloud = pointcloud(xyzpoints);

指定要识别邻居的查询点和半径。

点= [0,0,3];半径= 0.5;

获取位于指定半径范围内的指数和距离的距离。

[索引,dists] = findneighborsinradius(ptcloud,point,半径);

获取径向邻居的点云数据。

ptcloudb = select(ptcloud,索引);

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

图pcshow(ptcloud)保持Plot3(点(1),点(2),点(3),'*')pcshow(ptcloudb.location,'r') 传奇('点云''query point''径向邻居''地点''southoutside''颜色',[1 1 1])保持离开

使用相机投影矩阵在有组织的点云数据中找到查询点的径向邻居。从采样点云数据点及其相应的图像点坐标计算摄像机投影矩阵。

将有组织的点云数据加载到工作区中。通过使用Kinect深度传感器生成点云。

ld = load('Object3d.mat');ptcloud = ld.ptcloud;

指定对点云数据采样的步长。

stepsize = 100;

示例输入点云并将采样的3-D点坐标存储为点云对象。

indices = 1:步骤化:ptcloud.count;tempptcloud = select(ptcloud,indices);

从采样点云中删除无效点。

[tempptcloud,validindices] = removeInvalidPoints(tempptcloud);

定义输入点云的三维世界点坐标。

WorldPoints = tempptcloud.location;

找到与输入点云的3-D点坐标对应的2-D图像坐标。

[y,x] = IND2SUB([大小(PTCloud.Location,1),大小(PTCloud.Location,2)],指数);imagePoints = [x(validindices)'y(validindices)'];

从图像和世界点坐标估计相机投影矩阵。

cammatrix = rightatecameramatrix(Verippoints,WorldPoints);

指定要识别邻居的查询点和半径。

点= [0.4 0.3 0.2];半径= 0.05;

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

[索引,dists] = findneighborsinradius(Ptcloud,point,Radius,Cammatrix);ptcloudb = select(ptcloud,索引);

显示点云和查询点周围的径向邻居。

图pcshow(ptcloud);抓住;pcshow(ptcloudb.location,'B');传奇('点云''径向邻居''地点''southoutside''颜色',[1 1 1])保持离开;

输入参数

全部收缩

点云,指定为apointcloud.目的。

查询点,指定为表单的三元素矢量[XyZ.]

搜索半径,指定为标量。该函数在指定中找到邻居半径在输入点云中的查询点周围。

摄像机投影矩阵,指定为4×3矩阵,将3-D世界指向2-D图像点。你可以找到Cammatrix.通过使用估计功能。

名称值对参数

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:Findneighborsinradius(Ptcloud,Point,Radius,'Sort',True)

排序指数,指定为逗号分隔的对'种类'和一个逻辑标量。当你设置时种类真的,返回的指数根据查询点的距离以升序排序。关闭排序,设置种类错误的

叶节点的数量,指定为逗号分隔对组成'maxleafchecks'和一个整数。将此值设置为时INF.,搜索整个树。搜索整个树后,它会产生精确的搜索结果。增加叶节点的数量来检查精度,但降低了效率。

输出参数

全部收缩

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

查询点的距离,作为列向量返回。矢量包含查询点与其径向邻居之间的欧几里德距离。

参考

[1] Muja,M.和David G. Lowe。“具有自动算法配置的快速近似邻居”。在Visapp国际计算机视觉理论和应用中的国际会议中。2009.第331-340页。

扩展能力

也可以看看

||

在R2015A介绍