42#include <pcl/features/feature.h>
43#include <pcl/features/normal_3d.h>
63 template<
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = ReferenceFrame,
typename SignedDistanceT =
float>
93 tangent_radius_ (0.0f),
94 margin_thresh_ (0.85f),
95 min_neighbors_for_normal_axis_ (6),
96 min_neighbors_for_tangent_axis_ (6),
99 fake_sampled_surface_ (
false)
113 tangent_radius_ = radius;
123 return (tangent_radius_);
143 return (margin_thresh_);
164 return (min_neighbors_for_normal_axis_);
185 return (min_neighbors_for_tangent_axis_);
199 sampled_surface_ = cloud;
200 fake_sampled_surface_ =
false;
204 inline const PointCloudInConstPtr&
207 return (sampled_surface_);
220 return (sampled_tree_);
224 inline const std::vector<SignedDistanceT> &
227 return (signed_distances_from_highest_points_);
256 float tangent_radius_;
259 float margin_thresh_;
262 int min_neighbors_for_normal_axis_;
265 int min_neighbors_for_tangent_axis_;
270 PointCloudInConstPtr sampled_surface_;
279 std::vector<SignedDistanceT> signed_distances_from_highest_points_;
282 bool fake_sampled_surface_;
288#ifdef PCL_NO_PRECOMPILE
289#include <pcl/features/impl/flare.hpp>
Iterator class for point clouds with or without given indices.
FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local refe...
FLARELocalReferenceFrameEstimation()
Constructor.
int getMinNeighboursForNormalAxis() const
Get min number of neighbours required for the computation of Z axis.
void setMarginThresh(float margin_thresh)
Set the percentage of the search tangent radius after which a point is considered part of the support...
bool deinitCompute() override
This method should get called after the actual computation is ended.
void setSearchMethodForSampledSurface(const KdTreePtr &tree)
Provide a pointer to the search object linked to sampled_surface.
void computeFeature(PointCloudOut &output) override
Abstract feature estimation method.
float getMarginThresh() const
Get the percentage of the search tangent radius after which a point is considered part of the support...
void setTangentRadius(float radius)
Set the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a...
const std::vector< SignedDistanceT > & getSignedDistancesFromHighestPoints() const
Get the signed distances of the highest points from the fitted planes.
float getTangentRadius() const
Get the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a...
const KdTreePtr & getSearchMethodForSampledSurface() const
Get a pointer to the search method used for the extimation of x axis.
int getMinNeighboursForTangentAxis() const
Get min number of neighbours required for the computation of X axis.
bool initCompute() override
This method should get called before starting the actual computation.
SignedDistanceT computePointLRF(const int index, Eigen::Matrix3f &lrf)
Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with nor...
void setMinNeighboursForNormalAxis(int min_neighbors_for_normal_axis)
Set min number of neighbours required for the computation of Z axis.
void setMinNeighboursForTangentAxis(int min_neighbors_for_tangent_axis)
Set min number of neighbours required for the computation of X axis.
const PointCloudInConstPtr & getSearchSampledSurface() const
Get a pointer to the sampled_surface_ cloud dataset.
void setSearchSampledSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to the dataset used for the estimation of X axis.
typename PointCloudSignedDistance::Ptr PointCloudSignedDistancePtr
PointCloudNConstPtr normals_
A pointer to the input dataset that contains the point normals of the XYZ dataset.
Feature represents the base feature class.
double search_parameter_
The actual search parameter (from either search_radius_ or k_).
const std::string & getClassName() const
Get a string representation of the name of this class.
std::string feature_name_
The feature name.
KdTreePtr tree_
A pointer to the spatial search object.
typename KdTree::Ptr KdTreePtr
PointCloudInConstPtr surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation.
typename PointCloudIn::ConstPtr PointCloudInConstPtr
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.
Defines all the PCL implemented PointT point type structures.