Main Content

Point Cloud Processing

Preprocess, visualize, register, fit geometrical shapes, build maps, implement SLAM algorithms, and use deep learning with 3-D point clouds

A point cloud is a set of data points in 3-D space. The points together represent a 3-D shape or object. Each point in the data set is represented by anx,y, andzgeometric coordinate. Point clouds provide a means of assembling a large number of single spatial measurements into a dataset that can be represented as a describable object. Point cloud processing is used in robot navigation and perception, depth estimation, stereo vision, visual registration, and in advanced driver assistance systems (ADAS). Computer Vision Toolbox™ algorithms provide point cloud processing functionality for downsampling, denoising, and transforming point clouds. The toolbox also provides point cloud registration, geometrical shape fitting to 3-D point clouds, and the ability to read, write, store, display, and compare point clouds. You can also combine multiple point clouds to reconstruct a 3-D scene.

You can usepcregistericp,pcregisterndt,pcregistercorr, andpcregistercpdto register a moving point cloud to a fixed point cloud. These registration algorithms are based on the Iterative Closest Point (ICP) algorithm, the Normal-Distributions Transform (NDT) algorithm, the phase correlation algorithm, and the Coherent Point Drift (CPD) algorithm, respectively. You can build a map with the registered point clouds, detect loop closures, optimize the map to correct for drift, and perform localization in the prebuilt map. For more details, seeImplement Point Cloud SLAM in MATLAB.

Figure showing a point cloud of two concentric point clouds combined, a sensor angle computation, and a point cloud representing a teapot

Functions

expand all

pcread Read 3-D point cloud from PLY or PCD file
pcwrite Write 3-D point cloud to PLY or PCD file
pcfromkinect Point cloud fromKinectforWindows
velodyneFileReader Read point cloud data fromVelodynePCAP file
pcviewset Manage data for point cloud based visual odometry and SLAM
pointCloud Object for storing 3-D point cloud
pcshow Plot 3-D point cloud
pcshowpair Visualize difference between two point clouds
pcplayer Visualize streaming 3-D point cloud data
showShape Display shapes on image, video, or point cloud

Preprocess

pcbin Spatially bin point cloud points
pcdenoise Remove noise from 3-D point cloud
pcdownsample Downsample a 3-D point cloud
pcnormals Estimate normals for point cloud

Find and Remove Points

findPointsInROI Find points within a region of interest in the point cloud
findNearestNeighbors Find nearest neighbors of a point in point cloud
findNeighborsInRadius Find neighbors within a radius of a point in the point cloud
removeInvalidPoints Remove invalid points from point cloud
pcsegdist Segment point cloud into clusters based on Euclidean distance
segmentGroundFromLidarData Segment ground points from organized lidar data
segmentLidarData Segment organized 3-D range data into clusters
pcbin Spatially bin point cloud points

Register Point Clouds

pcregistercorr Register two point clouds using phase correlation
pcregistericp Register two point clouds using ICP algorithm
pcregistercpd Register two point clouds using CPD algorithm
pcregisterndt Register two point clouds using NDT algorithm

变换的点云

rigid3d 3-D rigid geometric transformation
pctransform Transform 3-D point cloud

Align or Combine Point Clouds

pcalign Align an array point clouds
pccat Concatenate 3-D point cloud array
pcmerge Merge two 3-D point clouds

Determine Loop Closure Candidates

findPose Localize a point cloud within a map using the normal distributions transform (NDT) algorithm
scanContextDistance Distance between scan context descriptors
scanContextDescriptor Extract scan context descriptor from point cloud
scanContextLoopDetector Detect loop closures using scan context descriptors

Optimize Poses

createPoseGraph Create pose graph
optimizePoses Optimize absolute poses using relative pose constraints

Create Localization Map

pcmapndt Localization map based on normal distributions transform (NDT)
pcfitcylinder Fit cylinder to 3-D point cloud
pcfitplane Fit plane to 3-D point cloud
pcfitsphere Fit sphere to 3-D point cloud
pcnormals Estimate normals for point cloud
fitPolynomialRANSAC Fit polynomial to points using RANSAC
ransac Fit model to noisy data
cylinderModel Parametric cylinder model
planeModel Object for storing a parametric plane model
sphereModel Object for storing a parametric sphere model

Topics