pcl::FrustumCulling< PointT > Class Template Reference
Module filters

FrustumCulling filters points inside a frustum given by pose and field of view of the camera. More...

`#include <pcl/filters/frustum_culling.h>`

Inheritance diagram for pcl::FrustumCulling< PointT >:

## Public Types

using | Ptr = shared_ptr< FrustumCulling< PointT > >
using | ConstPtr = shared_ptr< const FrustumCulling< PointT > >
Public Types inherited from pcl::FilterIndices< PointT >
using | PointCloud = pcl::PointCloud< PointT >
using | Ptr = shared_ptr< FilterIndices< PointT > >
using | ConstPtr = shared_ptr< const FilterIndices< PointT > >
Public Types inherited from pcl::Filter< PointT >
using | Ptr = shared_ptr< Filter< PointT > >
using | ConstPtr = shared_ptr< const Filter< PointT > >
using | PointCloud = pcl::PointCloud< PointT >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
Public Types inherited from pcl::PCLBase< PointT >
using | PointCloud = pcl::PointCloud< PointT >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr

## Public Member Functions

| FrustumCulling (bool extract_removed_indices=false)
void | setCameraPose (const Eigen::Matrix4f &camera_pose)
| Set the pose of the camera w.r.t the origin. More...
Eigen::Matrix4f | getCameraPose () const
| Get the pose of the camera w.r.t the origin. More...
void | setHorizontalFOV (float hfov)
| Set the horizontal field of view for the camera in degrees. More...
float | getHorizontalFOV () const
| Get the horizontal field of view for the camera in degrees. More...
void | setVerticalFOV (float vfov)
| Set the vertical field of view for the camera in degrees. More...
float | getVerticalFOV () const
| Get the vertical field of view for the camera in degrees. More...
void | setNearPlaneDistance (float np_dist)
| Set the near plane distance. More...
float | getNearPlaneDistance () const
| Get the near plane distance. More...
void | setFarPlaneDistance (float fp_dist)
| Set the far plane distance. More...
float | getFarPlaneDistance () const
| Get the far plane distance. More...
Public Member Functions inherited from pcl::FilterIndices< PointT >
| FilterIndices (bool extract_removed_indices=false)
| Constructor. More...
| ~FilterIndices ()
| Empty virtual destructor. More...
void | filter (PointCloud &output)
void | filter (std::vector< int > &indices)
| Calls the filtering method and returns the filtered point cloud indices. More...
void | setNegative (bool negative)
| Set whether the regular conditions for points filtering should apply, or the inverted conditions. More...
bool | getNegative () const
| Get whether the regular conditions for points filtering should apply, or the inverted conditions. More...
void | setKeepOrganized (bool keep_organized)
| Set whether the filtered points should be kept and set to the value given through setUserFilterValue (default: NaN), or removed from the PointCloud, thus potentially breaking its organized structure. More...
bool | getKeepOrganized () const
| Get whether the filtered points should be kept and set to the value given through setUserFilterValue (default = NaN), or removed from the PointCloud, thus potentially breaking its organized structure. More...
void | setUserFilterValue (float value)
| Provide a value that the filtered points should be set to instead of removing them. More...
Public Member Functions inherited from pcl::Filter< PointT >
| Filter (bool extract_removed_indices=false)
| Empty constructor. More...
| ~Filter ()
| Empty destructor. More...
const IndicesConstPtr | getRemovedIndices () const
| Get the point indices being removed. More...
void | getRemovedIndices (PointIndices &pi)
| Get the point indices being removed. More...
void | filter (PointCloud &output)
| Calls the filtering method and returns the filtered dataset in output. More...
Public Member Functions inherited from pcl::PCLBase< PointT >
| PCLBase ()
| Empty constructor. More...
| PCLBase (const PCLBase &base)
| Copy constructor. More...
virtual | ~PCLBase ()
| Destructor. More...
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset. More...
const PointCloudConstPtr | getInputCloud () const
| Get a pointer to the input point cloud dataset. More...
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const IndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const PointIndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
| Set the indices for the points laying within an interest region of the point cloud. More...
const IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used. More...
const IndicesConstPtr | getIndices () const
| Get a pointer to the vector of indices used. More...
const PointT & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code. More...

## Protected Member Functions

