Point Cloud Library (PCL)  1.7.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT > Class Template Reference

UniqueShapeContext implements the Unique Shape Context Descriptor described here: More...

#include <pcl/features/usc.h>

+ Inheritance diagram for pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >:

List of all members.

Public Types

typedef Feature< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut
typedef Feature< PointInT,
PointOutT >::PointCloudIn 
PointCloudIn
typedef boost::shared_ptr
< UniqueShapeContext< PointInT,
PointOutT, PointRFT > > 
Ptr
typedef boost::shared_ptr
< const UniqueShapeContext
< PointInT, PointOutT,
PointRFT > > 
ConstPtr

Public Member Functions

 UniqueShapeContext ()
 Constructor.
virtual ~UniqueShapeContext ()
size_t getAzimuthBins () const
size_t getElevationBins () const
size_t getRadiusBins () const
void setMinimalRadius (double radius)
 The minimal radius value for the search sphere (rmin) in the original paper.
double getMinimalRadius () const
void setPointDensityRadius (double radius)
 This radius is used to compute local point density density = number of points within this radius.
double getPointDensityRadius () const
void setLocalRadius (double radius)
 Set the local RF radius value.
double getLocalRadius () const

Protected Member Functions

void computePointDescriptor (size_t index, std::vector< float > &desc)
 Compute 3D shape context feature descriptor.
virtual bool initCompute ()
 Initialize computation by allocating all the intervals and the volume lookup table.
virtual void computeFeature (PointCloudOut &output)
 The actual feature computation.

Protected Attributes

std::vector< float > radii_interval_
 values of the radii interval.
std::vector< float > theta_divisions_
 Theta divisions interval.
std::vector< float > phi_divisions_
 Phi divisions interval.
std::vector< float > volume_lut_
 Volumes look up table.
size_t azimuth_bins_
 Bins along the azimuth dimension.
size_t elevation_bins_
 Bins along the elevation dimension.
size_t radius_bins_
 Bins along the radius dimension.
double min_radius_
 Minimal radius value.
double point_density_radius_
 Point density radius.
size_t descriptor_length_
 Descriptor length.
double local_radius_
 Radius to compute local RF.

Detailed Description

template<typename PointInT, typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
class pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >

UniqueShapeContext implements the Unique Shape Context Descriptor described here:

The suggested PointOutT is pcl::ShapeContext1980

Author:
Alessandro Franchi, Federico Tombari, Samuele Salti (original code)
Nizar Sallem (port to PCL)

Definition at line 64 of file usc.h.


Member Typedef Documentation

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
typedef boost::shared_ptr<const UniqueShapeContext<PointInT, PointOutT, PointRFT> > pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::ConstPtr

Reimplemented from pcl::Feature< PointInT, PointOutT >.

Definition at line 82 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
typedef Feature<PointInT, PointOutT>::PointCloudIn pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::PointCloudIn

Reimplemented from pcl::Feature< PointInT, PointOutT >.

Definition at line 80 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
typedef Feature<PointInT, PointOutT>::PointCloudOut pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::PointCloudOut

Reimplemented from pcl::Feature< PointInT, PointOutT >.

Definition at line 79 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
typedef boost::shared_ptr<UniqueShapeContext<PointInT, PointOutT, PointRFT> > pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::Ptr

Reimplemented from pcl::Feature< PointInT, PointOutT >.

Definition at line 81 of file usc.h.


Constructor & Destructor Documentation

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::UniqueShapeContext ( ) [inline]
template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
virtual pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::~UniqueShapeContext ( ) [inline, virtual]

Definition at line 95 of file usc.h.


Member Function Documentation

template<typename PointInT , typename PointOutT , typename PointRFT >
void pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::computeFeature ( PointCloudOut output) [protected, virtual]

The actual feature computation.

Parameters:
[out]outputthe resultant features

Implements pcl::Feature< PointInT, PointOutT >.

