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 estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a giv...
boost::shared_ptr< const SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > > ConstPtr
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...
SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...
std::string feature_name_
The feature name.
boost::shared_ptr< const SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT > > ConstPtr
Feature represents the base feature class.
virtual bool initCompute()
This method should get called before starting the actual computation.
virtual float getLRFRadius() const
Get the radius used for local reference frame estimation.
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.
bool b_describe_color_
Compute color descriptor.
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...
double radius3_4_
3/4 of the search radius.
double radius1_4_
1/4 of the search radius.
boost::shared_ptr< SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT > > Ptr
void computeFeature(pcl::PointCloud< PointOutT > &output)
Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by ...
static float sRGB_LUT[256]
static float sXYZ_LUT[4000]
virtual ~SHOTColorEstimation()
Empty destructor.
void computeFeature(pcl::PointCloud< PointOutT > &output)
Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by ...
boost::shared_ptr< const SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT > > ConstPtr
double radius1_2_
1/2 of the search radius.
SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...
void createBinDistanceShape(int index, const std::vector< int > &indices, std::vector< double > &bin_distance_shape)
Create a binned distance shape histogram.
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
const int maxAngularSectors_
...
int nr_color_bins_
The number of bins in each color histogram.
int nr_shape_bins_
The number of bins in each shape histogram.
const int nr_grid_sector_
Number of azimuthal sectors.
SHOTColorEstimation(bool describe_shape=true, bool describe_color=true)
Empty constructor.
boost::shared_ptr< SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > > Ptr
void normalizeHistogram(Eigen::VectorXf &shot, int desc_length)
Normalize the SHOT histogram.
boost::shared_ptr< SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT > > Ptr
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
static void RGB2CIELAB(unsigned char R, unsigned char G, unsigned char B, float &L, float &A, float &B2)
Converts RGB triplets to CIELab space.
double sqradius_
The squared search radius.
float lrf_radius_
The radius used for the LRF computation.
virtual void setLRFRadius(float radius)
Set the radius used for local reference frame estimation if the frames are not set by the user...
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
bool b_describe_shape_
Compute shape descriptor.
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...
FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which ne...
Eigen::VectorXf shot_
Placeholder for a point's SHOT.
virtual ~SHOTEstimation()
Empty destructor.
SHOTEstimationBase(int nr_shape_bins=10)
Empty constructor.
virtual ~SHOTEstimationBase()
Empty destructor.
SHOTEstimation()
Empty constructor.
int descLength_
One SHOT length.
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...