43#include <pcl/features/feature.h>
86 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
148 throw PCLException (
"Cosine of support angle should be between 0 and 1",
149 "spin_image.h",
"setSupportAngle");
179 input_normals_ = normals;
190 rotation_axis_ =
axis;
191 use_custom_axis_ =
true;
192 use_custom_axes_cloud_ =
false;
204 rotation_axes_cloud_ =
axes;
206 use_custom_axes_cloud_ =
true;
207 use_custom_axis_ =
false;
214 use_custom_axis_ =
false;
215 use_custom_axes_cloud_ =
false;
271 bool use_custom_axis_;
272 bool use_custom_axes_cloud_;
276 unsigned int image_width_;
277 double support_angle_cos_;
278 unsigned int min_pts_neighb_;
282#ifdef PCL_NO_PRECOMPILE
283#include <pcl/features/impl/spin_image.hpp>
Iterator class for point clouds with or without given indices.
Feature represents the base feature class.
const std::string & getClassName() const
Get a string representation of the name of this class.
double search_radius_
The nearest neighbors search radius for each point.
int k_
The number of K nearest neighbors to use for each point.
std::string feature_name_
The feature name.
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation.
bool fake_surface_
If no surface is given, we use the input PointCloud as the surface.
PointCloudConstPtr input_
The input point cloud dataset.
IndicesPtr indices_
A pointer to the vector of point indices to use.
A base class for all pcl exceptions which inherits from std::runtime_error.
shared_ptr< PointCloud< PointNT > > Ptr
shared_ptr< const PointCloud< PointNT > > ConstPtr
Estimates spin-image descriptors in the given input points.
void setRotationAxis(const PointNT &axis)
Sets single vector a rotation axis for all input points.
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
Eigen::ArrayXXd computeSiForPoint(int index) const
Computes a spin-image for the point of the scan.
~SpinImageEstimation()
Empty destructor.
typename PointCloudIn::Ptr PointCloudInPtr
void useNormalsAsRotationAxis()
Sets input normals as rotation axes (default setting).
void setRadialStructure(bool is_radial=true)
Sets/unsets flag for radial spin-image structure.
void setAngularDomain(bool is_angular=true)
Sets/unsets flag for angular spin-image domain.
typename PointCloudN::Ptr PointCloudNPtr
void setImageWidth(unsigned int bin_count)
Sets spin-image resolution.
void setMinPointCountInNeighbourhood(unsigned int min_pts_neighb)
Sets minimal points count for spin image computation.
typename PointCloudIn::ConstPtr PointCloudInConstPtr
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input dataset that contains the point normals of the input XYZ dataset given...
typename PointCloudN::ConstPtr PointCloudNConstPtr
SpinImageEstimation(unsigned int image_width=8, double support_angle_cos=0.0, unsigned int min_pts_neighb=0)
Constructs empty spin image estimator.
bool initCompute() override
initializes computations specific to spin-image.
void setSupportAngle(double support_angle_cos)
Sets the maximum angle for the point normal to get to support region.
void computeFeature(PointCloudOut &output) override
Estimate the Spin Image descriptors at a set of points given by setInputWithNormals() using the surfa...
void setInputRotationAxes(const PointCloudNConstPtr &axes)
Sets array of vectors as rotation axes for input points.
Defines all the PCL implemented PointT point type structures.