Definition at line 247 of file usc.hpp.

References pcl::PointCloud< PointT >::is_dense, pcl::isFinite(), and pcl::PointCloud< PointT >::points.

template<typename PointInT , typename PointOutT , typename PointRFT >
void pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::computePointDescriptor ( size_t  index,
std::vector< float > &  desc 
) [protected]

Compute 3D shape context feature descriptor.

Parameters:
[in]indexpoint index in input_
[out]descdescriptor to compute

Compute the angle between the neighbour and the z axis (normal) in the interval [0, 180]

Bin (j, k, l)

Compute the Bin(j, k, l) coordinates of current neighbour

Local point density = number of points in a sphere of radius "point_density_radius_" around the current neighbour

point_density is always bigger than 0 because FindPointsWithinRadius returns at least the point itself

Accumulate w into correspondant Bin(j,k,l)

Definition at line 144 of file usc.hpp.

References pcl::utils::equal(), pcl::geometry::project(), and pcl::rad2deg().

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getAzimuthBins ( ) const [inline]
Returns:
The number of bins along the azimuth.

Definition at line 102 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::azimuth_bins_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getElevationBins ( ) const [inline]
Returns:
The number of bins along the elevation

Definition at line 109 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::elevation_bins_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
double pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getLocalRadius ( ) const [inline]
Returns:
The local RF radius.

Definition at line 147 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::local_radius_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
double pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getMinimalRadius ( ) const [inline]
Returns:
The minimal sphere radius.

Definition at line 126 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::min_radius_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
double pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getPointDensityRadius ( ) const [inline]
Returns:
The point density search radius.

Definition at line 137 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::point_density_radius_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getRadiusBins ( ) const [inline]
Returns:
The number of bins along the radii direction.

Definition at line 116 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::radius_bins_.

template<typename PointInT , typename PointOutT , typename PointRFT >
bool pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::initCompute ( ) [protected, virtual]
template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
void pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::setLocalRadius ( double  radius) [inline]

Set the local RF radius value.

Parameters:
[in]radiusthe desired local RF radius

Definition at line 143 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::local_radius_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
void pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::setMinimalRadius ( double  radius) [inline]

The minimal radius value for the search sphere (rmin) in the original paper.

Parameters:
[in]radiusthe desired minimal radius

Definition at line 122 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::min_radius_.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
void pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::setPointDensityRadius ( double  radius) [inline]

This radius is used to compute local point density density = number of points within this radius.

Parameters:
[in]radiusValue of the point density search radius

Definition at line 133 of file usc.h.

References pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::point_density_radius_.


Member Data Documentation

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::azimuth_bins_ [protected]

Bins along the azimuth dimension.

Definition at line 180 of file usc.h.

Referenced by pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getAzimuthBins().

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::descriptor_length_ [protected]

Descriptor length.

Definition at line 195 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::elevation_bins_ [protected]

Bins along the elevation dimension.

Definition at line 183 of file usc.h.

Referenced by pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getElevationBins().

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
double pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::local_radius_ [protected]
template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
double pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::min_radius_ [protected]
template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
std::vector<float> pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::phi_divisions_ [protected]

Phi divisions interval.

Definition at line 174 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
double pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::point_density_radius_ [protected]
template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
std::vector<float> pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::radii_interval_ [protected]

values of the radii interval.

Definition at line 168 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
size_t pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::radius_bins_ [protected]

Bins along the radius dimension.

Definition at line 186 of file usc.h.

Referenced by pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::getRadiusBins().

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
std::vector<float> pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::theta_divisions_ [protected]

Theta divisions interval.

Definition at line 171 of file usc.h.

template<typename PointInT , typename PointOutT = pcl::ShapeContext1980, typename PointRFT = pcl::ReferenceFrame>
std::vector<float> pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >::volume_lut_ [protected]

Volumes look up table.

Definition at line 177 of file usc.h.


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