The pcl_filters library contains outlier and noise removal mechanisms for 3D point cloud data filtering applications.
An example of noise removal is presented in the figure below. Due to measurement errors, certain datasets present a large number of shadow points. This complicates the estimation of local point cloud 3D features. Some of these outliers can be filtered by performing a statistical analysis on each point's neighborhood, and trimming those which do not meet a certain criteria. The sparse outlier removal implementation in PCL is based on the computation of the distribution of point to neighbors distances in the input dataset. For each point, the mean distance from it to all its neighbors is computed. By assuming that the resulted distribution is Gaussian with a mean and a standard deviation, all points whose mean distances are outside an interval defined by the global distances mean and standard deviation can be considered as outliers and trimmed from the dataset.
Classes | |
class | pcl::ConditionalRemoval< PointT > |
ConditionalRemoval filters data that satisfies certain conditions. More... | |
class | pcl::ExtractIndices< PointT > |
ExtractIndices extracts a set of indices from a PointCloud as a separate PointCloud. More... | |
class | pcl::ExtractIndices< sensor_msgs::PointCloud2 > |
ExtractIndices extracts a set of indices from a PointCloud as a separate PointCloud. More... | |
class | pcl::Filter< PointT > |
Filter represents the base filter class. More... | |
class | pcl::Filter< sensor_msgs::PointCloud2 > |
Filter represents the base filter class. More... | |
class | pcl::PassThrough< PointT > |
PassThrough uses the base Filter class methods to pass through all data that satisfies the user given constraints. More... | |
class | pcl::PassThrough< sensor_msgs::PointCloud2 > |
PassThrough uses the base Filter class methods to pass through all data that satisfies the user given constraints. More... | |
class | pcl::ProjectInliers< PointT > |
ProjectInliers uses a model and a set of inlier indices from a PointCloud to project them into a separate PointCloud. More... | |
class | pcl::ProjectInliers< sensor_msgs::PointCloud2 > |
ProjectInliers uses a model and a set of inlier indices from a PointCloud to project them into a separate PointCloud. More... | |
class | pcl::RadiusOutlierRemoval< PointT > |
RadiusOutlierRemoval is a simple filter that removes outliers if the number of neighbors in a certain search radius is smaller than a given K. More... | |
class | pcl::RadiusOutlierRemoval< sensor_msgs::PointCloud2 > |
RadiusOutlierRemoval is a simple filter that removes outliers if the number of neighbors in a certain search radius is smaller than a given K. More... | |
class | pcl::StatisticalOutlierRemoval< PointT > |
StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data. More... | |
class | pcl::StatisticalOutlierRemoval< sensor_msgs::PointCloud2 > |
StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data. More... | |
class | pcl::VoxelGrid< PointT > |
VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More... | |
class | pcl::VoxelGrid< sensor_msgs::PointCloud2 > |
VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data. More... | |
Functions | |
template<typename PointT > | |
void | pcl::removeNaNFromPointCloud (const pcl::PointCloud< PointT > &cloud_in, pcl::PointCloud< PointT > &cloud_out, std::vector< int > &index) |
Removes points with x, y, or z equal to NaN. |
void pcl::removeNaNFromPointCloud | ( | const pcl::PointCloud< PointT > & | cloud_in, | |
pcl::PointCloud< PointT > & | cloud_out, | |||
std::vector< int > & | index | |||
) |
Removes points with x, y, or z equal to NaN.
cloud_in | the input point cloud | |
cloud_out | the input point cloud | |
index | the mapping (ordered): cloud_out.points[i] = cloud_in.points[index[i]] |
Definition at line 45 of file filter.hpp.