46 #include <pcl/features/feature.h>
71 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::ShapeContext1980>
75 using Ptr = shared_ptr<ShapeContext3DEstimation<PointInT, PointNT, PointOutT> >;
76 using ConstPtr = shared_ptr<const ShapeContext3DEstimation<PointInT, PointNT, PointOutT> >;
109 std::random_device rd;
235 #ifdef PCL_NO_PRECOMPILE
236 #include <pcl/features/impl/3dsc.hpp>
Feature represents the base feature class.
double search_radius_
The nearest neighbors search radius for each point.
std::string feature_name_
The feature name.
ShapeContext3DEstimation implements the 3D shape context descriptor as described in:
std::uniform_real_distribution< float > rng_dist_
Random number generator distribution.
void setMinimalRadius(double radius)
The minimal radius value for the search sphere (rmin) in the original paper.
bool computePoint(std::size_t index, const pcl::PointCloud< PointNT > &normals, float rf[9], std::vector< float > &desc)
Estimate a descriptor for a given point.
std::size_t azimuth_bins_
Bins along the azimuth dimension.
std::size_t getAzimuthBins()
bool initCompute() override
Initialize computation by allocating all the intervals and the volume lookup table.
shared_ptr< const ShapeContext3DEstimation< PointInT, PointNT, PointOutT > > ConstPtr
std::size_t radius_bins_
Bins along the radius dimension.
typename Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
std::vector< float > radii_interval_
Values of the radii interval.
std::size_t getElevationBins()
float rnd()
Boost-based random number generator.
std::mt19937 rng_
Random number generator algorithm.
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
double getPointDensityRadius()
double min_radius_
Minimal radius value.
void computeFeature(PointCloudOut &output) override
Estimate the actual feature.
double point_density_radius_
Point density radius.
std::vector< float > volume_lut_
Volumes look up table.
std::size_t descriptor_length_
Descriptor length.
std::vector< float > theta_divisions_
Theta divisions interval.
~ShapeContext3DEstimation() override=default
ShapeContext3DEstimation(bool random=false)
Constructor.
std::vector< float > phi_divisions_
Phi divisions interval.
double getMinimalRadius()
std::size_t getRadiusBins()
std::size_t elevation_bins_
Bins along the elevation dimension.
shared_ptr< ShapeContext3DEstimation< PointInT, PointNT, PointOutT > > Ptr
void setPointDensityRadius(double radius)
This radius is used to compute local point density density = number of points within this radius.
Defines all the PCL implemented PointT point type structures.