projective_icp.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <kfusion/types.hpp>
4 
5 namespace kfusion
6 {
7  namespace cuda
8  {
10  {
11  public:
12  enum { MAX_PYRAMID_LEVELS = 4 };
13 
14  typedef std::vector<Depth> DepthPyr;
15  typedef std::vector<Cloud> PointsPyr;
16  typedef std::vector<Normals> NormalsPyr;
17 
18  ProjectiveICP();
19  virtual ~ProjectiveICP();
20 
21  float getDistThreshold() const;
22  void setDistThreshold(float distance);
23 
24  float getAngleThreshold() const;
25  void setAngleThreshold(float angle);
26 
27  void setIterationsNum(const std::vector<int>& iters);
28  int getUsedLevelsNum() const;
29 
30  virtual bool estimateTransform(Affine3f& affine, const Intr& intr, const Frame& curr, const Frame& prev);
31 
34  virtual bool estimateTransform(Affine3f& affine, const Intr& intr, const DepthPyr& dcurr, const NormalsPyr ncurr, const DepthPyr dprev, const NormalsPyr nprev);
35  virtual bool estimateTransform(Affine3f& affine, const Intr& intr, const PointsPyr& vcurr, const NormalsPyr ncurr, const PointsPyr vprev, const NormalsPyr nprev);
36 
37  //static Vec3f rodrigues2(const Mat3f& matrix);
38  private:
39  std::vector<int> iters_;
40  float angle_thres_;
41  float dist_thres_;
43 
44  struct StreamHelper;
45  cv::Ptr<StreamHelper> shelp_;
46  };
47  }
48 }
std::vector< Cloud > PointsPyr
cv::Affine3f Affine3f
Definition: types.hpp:18
void setAngleThreshold(float angle)
std::vector< Depth > DepthPyr
cv::Ptr< StreamHelper > shelp_
std::vector< Normals > NormalsPyr
DeviceArray2D< float > buffer_
virtual bool estimateTransform(Affine3f &affine, const Intr &intr, const Frame &curr, const Frame &prev)
void setDistThreshold(float distance)
void setIterationsNum(const std::vector< int > &iters)
Utility.
Definition: capture.hpp:8


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Mon Feb 28 2022 22:46:08