Main Content


Downsample, filter, transform, align, block, organize, and extract features from 3-D point cloud

Lidar sensors generate 3-D scans of their surrounding environments as collections of points in space called point clouds. Though point clouds are accurate and robust, which makes them useful for robotics and autonomous driving applications, raw point cloud data is large, contains high density noise, and has a scattered distribution. Lidar Toolbox™ includes preprocessing features that enable you to better to store and use point clouds.

  • Lidar Toolbox includes preliminary processing algorithms to downsample, filter, transform, align, block, organize, and extract features from point clouds. These algorithms improve the quality and accuracy of the data, and can accelerate and improve the results of advanced workflows.

  • When your point cloud data is too large to process at once, you can divide and process the point cloud as small blocks by using the blockedPointCloud function.

  • To create and process surface mesh data, use the surfaceMesh object. Lidar Toolbox includes functions that read, write, and visualize a surface mesh.

  • For advanced workflows that require organized point clouds, such as object detection, and segmentation, you can convert unorganized point clouds to the organized format by using the pcorganize function. For more information on the distinctions between organized and unorganized point clouds, see What are Organized and Unorganized Point Clouds?

  • Lidar Toolbox includes functions that generate surface meshes, digital elevation models (DEM) and 2-D scans from point cloud data.

You can also interactively visualize, analyze, and preprocess point cloud data using the Lidar Viewer app.


Lidar ViewerVisualize and analyze lidar data


expand all

pcdownsampleDownsample a 3-D point cloud
pcmedianMedian filtering 3-D point cloud data
pcdenoiseRemove noise from 3-D point cloud
removeInvalidPointsRemove invalid points from point cloud
pcalignAlign array of point clouds
pccatConcatenate 3-D point cloud array
pcnormalsEstimate normals for point cloud
pctransformTransform 3-D point cloud
blockedPointCloudPoint cloud made from discrete blocks
blockedPointCloudDatastoreDatastore for use with blocks from blockedPointCloud objects
surfaceMeshCreate surface mesh
pc2surfacemeshConstruct surface mesh from 3-D point cloud
readSurfaceMeshRead 3-D surface mesh data from STL or PLY file
writeSurfaceMeshWrite 3-D surface mesh into STL or PLY file
surfaceMeshShowDisplay surface mesh
pcorganizeConvert 3-D point cloud into organized point cloud
findNearestNeighborsFind nearest neighbors of a point in point cloud
findNeighborsInRadiusFind neighbors within a radius of a point in the point cloud
findPointsInROIFind points within a region of interest in the point cloud
extractEigenFeaturesExtract eigenvalue-based features from point cloud segments
extractFPFHFeaturesExtract fast point feature histogram (FPFH) descriptors from point cloud
detectISSFeaturesDetect ISS feature points in point cloud
detectLOAMFeaturesDetect LOAM feature points from 3-D lidar data
detectRectangularPlanePointsDetect rectangular plane of specified dimensions in point cloud
detectRoadAnglesDetect road angles in point cloud
pcregisterloamRegister two point clouds using LOAM algorithm
pcregisterfgrRegister two point clouds using FGR algorithm
pc2demCreate digital elevation model (DEM) of point cloud data
pc2scanConvert 3-D point cloud into 2-D lidar scan
pc2surfacemeshConstruct surface mesh from 3-D point cloud
lidarParametersLidar sensor parameters
lidarPointAttributesObject for storing lidar point attributes