PassThrough passes points in a cloud based on constraints for one particular field of the point type. More...
#include <Passthrough.h>
Public Types | |
typedef boost::shared_ptr < const PassThrough< PointT > > | ConstPtr |
typedef boost::shared_ptr < PassThrough< PointT > > | Ptr |
Public Member Functions | |
std::string const | getFilterFieldName () |
Retrieve the name of the field to be used for filtering data. | |
void | getFilterLimits (float &limit_min, float &limit_max) |
Get the numerical limits for the field for filtering data. | |
void | getFilterLimitsNegative (bool &limit_negative) |
Get whether the data outside the interval (min/max) is to be returned (true) or inside (false). | |
bool | getFilterLimitsNegative () |
Get whether the data outside the interval (min/max) is to be returned (true) or inside (false). | |
PassThrough (bool extract_removed_indices=false) | |
Constructor. | |
void | setFilterFieldName (const std::string &field_name) |
Provide the name of the field to be used for filtering data. | |
void | setFilterLimits (const float &limit_min, const float &limit_max) |
Set the numerical limits for the field for filtering data. | |
void | setFilterLimitsNegative (const bool limit_negative) |
Set to true if we want to return the data outside the interval specified by setFilterLimits (min, max) Default: false. | |
void | setLabels (const std::vector< uint32_t > &labels) |
Protected Types | |
typedef pcl::traits::fieldList < PointT >::type | FieldList |
typedef pcl::FilterIndices < PointT >::PointCloud | PointCloud |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef PointCloud::Ptr | PointCloudPtr |
Protected Member Functions | |
void | applyFilter (PointCloud &output) |
Filtered results are stored in a separate point cloud. | |
void | applyFilter (std::vector< int > &indices) |
Filtered results are indexed by an indices array. | |
void | applyFilterIndices (std::vector< int > &indices) |
Filtered results are indexed by an indices array. | |
Private Attributes | |
std::string | filter_field_name_ |
The name of the field that will be used for filtering. | |
float | filter_limit_max_ |
The maximum allowed field value (default = FLT_MIN). | |
float | filter_limit_min_ |
The minimum allowed field value (default = FLT_MIN). | |
std::vector< uint32_t > | labels_ |
PassThrough passes points in a cloud based on constraints for one particular field of the point type.
Iterates through the entire input once, automatically filtering non-finite points and the points outside the interval specified by setFilterLimits(), which applies only to the field specified by setFilterFieldName().
Usage example:
pcl::PassThrough<PointType> ptfilter (true); // Initializing with true will allow us to extract the removed indices ptfilter.setInputCloud (cloud_in); ptfilter.setFilterFieldName ("x"); ptfilter.setFilterLimits (0.0, 1000.0); ptfilter.filter (*indices_x); // The indices_x array indexes all points of cloud_in that have x between 0.0 and 1000.0 indices_rem = ptfilter.getRemovedIndices (); // The indices_rem array indexes all points of cloud_in that have x smaller than 0.0 or larger than 1000.0 // and also indexes all non-finite points of cloud_in ptfilter.setIndices (indices_x); ptfilter.setFilterFieldName ("z"); ptfilter.setFilterLimits (-10.0, 10.0); ptfilter.setNegative (true); ptfilter.filter (*indices_xz); // The indices_xz array indexes all points of cloud_in that have x between 0.0 and 1000.0 and z larger than 10.0 or smaller than -10.0 ptfilter.setIndices (indices_xz); ptfilter.setFilterFieldName ("intensity"); ptfilter.setFilterLimits (FLT_MIN, 0.5); ptfilter.setNegative (false); ptfilter.filter (*cloud_out); // The resulting cloud_out contains all points of cloud_in that are finite and have: // x between 0.0 and 1000.0, z larger than 10.0 or smaller than -10.0 and intensity smaller than 0.5.
Definition at line 124 of file Passthrough.h.
typedef boost::shared_ptr< const PassThrough<PointT> > shape_reconstruction::PassThrough< PointT >::ConstPtr |
Definition at line 135 of file Passthrough.h.
typedef pcl::traits::fieldList<PointT>::type shape_reconstruction::PassThrough< PointT >::FieldList [protected] |
Definition at line 130 of file Passthrough.h.
typedef pcl::FilterIndices<PointT>::PointCloud shape_reconstruction::PassThrough< PointT >::PointCloud [protected] |
Definition at line 127 of file Passthrough.h.
typedef PointCloud::ConstPtr shape_reconstruction::PassThrough< PointT >::PointCloudConstPtr [protected] |
Definition at line 129 of file Passthrough.h.
typedef PointCloud::Ptr shape_reconstruction::PassThrough< PointT >::PointCloudPtr [protected] |
Definition at line 128 of file Passthrough.h.
typedef boost::shared_ptr< PassThrough<PointT> > shape_reconstruction::PassThrough< PointT >::Ptr |
Definition at line 134 of file Passthrough.h.
shape_reconstruction::PassThrough< PointT >::PassThrough | ( | bool | extract_removed_indices = false | ) | [inline] |
Constructor.
[in] | extract_removed_indices | Set to true if you want to be able to extract the indices of points being removed (default = false). |
Definition at line 141 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::applyFilter | ( | PointCloud & | output | ) | [protected] |
Filtered results are stored in a separate point cloud.
[out] | output | The resultant point cloud. |
Definition at line 96 of file Passthrough.hpp.
void shape_reconstruction::PassThrough< PointT >::applyFilter | ( | std::vector< int > & | indices | ) | [inline, protected] |
Filtered results are indexed by an indices array.
[out] | indices | The resultant indices. |
Definition at line 250 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::applyFilterIndices | ( | std::vector< int > & | indices | ) | [protected] |
Filtered results are indexed by an indices array.
[out] | indices | The resultant indices. |
Definition at line 122 of file Passthrough.hpp.
std::string const shape_reconstruction::PassThrough< PointT >::getFilterFieldName | ( | ) | [inline] |
Retrieve the name of the field to be used for filtering data.
Definition at line 164 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::getFilterLimits | ( | float & | limit_min, |
float & | limit_max | ||
) | [inline] |
Get the numerical limits for the field for filtering data.
[out] | limit_min | The minimum allowed field value (default = FLT_MIN). |
[out] | limit_max | The maximum allowed field value (default = FLT_MAX). |
Definition at line 186 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::getFilterLimitsNegative | ( | bool & | limit_negative | ) | [inline] |
Get whether the data outside the interval (min/max) is to be returned (true) or inside (false).
[out] | limit_negative | true if data outside the interval [min; max] is to be returned, false otherwise |
Definition at line 208 of file Passthrough.h.
bool shape_reconstruction::PassThrough< PointT >::getFilterLimitsNegative | ( | ) | [inline] |
Get whether the data outside the interval (min/max) is to be returned (true) or inside (false).
Definition at line 218 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::setFilterFieldName | ( | const std::string & | field_name | ) | [inline] |
Provide the name of the field to be used for filtering data.
In conjunction with setFilterLimits(), points having values outside this interval for this field will be discarded.
[in] | field_name | The name of the field that will be used for filtering. |
Definition at line 155 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::setFilterLimits | ( | const float & | limit_min, |
const float & | limit_max | ||
) | [inline] |
Set the numerical limits for the field for filtering data.
In conjunction with setFilterFieldName(), points having values outside this interval for this field will be discarded.
[in] | limit_min | The minimum allowed field value (default = FLT_MIN). |
[in] | limit_max | The maximum allowed field value (default = FLT_MAX). |
Definition at line 175 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::setFilterLimitsNegative | ( | const bool | limit_negative | ) | [inline] |
Set to true if we want to return the data outside the interval specified by setFilterLimits (min, max) Default: false.
[in] | limit_negative | return data inside the interval (false) or outside (true) |
Definition at line 198 of file Passthrough.h.
void shape_reconstruction::PassThrough< PointT >::setLabels | ( | const std::vector< uint32_t > & | labels | ) | [inline] |
Definition at line 224 of file Passthrough.h.
std::string shape_reconstruction::PassThrough< PointT >::filter_field_name_ [private] |
The name of the field that will be used for filtering.
Definition at line 263 of file Passthrough.h.
float shape_reconstruction::PassThrough< PointT >::filter_limit_max_ [private] |
The maximum allowed field value (default = FLT_MIN).
Definition at line 269 of file Passthrough.h.
float shape_reconstruction::PassThrough< PointT >::filter_limit_min_ [private] |
The minimum allowed field value (default = FLT_MIN).
Definition at line 266 of file Passthrough.h.
std::vector<uint32_t> shape_reconstruction::PassThrough< PointT >::labels_ [private] |
Definition at line 271 of file Passthrough.h.