44 #include <pcl/point_types.h>
45 #include <pcl/features/feature.h>
46 #include <pcl/features/pfh_tools.h>
81 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::PFHSignature125>
85 typedef boost::shared_ptr<PFHEstimation<PointInT, PointNT, PointOutT> >
Ptr;
86 typedef boost::shared_ptr<const PFHEstimation<PointInT, PointNT, PointOutT> >
ConstPtr;
106 d_pi_ (1.0f / (2.0f * static_cast<float> (M_PI))),
110 max_cache_size_ ((1ul*1024ul*1024ul*1024ul) / sizeof (std::pair<std::pair<int, int>, Eigen::Vector4f>)),
172 int p_idx,
int q_idx,
float &f1,
float &f2,
float &f3,
float &f4);
184 const std::vector<int> &indices,
int nr_split, Eigen::VectorXf &pfh_histogram);
211 std::map<std::pair<int, int>, Eigen::Vector4f, std::less<std::pair<int, int> >, Eigen::aligned_allocator<Eigen::Vector4f> >
feature_map_;
224 #ifdef PCL_NO_PRECOMPILE
225 #include <pcl/features/impl/pfh.hpp>
228 #endif //#ifndef PCL_PFH_H_
Feature< PointInT, PointOutT >::PointCloudIn PointCloudIn
float d_pi_
Float constant = 1.0 / (2.0 * M_PI)
bool computePairFeatures(const pcl::PointCloud< PointInT > &cloud, const pcl::PointCloud< PointNT > &normals, int p_idx, int q_idx, float &f1, float &f2, float &f3, float &f4)
Compute the 4-tuple representation containing the three angles and one distance between two points re...
unsigned int max_cache_size_
Maximum size of internal cache memory.
int f_index_[3]
Placeholder for a histogram index.
boost::shared_ptr< const PFHEstimation< PointInT, PointNT, PointOutT > > ConstPtr
void computePointPFHSignature(const pcl::PointCloud< PointInT > &cloud, const pcl::PointCloud< PointNT > &normals, const std::vector< int > &indices, int nr_split, Eigen::VectorXf &pfh_histogram)
Estimate the PFH (Point Feature Histograms) individual signatures of the three angular (f1...
PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset ...
boost::shared_ptr< PFHEstimation< PointInT, PointNT, PointOutT > > Ptr
std::queue< std::pair< int, int > > key_list_
Queue of pairs saved, used to constrain memory usage.
std::string feature_name_
The feature name.
PFHEstimation()
Empty constructor.
Eigen::Vector4f pfh_tuple_
Placeholder for a PFH 4-tuple.
void setUseInternalCache(bool use_cache)
Set whether to use an internal cache mechanism for removing redundant calculations or not...
Eigen::VectorXf pfh_histogram_
Placeholder for a point's PFH signature.
void computeFeature(PointCloudOut &output)
Estimate the Point Feature Histograms (PFH) descriptors at a set of points given by
bool use_cache_
Set to true to use the internal cache for removing redundant computations.
Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
Feature represents the base feature class.
int nr_subdiv_
The number of subdivisions for each angular feature interval.
unsigned int getMaximumCacheSize()
Get the maximum internal cache size.
std::map< std::pair< int, int >, Eigen::Vector4f, std::less< std::pair< int, int > >, Eigen::aligned_allocator< Eigen::Vector4f > > feature_map_
Internal hashmap, used to optimize efficiency of redundant computations.
bool getUseInternalCache()
Get whether the internal cache is used or not for computing the PFH features.
void setMaximumCacheSize(unsigned int cache_size)
Set the maximum internal cache size.
PointCloud represents the base class in PCL for storing collections of 3D points. ...