42 #include <pcl/point_types.h>
43 #include <pcl/features/feature.h>
44 #include <pcl/features/normal_3d.h>
64 template<
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = ReferenceFrame,
typename SignedDistanceT =
float>
88 typedef boost::shared_ptr<FLARELocalReferenceFrameEstimation<PointInT, PointNT, PointOutT> >
Ptr;
89 typedef boost::shared_ptr<const FLARELocalReferenceFrameEstimation<PointInT, PointNT, PointOutT> >
ConstPtr;
94 tangent_radius_ (0.0f),
95 margin_thresh_ (0.85f),
96 min_neighbors_for_normal_axis_ (6),
97 min_neighbors_for_tangent_axis_ (6),
100 fake_sampled_surface_ (false)
114 tangent_radius_ = radius;
124 return (tangent_radius_);
134 margin_thresh_ = margin_thresh;
144 return (margin_thresh_);
155 min_neighbors_for_normal_axis_ = min_neighbors_for_normal_axis;
165 return (min_neighbors_for_normal_axis_);
176 min_neighbors_for_tangent_axis_ = min_neighbors_for_tangent_axis;
186 return (min_neighbors_for_tangent_axis_);
200 sampled_surface_ = cloud;
201 fake_sampled_surface_ =
false;
205 inline const PointCloudInConstPtr&
208 return (sampled_surface_);
221 return (sampled_tree_);
225 inline const std::vector<SignedDistanceT> &
228 return (signed_distances_from_highest_points_);
257 float tangent_radius_;
260 float margin_thresh_;
263 int min_neighbors_for_normal_axis_;
266 int min_neighbors_for_tangent_axis_;
271 PointCloudInConstPtr sampled_surface_;
280 std::vector<SignedDistanceT> signed_distances_from_highest_points_;
283 bool fake_sampled_surface_;
289 #ifdef PCL_NO_PRECOMPILE
290 #include <pcl/features/impl/flare.hpp>
293 #endif //#ifndef PCL_FLARE_H_
FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local refe...
boost::shared_ptr< PointCloud< PointT > > Ptr
boost::shared_ptr< const FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT > > ConstPtr
std::string feature_name_
The feature name.
This file defines compatibility wrappers for low level I/O functions.
virtual bool initCompute()
This method should get called before starting the actual computation.
float getTangentRadius() const
Get the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a...
PointCloudSignedDistance::Ptr PointCloudSignedDistancePtr
void setMinNeighboursForTangentAxis(int min_neighbors_for_tangent_axis)
Set min number of neighbours required for the computation of X axis.
virtual bool deinitCompute()
This method should get called after the actual computation is ended.
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 setSearchMethodForSampledSurface(const KdTreePtr &tree)
Provide a pointer to the search object linked to sampled_surface.
PointCloudIn::ConstPtr PointCloudInConstPtr
int getMinNeighboursForNormalAxis() const
Get min number of neighbours required for the computation of Z axis.
pcl::search::Search< PointInT >::Ptr KdTreePtr
const KdTreePtr & getSearchMethodForSampledSurface() const
Get a pointer to the search method used for the extimation of x axis.
virtual void computeFeature(PointCloudOut &output)
Abstract feature estimation method.
void setSearchSampledSurface(const PointCloudInConstPtr &cloud)
Provide a pointer to the dataset used for the estimation of X axis.
void setTangentRadius(float radius)
Set the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a...
void setMarginThresh(float margin_thresh)
Set the percentage of the search tangent radius after which a point is considered part of the support...
const PointCloudInConstPtr & getSearchSampledSurface() const
Get a pointer to the sampled_surface_ cloud dataset.
FLARELocalReferenceFrameEstimation()
Constructor.
void setMinNeighboursForNormalAxis(int min_neighbors_for_normal_axis)
Set min number of neighbours required for the computation of Z axis.
boost::shared_ptr< FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT > > Ptr
float getMarginThresh() const
Get the percentage of the search tangent radius after which a point is considered part of the support...
pcl::PointCloud< SignedDistanceT > PointCloudSignedDistance
Feature represents the base feature class.
int getMinNeighboursForTangentAxis() const
Get min number of neighbours required for the computation of X axis.
const std::vector< SignedDistanceT > & getSignedDistancesFromHighestPoints() const
Get the signed distances of the highest points from the fitted planes.