38 #ifndef PCL_TRACKING_PYRAMIDAL_KLT_H
39 #define PCL_TRACKING_PYRAMIDAL_KLT_H
41 #include <pcl/point_types.h>
42 #include <pcl/tracking/tracker.h>
43 #include <pcl/common/intensity.h>
44 #include <pcl/common/transformation_from_correspondences.h>
62 template<
typename Po
intInT,
typename IntensityT = pcl::common::IntensityFieldAccessor<Po
intInT> >
79 PyramidalKLTTracker (
int nb_levels = 5,
int tracking_window_width = 7,
int tracking_window_height = 7)
93 kernel_ << 1.f/16 ,1.f/4 ,3.f/8 ,1.f/4 ,1.f/16;
288 const Eigen::Array2i& location,
289 const Eigen::Array4f& weights,
290 Eigen::ArrayXXf& win,
291 Eigen::ArrayXXf& grad_x_win,
292 Eigen::ArrayXXf& grad_y_win,
293 Eigen::Array3f & covariance)
const;
296 const Eigen::ArrayXXf& prev_grad_x,
297 const Eigen::ArrayXXf& prev_grad_y,
299 const Eigen::Array2i& location,
300 const Eigen::Array4f& weights,
301 Eigen::Array2f &b)
const;
310 std::vector<FloatImageConstPtr>& pyramid,
316 const std::vector<FloatImageConstPtr>& previous_pyramid,
317 const std::vector<FloatImageConstPtr>& current_pyramid,
320 std::vector<int>& status,
321 Eigen::Affine3f& motion)
const;
371 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
376 #include <pcl/tracking/impl/pyramidal_klt.hpp>