43 #include <pcl/point_types.h>
44 #include <pcl/features/feature.h>
67 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT,
typename Po
intRFT = pcl::ReferenceFrame>
72 typedef boost::shared_ptr<SHOTEstimationBase<PointInT, PointNT, PointOutT, PointRFT> >
Ptr;
73 typedef boost::shared_ptr<const SHOTEstimationBase<PointInT, PointNT, PointOutT, PointRFT> >
ConstPtr;
117 const std::vector<int> &indices,
118 const std::vector<float> &sqr_dists,
119 Eigen::VectorXf &shot) = 0;
146 const std::vector<float> &sqr_dists,
148 std::vector<double> &binDistance,
150 Eigen::VectorXf &shot);
168 std::vector<double> &bin_distance_shape);
220 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::SHOT352,
typename Po
intRFT = pcl::ReferenceFrame>
224 typedef boost::shared_ptr<SHOTEstimation<PointInT, PointNT, PointOutT, PointRFT> >
Ptr;
225 typedef boost::shared_ptr<const SHOTEstimation<PointInT, PointNT, PointOutT, PointRFT> >
ConstPtr;
266 const std::vector<int> &indices,
267 const std::vector<float> &sqr_dists,
268 Eigen::VectorXf &shot);
298 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::SHOT1344,
typename Po
intRFT = pcl::ReferenceFrame>
302 typedef boost::shared_ptr<SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >
Ptr;
303 typedef boost::shared_ptr<const SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >
ConstPtr;
332 bool describe_color =
true)
352 const std::vector<int> &indices,
353 const std::vector<float> &sqr_dists,
354 Eigen::VectorXf &shot);
376 const std::vector<float> &sqr_dists,
378 std::vector<double> &binDistanceShape,
379 std::vector<double> &binDistanceColor,
380 const int nr_bins_shape,
381 const int nr_bins_color,
382 Eigen::VectorXf &shot);
403 RGB2CIELAB (
unsigned char R,
unsigned char G,
unsigned char B,
float &L,
float &A,
float &B2);
410 #ifdef PCL_NO_PRECOMPILE
411 #include <pcl/features/impl/shot.hpp>
414 #endif //#ifndef PCL_SHOT_H_
SHOTColorEstimation(bool describe_shape=true, bool describe_color=true)
Empty constructor.
void interpolateSingleChannel(const std::vector< int > &indices, const std::vector< float > &sqr_dists, const int index, std::vector< double > &binDistance, const int nr_bins, Eigen::VectorXf &shot)
Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously...
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
virtual ~SHOTEstimation()
Empty destructor.
virtual void setLRFRadius(float radius)
Set the radius used for local reference frame estimation if the frames are not set by the user...
static void RGB2CIELAB(unsigned char R, unsigned char G, unsigned char B, float &L, float &A, float &B2)
Converts RGB triplets to CIELab space.
const int nr_grid_sector_
Number of azimuthal sectors.
double radius3_4_
3/4 of the search radius.
int nr_color_bins_
The number of bins in each color histogram.
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
std::string feature_name_
The feature name.
double radius1_4_
1/4 of the search radius.
boost::shared_ptr< const SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT > > ConstPtr
SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...
void interpolateDoubleChannel(const std::vector< int > &indices, const std::vector< float > &sqr_dists, const int index, std::vector< double > &binDistanceShape, std::vector< double > &binDistanceColor, const int nr_bins_shape, const int nr_bins_color, Eigen::VectorXf &shot)
Quadrilinear interpolation; used when color and shape descriptions are both activated.
virtual void computePointSHOT(const int index, const std::vector< int > &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot)
Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with no...
virtual void computePointSHOT(const int index, const std::vector< int > &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot)
Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with no...
virtual void computePointSHOT(const int index, const std::vector< int > &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot)=0
Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with no...
double sqradius_
The squared search radius.
FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which ne...
SHOTEstimationBase(int nr_shape_bins=10)
Empty constructor.
bool b_describe_shape_
Compute shape descriptor.
virtual ~SHOTEstimationBase()
Empty destructor.
bool b_describe_color_
Compute color descriptor.
void createBinDistanceShape(int index, const std::vector< int > &indices, std::vector< double > &bin_distance_shape)
Create a binned distance shape histogram.
boost::shared_ptr< const SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT > > ConstPtr
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
static float sRGB_LUT[256]
boost::shared_ptr< const SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > > ConstPtr
SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...
const int maxAngularSectors_
...
virtual ~SHOTColorEstimation()
Empty destructor.
SHOTColorEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a giv...
void computeFeature(pcl::PointCloud< PointOutT > &output)
Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by ...
void normalizeHistogram(Eigen::VectorXf &shot, int desc_length)
Normalize the SHOT histogram.
static float sXYZ_LUT[4000]
boost::shared_ptr< SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > > Ptr
Feature represents the base feature class.
virtual float getLRFRadius() const
Get the radius used for local reference frame estimation.
boost::shared_ptr< SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT > > Ptr
Eigen::VectorXf shot_
Placeholder for a point's SHOT.
double radius1_2_
1/2 of the search radius.
void computeFeature(pcl::PointCloud< PointOutT > &output)
Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by ...
int descLength_
One SHOT length.
int nr_shape_bins_
The number of bins in each shape histogram.
virtual bool initCompute()
This method should get called before starting the actual computation.
float lrf_radius_
The radius used for the LRF computation.
SHOTEstimation()
Empty constructor.
boost::shared_ptr< SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT > > Ptr