Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef PCL_NORMAL_BASED_SIGNATURE_H_
00041 #define PCL_NORMAL_BASED_SIGNATURE_H_
00042
00043 #include <pcl/features/feature.h>
00044
00045 namespace pcl
00046 {
00060 template <typename PointT, typename PointNT, typename PointFeature>
00061 class NormalBasedSignatureEstimation : public FeatureFromNormals<PointT, PointNT, PointFeature>
00062 {
00063 public:
00064 using Feature<PointT, PointFeature>::input_;
00065 using Feature<PointT, PointFeature>::tree_;
00066 using Feature<PointT, PointFeature>::search_radius_;
00067 using PCLBase<PointT>::indices_;
00068 using FeatureFromNormals<PointT, PointNT, PointFeature>::normals_;
00069
00070 typedef pcl::PointCloud<PointFeature> FeatureCloud;
00071 typedef typename boost::shared_ptr<NormalBasedSignatureEstimation<PointT, PointNT, PointFeature> > Ptr;
00072 typedef typename boost::shared_ptr<const NormalBasedSignatureEstimation<PointT, PointNT, PointFeature> > ConstPtr;
00073
00074
00075
00078 NormalBasedSignatureEstimation ()
00079 : FeatureFromNormals<PointT, PointNT, PointFeature> (),
00080 scale_h_ (),
00081 N_ (36),
00082 M_ (8),
00083 N_prime_ (4),
00084 M_prime_ (3)
00085 {
00086 }
00087
00091 inline void
00092 setN (size_t n) { N_ = n; }
00093
00095 inline size_t
00096 getN () { return N_; }
00097
00101 inline void
00102 setM (size_t m) { M_ = m; }
00103
00105 inline size_t
00106 getM () { return M_; }
00107
00113 inline void
00114 setNPrime (size_t n_prime) { N_prime_ = n_prime; }
00115
00120 inline size_t
00121 getNPrime () { return N_prime_; }
00122
00128 inline void
00129 setMPrime (size_t m_prime) { M_prime_ = m_prime; }
00130
00135 inline size_t
00136 getMPrime () { return M_prime_; }
00137
00141 inline void
00142 setScale (float scale) { scale_h_ = scale; }
00143
00147 inline float
00148 getScale () { return scale_h_; }
00149
00150
00151 protected:
00152 void
00153 computeFeature (FeatureCloud &output);
00154
00155 private:
00156 float scale_h_;
00157 size_t N_, M_, N_prime_, M_prime_;
00158 };
00159 }
00160
00161 #ifdef PCL_NO_PRECOMPILE
00162 #include <pcl/features/impl/normal_based_signature.hpp>
00163 #endif
00164
00165 #endif