43 #include <pcl/features/feature.h>
68 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT,
typename Po
intRFT = pcl::ReferenceFrame>
73 using Ptr = shared_ptr<SHOTEstimationBase<PointInT, PointNT, PointOutT, PointRFT> >;
74 using ConstPtr = shared_ptr<const SHOTEstimationBase<PointInT, PointNT, PointOutT, PointRFT> >;
113 const std::vector<float> &sqr_dists,
114 Eigen::VectorXf &shot) = 0;
141 const std::vector<float> &sqr_dists,
143 std::vector<double> &binDistance,
145 Eigen::VectorXf &shot);
162 std::vector<double> &bin_distance_shape);
211 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::SHOT352,
typename Po
intRFT = pcl::ReferenceFrame>
215 using Ptr = shared_ptr<SHOTEstimation<PointInT, PointNT, PointOutT, PointRFT> >;
216 using ConstPtr = shared_ptr<const SHOTEstimation<PointInT, PointNT, PointOutT, PointRFT> >;
257 const std::vector<float> &sqr_dists,
258 Eigen::VectorXf &shot)
override;
288 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::SHOT1344,
typename Po
intRFT = pcl::ReferenceFrame>
292 using Ptr = shared_ptr<SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >;
293 using ConstPtr = shared_ptr<const SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >;
321 bool describe_color =
true)
341 const std::vector<float> &sqr_dists,
342 Eigen::VectorXf &shot)
override;
364 const std::vector<float> &sqr_dists,
366 std::vector<double> &binDistanceShape,
367 std::vector<double> &binDistanceColor,
368 const int nr_bins_shape,
369 const int nr_bins_color,
370 Eigen::VectorXf &shot);
391 RGB2CIELAB (
unsigned char R,
unsigned char G,
unsigned char B,
float &L,
float &A,
float &B2);
398 #ifdef PCL_NO_PRECOMPILE
399 #include <pcl/features/impl/shot.hpp>
Feature represents the base feature class.
shared_ptr< Feature< PointInT, PointOutT > > Ptr
std::string feature_name_
The feature name.
shared_ptr< const Feature< PointInT, PointOutT > > ConstPtr
FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which ne...
SHOTColorEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a giv...
static std::array< float, 4000 > sXYZ_LUT
bool b_describe_color_
Compute color descriptor.
void interpolateDoubleChannel(const pcl::Indices &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.
SHOTColorEstimation(bool describe_shape=true, bool describe_color=true)
Empty constructor.
void computeFeature(pcl::PointCloud< PointOutT > &output) override
Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by ...
bool b_describe_shape_
Compute shape descriptor.
int nr_color_bins_
The number of bins in each color histogram.
static std::array< float, 256 > sRGB_LUT
static void RGB2CIELAB(unsigned char R, unsigned char G, unsigned char B, float &L, float &A, float &B2)
Converts RGB triplets to CIELab space.
~SHOTColorEstimation() override=default
Empty destructor.
void computePointSHOT(const int index, const pcl::Indices &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot) override
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...
double radius1_2_
1/2 of the search radius.
virtual float getLRFRadius() const
Get the radius used for local reference frame estimation.
const int maxAngularSectors_
...
bool initCompute() override
This method should get called before starting the actual computation.
const int nr_grid_sector_
Number of azimuthal sectors.
void normalizeHistogram(Eigen::VectorXf &shot, int desc_length)
Normalize the SHOT histogram.
double radius3_4_
3/4 of the search radius.
~SHOTEstimationBase() override=default
Empty destructor.
int descLength_
One SHOT length.
void interpolateSingleChannel(const pcl::Indices &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.
virtual void computePointSHOT(const int index, const pcl::Indices &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.
float lrf_radius_
The radius used for the LRF computation.
void createBinDistanceShape(int index, const pcl::Indices &indices, std::vector< double > &bin_distance_shape)
Create a binned distance shape histogram.
virtual void setLRFRadius(float radius)
Set the radius used for local reference frame estimation if the frames are not set by the user.
int nr_shape_bins_
The number of bins in each shape histogram.
SHOTEstimationBase(int nr_shape_bins=10)
Empty constructor.
double radius1_4_
1/4 of the search radius.
SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given po...
~SHOTEstimation() override=default
Empty destructor.
SHOTEstimation()
Empty constructor.
void computeFeature(pcl::PointCloud< PointOutT > &output) override
Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by ...
void computePointSHOT(const int index, const pcl::Indices &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot) override
Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with no...
Defines all the PCL implemented PointT point type structures.
IndicesAllocator<> Indices
Type used for indices in PCL.