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