void | applyFilter (PointCloud &output) override
| Sample of point indices into a separate PointCloud. More...
void | applyFilter (std::vector< int > &indices) override
| Sample of point indices. More...
Protected Member Functions inherited from pcl::Filter< PointT >
const std::string & | getClassName () const
| Get a string representation of the name of this class. More...
Protected Member Functions inherited from pcl::PCLBase< PointT >
bool | initCompute ()
| This method should get called before starting the actual computation. More...
bool | deinitCompute ()
| This method should get called after finishing the actual computation. More...

## Additional Inherited Members

Protected Attributes inherited from pcl::FilterIndices< PointT >
bool | negative_
| False = normal filter behavior (default), true = inverted behavior. More...
bool | keep_organized_
| False = remove points (default), true = redefine points, keep structure. More...
float | user_filter_value_
| The user given value that the filtered point dimensions should be set to (default = NaN). More...
Protected Attributes inherited from pcl::Filter< PointT >
IndicesPtr | removed_indices_
| Indices of the points that are removed. More...
std::string | filter_name_
| The filter name. More...
bool | extract_removed_indices_
| Set to true if we want to return the indices of the removed points. More...
Protected Attributes inherited from pcl::PCLBase< PointT >
PointCloudConstPtr | input_
| The input point cloud dataset. More...
IndicesPtr | indices_
| A pointer to the vector of point indices to use. More...
bool | use_indices_
| Set to true if point indices are used. More...
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...

## Detailed Description

### template<typename PointT>
class pcl::FrustumCulling< PointT >

FrustumCulling filters points inside a frustum given by pose and field of view of the camera.

Code example:

pcl::PointCloud <pcl::PointXYZ>::Ptr source;
// .. read or fill the source cloud
pcl::FrustumCulling<pcl::PointXYZ> fc;
fc.setInputCloud (source);
fc.setVerticalFOV (45);
fc.setHorizontalFOV (60);
fc.setNearPlaneDistance (5.0);
fc.setFarPlaneDistance (15);
Eigen::Matrix4f camera_pose;
// .. read or input the camera pose from a registration algorithm.
fc.setCameraPose (camera_pose);
pcl::PointCloud <pcl::PointXYZ> target;
fc.filter (target);

Author
  Aravindhan K Krishnan

Definition at line 77 of file frustum_culling.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointT>

using pcl::FrustumCulling< PointT >::ConstPtr = shared_ptr<const FrustumCulling<PointT> >

Definition at line 86 of file frustum_culling.h.

## Ptr

template<typename PointT>

using pcl::FrustumCulling< PointT >::Ptr = shared_ptr<FrustumCulling<PointT> >

Definition at line 85 of file frustum_culling.h.

## Constructor & Destructor Documentation

## FrustumCulling()

template<typename PointT>

pcl::FrustumCulling< PointT >::FrustumCulling | ( | bool | extract_removed_indices = `false` | ) |

inline

Definition at line 91 of file frustum_culling.h.

References pcl::Filter< PointT >::filter_name_.

## Member Function Documentation

## applyFilter() [1/2]

template<typename PointT >

void pcl::FrustumCulling< PointT >::applyFilter | ( | PointCloud & | output | ) |

override protected virtual

Sample of point indices into a separate PointCloud.

Parameters

  [out] | output | the resultant point cloud

Implements pcl::FilterIndices< PointT >.

Definition at line 47 of file frustum_culling.hpp.

References pcl::PointCloud< PointT >::at(), pcl::copyPointCloud(), and pcl::PointCloud< PointT >::is_dense.

## applyFilter() [2/2]

template<typename PointT >

void pcl::FrustumCulling< PointT >::applyFilter | ( | std::vector< int > & | indices | ) |

override protected virtual

Sample of point indices.

Parameters

  [out] | indices | the resultant point cloud indices

Implements pcl::FilterIndices< PointT >.

Definition at line 76 of file frustum_culling.hpp.

## getCameraPose()

template<typename PointT>

Eigen::Matrix4f pcl::FrustumCulling< PointT >::getCameraPose | ( |  | ) | const

inline

Get the pose of the camera w.r.t the origin.

Definition at line 128 of file frustum_culling.h.

## getFarPlaneDistance()

template<typename PointT>

float pcl::FrustumCulling< PointT >::getFarPlaneDistance | ( |  | ) | const

