41 #ifndef PCL_FEATURES_OURCVFH_H_
42 #define PCL_FEATURES_OURCVFH_H_
44 #include <pcl/features/feature.h>
45 #include <pcl/search/pcl_search.h>
61 template<
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::VFHSignature308>
65 typedef boost::shared_ptr<OURCVFHEstimation<PointInT, PointNT, PointOutT> >
Ptr;
66 typedef boost::shared_ptr<const OURCVFHEstimation<PointInT, PointNT, PointOutT> >
ConstPtr;
80 vpx_ (0), vpy_ (0), vpz_ (0), leaf_size_ (0.005f), normalize_bins_ (false), curv_threshold_ (0.03f), cluster_tolerance_ (leaf_size_ * 3),
87 refine_clusters_ = 1.f;
88 min_axis_value_ = 0.925f;
100 inline Eigen::Matrix4f
101 createTransFromAxes (Eigen::Vector3f & evx, Eigen::Vector3f & evy, Eigen::Vector3f & evz, Eigen::Affine3f & transformPC,
102 Eigen::Matrix4f & center_mat)
104 Eigen::Matrix4f trans;
105 trans.setIdentity (4, 4);
106 trans (0, 0) = evx (0, 0);
107 trans (1, 0) = evx (1, 0);
108 trans (2, 0) = evx (2, 0);
109 trans (0, 1) = evy (0, 0);
110 trans (1, 1) = evy (1, 0);
111 trans (2, 1) = evy (2, 0);
112 trans (0, 2) = evz (0, 0);
113 trans (1, 2) = evz (1, 0);
114 trans (2, 2) = evz (2, 0);
116 Eigen::Matrix4f homMatrix = Eigen::Matrix4f ();
117 homMatrix.setIdentity (4, 4);
118 homMatrix = transformPC.matrix ();
120 Eigen::Matrix4f trans_copy = trans.inverse ();
121 trans = trans_copy * center_mat * homMatrix;
142 sgurf (Eigen::Vector3f & centroid, Eigen::Vector3f & normal_centroid,
PointInTPtr & processed, std::vector<Eigen::Matrix4f, Eigen::aligned_allocator<Eigen::Matrix4f> > & transformations,
154 std::vector<int> &indices_in,
float threshold);
175 radius_normals_ = radius_normals;
195 getCentroidClusters (std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > & centroids)
218 cluster_tolerance_ = d;
227 eps_angle_threshold_ = d;
254 normalize_bins_ = normalize;
281 refine_clusters_ = rc;
288 getTransforms (std::vector<Eigen::Matrix4f, Eigen::aligned_allocator<Eigen::Matrix4f> > & trans)
300 valid = valid_transforms_;
331 float vpx_, vpy_, vpz_;
339 bool normalize_bins_;
342 float curv_threshold_;
345 float cluster_tolerance_;
348 float eps_angle_threshold_;
356 float radius_normals_;
359 float refine_clusters_;
361 std::vector<Eigen::Matrix4f, Eigen::aligned_allocator<Eigen::Matrix4f> > transforms_;
362 std::vector<bool> valid_transforms_;
365 float min_axis_value_;
393 std::vector<pcl::PointIndices> &clusters,
double eps_angle,
unsigned int min_pts_per_cluster = 1,
394 unsigned int max_pts_per_cluster = (std::numeric_limits<int>::max) ());
408 #ifdef PCL_NO_PRECOMPILE
409 #include <pcl/features/impl/our_cvfh.hpp>
412 #endif //#ifndef PCL_FEATURES_VFH_H_