55 histogramsPC.points.resize (histograms2D.size ());
56 histogramsPC.width = histograms2D.size ();
57 histogramsPC.height = 1;
58 histogramsPC.is_dense =
true;
60 const int rows = histograms2D.at(0).rows();
61 const int cols = histograms2D.at(0).cols();
64 BOOST_FOREACH (Eigen::MatrixXf h, histograms2D)
66 Eigen::Map<Eigen::MatrixXf> histogram (&(it->histogram[0]), rows, cols);
83 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT> Eigen::MatrixXf
85 const std::vector<int> &indices,
double max_dist,
86 int nr_subdiv,
double plane_radius, PointOutT &radii,
bool compute_histogram =
false);
99 template <
typename Po
intNT,
typename Po
intOutT> Eigen::MatrixXf
101 const std::vector<int> &indices,
const std::vector<float> &sqr_dists,
double max_dist,
102 int nr_subdiv,
double plane_radius, PointOutT &radii,
bool compute_histogram =
false);
126 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
141 typedef typename boost::shared_ptr<RSDEstimation<PointInT, PointNT, PointOutT> >
Ptr;
142 typedef typename boost::shared_ptr<const RSDEstimation<PointInT, PointNT, PointOutT> >
ConstPtr;
146 RSDEstimation () : nr_subdiv_ (5), plane_radius_ (0.2), save_histograms_ (false)
148 feature_name_ =
"RadiusSurfaceDescriptor";
177 PCL_ERROR (
"[pcl::%s::setKSearch] RSD does not work with k nearest neighbor search. Use setRadiusSearch() instead!\n", getClassName ().c_str ());
192 inline boost::shared_ptr<std::vector<Eigen::MatrixXf, Eigen::aligned_allocator<Eigen::MatrixXf> > >
206 boost::shared_ptr<std::vector<Eigen::MatrixXf, Eigen::aligned_allocator<Eigen::MatrixXf> > > histograms_;
213 double plane_radius_;
216 bool save_histograms_;
224 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
228 #endif //#ifndef PCL_RSD_H_