文件帮助中心
在点云中找到一个半径内的邻居
[索引,dists] = findneighborsinradius(ptcloud,point,半径)
[索引,dists] = findneighborsinradius(Ptcloud,point,Radius,Cammatrix)
[Indices,Dists] = Findneighborsinradius(___,名称,价值)
例子
[指数那stom.] = findneighborsinradius(Ptcloud.那观点那半径)返回指数在输入点云中查询点的半径内的邻居。Ptcloud.可以成为未经组织或有组织的点云。通过使用基于KD-Tree的搜索算法来计算查询点的半径内的邻居。
[指数那stom.] = findneighborsinradius(Ptcloud.那观点那半径)
指数
stom.
Ptcloud.
观点
半径
[指数那stom.] = findneighborsinradius(Ptcloud.那观点那半径那Cammatrix.)在输入点云中的查询点的半径内返回邻居。输入点云是由深度相机生成的有组织点云。使用快速近似邻居搜索算法确定查询点的半径内的邻居。
[指数那stom.] = findneighborsinradius(Ptcloud.那观点那半径那Cammatrix.)
Cammatrix.
该功能使用相机投影矩阵Cammatrix.要了解相邻点之间的关系,因此加快搜索。然而,与基于KD树的方法相比,结果具有较低的精度。
笔记
此语法仅支持由RGB-D传感器产生万博1manbetx的有组织的点云数据。
您可以使用估计估计给定点云数据的相机投影矩阵。
估计
[指数那stom.] = findneighborsinradius(___那名称,价值)除了上述语法中的输入参数之外,使用一个或多个名称值对参数指定选项。
[指数那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])保持离开;
pointcloud.
点云,指定为apointcloud.目的。
[X那y那Z.]
查询点,指定为表单的三元素矢量[X那y那Z.]。
搜索半径,指定为标量。该函数在指定中找到邻居半径在输入点云中的查询点周围。
摄像机投影矩阵,指定为4×3矩阵,将3-D世界指向2-D图像点。你可以找到Cammatrix.通过使用估计功能。
指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen。
名称
价值
name1,value1,...,namen,valuen
Findneighborsinradius(Ptcloud,Point,Radius,'Sort',True)
'种类'
错误的
真的
排序指数,指定为逗号分隔的对'种类'和一个逻辑标量。当你设置时种类至真的,返回的指数根据查询点的距离以升序排序。关闭排序,设置种类至错误的。
种类
'maxleafchecks'
INF.
叶节点的数量,指定为逗号分隔对组成'maxleafchecks'和一个整数。将此值设置为时INF.,搜索整个树。搜索整个树后,它会产生精确的搜索结果。增加叶节点的数量来检查精度,但降低了效率。
存储点的指数,作为列向量返回。矢量包含存储在点云中的径向邻居的线性指标。
查询点的距离,作为列向量返回。矢量包含查询点与其径向邻居之间的欧几里德距离。
[1] Muja,M.和David G. Lowe。“具有自动算法配置的快速近似邻居”。在Visapp国际计算机视觉理论和应用中的国际会议中。2009.第331-340页。
使用说明和限制:
对于非主机平台中的代码生成,值为'maxleafchecks'必须设置为默认值INF.。如果指定除此之外的值INF.,该函数生成警告并自动为默认值分配'maxleafchecks'。
对于GPU代码生成,Cammatrix.输入参数被忽略。
对于GPU代码生成,'maxleafchecks'名称 - 值对选项被忽略。
Cameramatrix.|估计|pointcloud.
Cameramatrix.
系统上存在此示例的修改版本。你想打开这个版本吗?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室