inline

Get the far plane distance.

Definition at line 192 of file frustum_culling.h.

## getHorizontalFOV()

template<typename PointT>

float pcl::FrustumCulling< PointT >::getHorizontalFOV | ( |  | ) | const

inline

Get the horizontal field of view for the camera in degrees.

Definition at line 144 of file frustum_culling.h.

## getNearPlaneDistance()

template<typename PointT>

float pcl::FrustumCulling< PointT >::getNearPlaneDistance | ( |  | ) | const

inline

Get the near plane distance.

Definition at line 176 of file frustum_culling.h.

## getVerticalFOV()

template<typename PointT>

float pcl::FrustumCulling< PointT >::getVerticalFOV | ( |  | ) | const

inline

Get the vertical field of view for the camera in degrees.

Definition at line 160 of file frustum_culling.h.

## setCameraPose()

template<typename PointT>

void pcl::FrustumCulling< PointT >::setCameraPose | ( | const Eigen::Matrix4f & | camera_pose | ) |

inline

Set the pose of the camera w.r.t the origin.

Parameters

  [in] | camera_pose | the camera pose

Note: This assumes a coordinate system where X is forward, Y is up, and Z is right. To convert from the traditional camera coordinate system (X right, Y down, Z forward), one can use:

Eigen::Matrix4f pose_orig = //pose in camera coordinates
Eigen::Matrix4f cam2robot;
cam2robot << 0, 0, 1, 0
0,-1, 0, 0
1, 0, 0, 0
0, 0, 0, 1;
Eigen::Matrix4f pose_new = pose_orig * cam2robot;
fc.setCameraPose (pose_new);

Definition at line 121 of file frustum_culling.h.

## setFarPlaneDistance()

template<typename PointT>

void pcl::FrustumCulling< PointT >::setFarPlaneDistance | ( | float | fp_dist | ) |

inline

Set the far plane distance.

Parameters

  [in] | fp_dist | the far plane distance

Definition at line 185 of file frustum_culling.h.

## setHorizontalFOV()

template<typename PointT>

void pcl::FrustumCulling< PointT >::setHorizontalFOV | ( | float | hfov | ) |

inline

Set the horizontal field of view for the camera in degrees.

Parameters

  [in] | hfov | the field of view

Definition at line 137 of file frustum_culling.h.

## setNearPlaneDistance()

template<typename PointT>

void pcl::FrustumCulling< PointT >::setNearPlaneDistance | ( | float | np_dist | ) |

inline

Set the near plane distance.

Parameters

  [in] | np_dist | the near plane distance

Definition at line 169 of file frustum_culling.h.

## setVerticalFOV()

template<typename PointT>

void pcl::FrustumCulling< PointT >::setVerticalFOV | ( | float | vfov | ) |

inline

Set the vertical field of view for the camera in degrees.

Parameters

  [in] | vfov | the field of view

Definition at line 153 of file frustum_culling.h.

The documentation for this class was generated from the following files:

- pcl/filters/frustum_culling.h
- pcl/filters/impl/frustum_culling.hpp

pcl::FrustumCulling
FrustumCulling filters points inside a frustum given by pose and field of view of the camera.
Definition: frustum_culling.h:77
pcl::FrustumCulling::setVerticalFOV
void setVerticalFOV(float vfov)
Set the vertical field of view for the camera in degrees.
Definition: frustum_culling.h:153
pcl::FrustumCulling::setHorizontalFOV
void setHorizontalFOV(float hfov)
Set the horizontal field of view for the camera in degrees.
Definition: frustum_culling.h:137
pcl::FrustumCulling::setCameraPose
void setCameraPose(const Eigen::Matrix4f &camera_pose)
Set the pose of the camera w.r.t the origin.
Definition: frustum_culling.h:121
pcl::PointCloud< pcl::PointXYZ >
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::FrustumCulling::setNearPlaneDistance
void setNearPlaneDistance(float np_dist)
Set the near plane distance.
Definition: frustum_culling.h:169
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:415
pcl::FilterIndices::filter
void filter(PointCloud &output)
Definition: filter_indices.h:102
pcl::FrustumCulling::setFarPlaneDistance
void setFarPlaneDistance(float fp_dist)
Set the far plane distance.
Definition: frustum_culling.h:185