主要内容

findPointsInROI

在点云中感兴趣的区域内找到点

描述

例子

指数= findPointsInROI (ptCloudroi返回输入点云中感兴趣区域(ROI)内的点。使用基于kd树的搜索算法获得指定ROI内的点。

例子

指数= findPointsInROI (ptCloudroicamMatrix返回输入点云的ROI区域内的点。输入点云是由深度摄像机生成的有组织的点云。利用快速近似邻域搜索算法获得了指定ROI内的点。

该函数使用摄像机投影矩阵camMatrix知道相邻点之间的关系,从而加快搜索速度。然而,与基于kd树的方法相比,结果的准确性较低。

请注意

  • 此语法仅支持由RGB-D传感器生成金宝app的有组织的点云数据。

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

例子

全部折叠

将点云数据读入工作区。

ptCloud = pcread(“teapot.ply”);

的范围内定义一个长方体ROIxy而且z输入点云的坐标。

ROI = [-2 2 -2 2.4 3.5];

求长方体ROI内各点的指数。

指数= findPointsInROI(ptCloud,roi);

选择位于长方体ROI内的点并存储为点云对象。

ptclouddb = select(ptCloud, indexes);

显示输入点云和指定ROI范围内的点云。

图pcshow(ptCloud.Location,[0.5 0.5 0.5])保留pcshow (ptCloudB。的位置,“r”);传奇(“点云”“ROI内的点”“位置”“southoutside”“颜色”,[11 11 1])持有

利用摄像机投影矩阵在有组织的点云数据中找到长方体ROI内的点。从采样点云数据点及其对应的像点坐标计算出摄像机投影矩阵。

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

Ld =负载(“object3d.mat”);ptCloud = ld.ptCloud;

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

stepSize = 100;

对输入点云进行采样,并将采样的三维点坐标存储为点云对象。

indexes = 1:stepSize:ptCloud.Count;tempPtCloud = select(ptCloud, indexes);

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

[tempPtCloud,validIndices] = removeInvalidPoints(tempPtCloud);

从输入点云中获取三维世界点坐标。

worldPoints = tempPtCloud.Location;

求输入点云的三维点坐标对应的二维图像坐标。

[Y,X] = ind2sub([size(ptCloud.Location,1),size(ptCloud.Location,2)], indexes);imagePoints = [X(validIndices)' Y(validIndices)'];

根据图像和世界点坐标估计摄像机投影矩阵。

camMatrix = estimateCameraMatrix(imagePoints,worldPoints);

的范围内指定一个长方体ROIxy而且z输入点云的坐标。

ROI = [0.3 0.7 0 0.4 0.1 0.3];

求点云数据在长方体ROI内的指标。

指数= findPointsInROI(ptCloud,roi,camMatrix);

使用点云方法选择得到ROI内各点的点云数据。

ptclouddb = select(ptCloud, indexes);

显示输入点云和长方体ROI内的点。

figure pcshow(ptCloud) holdpcshow (ptCloudB。的位置,“r”);传奇(“点云”“ROI内的点”“位置”“southoutside”“颜色”,[11 11 1])持有

输入参数

全部折叠

点云,指定为apointCloud对象。

感兴趣的区域,指定为形式为[xminxmaxyminymaxzminzmax),地点:

  • xmin而且xmax最小值和最大值是沿界限的吗x分别设在。

  • ymin而且ymax最小值和最大值是沿界限的吗y分别设在。

  • zmin而且zmax最小值和最大值是沿界限的吗z分别设在。

摄像机投影矩阵,指定为4 × 3矩阵,将3-D世界点映射到2-D图像点。你可以找到camMatrix通过使用estimateCameraMatrix函数。

输出参数

全部折叠

存储点的索引,作为列向量返回。该向量包含存储在点云中的ROI点的线性指标。

参考文献

[1] Muja M., David G. Lowe。“快速近似近邻与自动算法配置”。计算机视觉理论与应用国际会议.2009.331 - 340页。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2015a中引入