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> >;
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_);
133 margin_thresh_ = margin_thresh;
143 return (margin_thresh_);
154 min_neighbors_for_normal_axis_ = min_neighbors_for_normal_axis;
164 return (min_neighbors_for_normal_axis_);
175 min_neighbors_for_tangent_axis_ = min_neighbors_for_tangent_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>
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.