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>
87 using Ptr = shared_ptr<FLARELocalReferenceFrameEstimation<PointInT, PointNT, PointOutT> >;
88 using ConstPtr = shared_ptr<const FLARELocalReferenceFrameEstimation<PointInT, PointNT, PointOutT> >;
109 tangent_radius_ = radius;
119 return (tangent_radius_);
129 margin_thresh_ = margin_thresh;
139 return (margin_thresh_);
150 min_neighbors_for_normal_axis_ = min_neighbors_for_normal_axis;
160 return (min_neighbors_for_normal_axis_);
171 min_neighbors_for_tangent_axis_ = min_neighbors_for_tangent_axis;
181 return (min_neighbors_for_tangent_axis_);
195 sampled_surface_ = cloud;
196 fake_sampled_surface_ =
false;
200 inline const PointCloudInConstPtr&
203 return (sampled_surface_);
216 return (sampled_tree_);
220 inline const std::vector<SignedDistanceT> &
223 return (signed_distances_from_highest_points_);
252 float tangent_radius_{0.0f};
255 float margin_thresh_{0.85f};
258 int min_neighbors_for_normal_axis_{6};
261 int min_neighbors_for_tangent_axis_{6};
266 PointCloudInConstPtr sampled_surface_;
272 NormalEstimation<PointInT, PointNT> normal_estimation_;
275 std::vector<SignedDistanceT> signed_distances_from_highest_points_;
278 bool fake_sampled_surface_{
false};
284 #ifdef PCL_NO_PRECOMPILE
285 #include <pcl/features/impl/flare.hpp>
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...
const std::vector< SignedDistanceT > & getSignedDistancesFromHighestPoints() const
Get the signed distances of the highest points from the fitted planes.
const PointCloudInConstPtr & getSearchSampledSurface() const
Get a pointer to the sampled_surface_ cloud dataset.
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.
shared_ptr< const FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT > > ConstPtr
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...
float getTangentRadius() const
Get the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a...
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 KdTreePtr & getSearchMethodForSampledSurface() const
Get a pointer to the search method used for the estimation of x axis.
void setSearchSampledSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to the dataset used for the estimation of X axis.
typename PointCloudSignedDistance::Ptr PointCloudSignedDistancePtr
shared_ptr< FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT > > Ptr
Feature represents the base feature class.
std::string feature_name_
The feature name.
typename KdTree::Ptr KdTreePtr
typename PointCloudIn::ConstPtr PointCloudInConstPtr
shared_ptr< PointCloud< PointT > > Ptr
Defines all the PCL implemented PointT point type structures.