主要内容

点云处理

对三维点云进行预处理、可视化、配准、拟合几何形状、构建地图、实现 SLAM 算法以及使用深度学习

点云是三维空间中的一组数据点。这些点共同构成一个三维形状或目标。数据集中的每个点由 xyz 几何坐标表示。点云可用于将大量单个空间测量值组合成一个数据集,该数据集可表示为一个可描述的目标。点云处理用于机器人导航和感知、深度估计、立体视觉、视觉配准以及高级驾驶辅助系统 (ADAS)。Computer Vision Toolbox™ 算法提供点云处理功能,用于对点云进行下采样、去噪和变换。该工具箱还提供点云配准、三维点云的几何形状拟合,以及读取、写入、存储、显示和比较点云的功能。您可以合并多个点云来重建一个三维场景,或使用配准的点云构建地图,检测闭环,优化地图以校正漂移,以及在预置的地图中执行定位。有关详细信息,请参阅Implement Point Cloud SLAM in MATLAB

要执行点云配准,即将两个或多个点云对齐到单个坐标系的过程,通常需要先将一个点云作为参考,即固定点云,然后将其他点云(即移动点云)与之对齐。点云的绝对位姿指的是点云相对于参考系(通常称为世界坐标系)的全局位置和方向。Computer Vision Toolbox 提供了各种配准方法,用于将移动点云配准到固定点云。这些方法包括迭代最近点 (ICP)、正态分布变换 (NDT)、相位相关和相干点漂移 (CPD)。您还可以使用激光雷达配准分析器 (Lidar Toolbox)以交互方式进行配准,并比较使用不同配准方法、调节参数和预处理步骤所得的结果。

函数

全部展开

pcreadRead 3-D point cloud from PLY or PCD file
pcwriteWrite 3-D point cloud to PLY or PCD file
pcfromdepthConvert depth image to point cloud (自 R2022b 起)
pcfromkinectPoint cloud from Kinect for Windows
velodyneFileReaderRead point cloud data from Velodyne PCAP file
pcviewsetManage data for point cloud based visual odometry and SLAM (自 R2020a 起)
pointCloudObject for storing 3-D point cloud
pcviewerVisualize and inspect large 3-D point cloud (自 R2023a 起)
pcshowPlot 3-D point cloud
pcshowpairVisualize difference between two point clouds
pcplayerVisualize streaming 3-D point cloud data
showShapeDisplay shapes on image, video, or point cloud (自 R2020b 起)

预处理

pcbinSpatially bin point cloud points (自 R2020a 起)
pcdenoiseRemove noise from 3-D point cloud
pcdownsampleDownsample a 3-D point cloud
pcnormalsEstimate normals for point cloud

查找和删除点

findPointsInCylinderFind points within a cylindrical region in a point cloud (自 R2023a 起)
findPointsInROIFind points within a region of interest in the point cloud
findNearestNeighborsFind nearest neighbors of a point in point cloud
findNeighborsInRadiusFind neighbors within a radius of a point in the point cloud
removeInvalidPointsRemove invalid points from point cloud
pcsegdistSegment point cloud into clusters based on Euclidean distance
segmentGroundFromLidarDataSegment ground points from organized lidar data
segmentLidarDataSegment organized 3-D range data into clusters
pcbinSpatially bin point cloud points (自 R2020a 起)

配准点云

pcregistercorrRegister two point clouds using phase correlation (自 R2020b 起)
pcregistericpRegister two point clouds using ICP algorithm
pcregistercpdRegister two point clouds using CPD algorithm
pcregisterndtRegister two point clouds using NDT algorithm

变换点云

rigidtform3d3-D rigid geometric transformation (自 R2022b 起)
pctransformTransform 3-D point cloud

对齐或合并点云

pcalignAlign array of point clouds (自 R2020b 起)
pccatConcatenate 3-D point cloud array (自 R2020b 起)
pcmergeMerge two 3-D point clouds

确定闭环候选项

findPoseLocalize point cloud within map using normal distributions transform (NDT) algorithm (自 R2021a 起)
scanContextDistanceDistance between scan context descriptors (自 R2020b 起)
scanContextDescriptorExtract scan context descriptor from point cloud (自 R2020b 起)
scanContextLoopDetectorDetect loop closures using scan context descriptors (自 R2021b 起)

优化位姿

createPoseGraphCreate pose graph (自 R2020a 起)
optimizePosesOptimize absolute poses using relative pose constraints (自 R2020a 起)

创建定位地图

pcmapndtLocalization map based on normal distributions transform (NDT) (自 R2021a 起)
pcfitcylinderFit cylinder to 3-D point cloud
pcfitplaneFit plane to 3-D point cloud
pcfitsphereFit sphere to 3-D point cloud
pcnormalsEstimate normals for point cloud
fitPolynomialRANSACFit polynomial to points using RANSAC
ransacFit model to noisy data
cylinderModelParametric cylinder model
planeModelObject for storing parametric plane model
sphereModelObject for storing a parametric sphere model

模块

全部展开

Point Cloud ViewerVisualize streaming point cloud data sequence (自 R2023a 起)

主题

精选示例

Go to top of page