42 #include <pcl/gpu/containers/device_array.h>
43 #include <pcl/gpu/kinfu/pixel_rgb.h>
44 #include <pcl/gpu/kinfu/tsdf_volume.h>
45 #include <pcl/gpu/kinfu/color_volume.h>
46 #include <pcl/gpu/kinfu/raycaster.h>
48 #include <pcl/point_cloud.h>
53 #define KINFU_DEFAULT_RGB_FOCAL_X 525.f
54 #define KINFU_DEFAULT_RGB_FOCAL_Y 525.f
57 #define KINFU_DEFAULT_DEPTH_FOCAL_X 585.f
58 #define KINFU_DEFAULT_DEPTH_FOCAL_Y 585.f
92 setDepthIntrinsics (
float fx,
float fy,
float cx = -1,
float cy = -1);
101 getDepthIntrinsics (
float& fx,
float& fy,
float& cx,
float& cy)
const;
108 setInitalCameraPose (
const Eigen::Affine3f& pose);
115 setDepthTruncationForICP (
float max_icp_distance = 0.f);
122 setIcpCorespFilteringParams (
float distThreshold,
float sineOfAngle);
129 setCameraMovementThreshold(
float threshold = 0.001f);
135 initColorIntegration(
int max_weight = -1);
150 bool operator() (
const DepthMap& depth, Eigen::Affine3f* hint=
nullptr);
157 bool operator() (
const DepthMap& depth,
const View& colors);
164 getCameraPose (
int time = -1)
const;
168 getNumberOfPoses ()
const;
186 getImage (
View& view)
const;
214 using Matrix3frm = Eigen::Matrix<float, 3, 3, Eigen::RowMajor>;
215 using Vector3f = Eigen::Vector3f;
225 float max_icp_distance_;
228 float fx_, fy_, cx_, cy_;
235 Matrix3frm init_Rcam_;
241 int icp_iterations_[LEVELS];
248 std::vector<DepthMap> depths_curr_;
250 std::vector<MapArr> vmaps_g_curr_;
252 std::vector<MapArr> nmaps_g_curr_;
255 std::vector<MapArr> vmaps_g_prev_;
257 std::vector<MapArr> nmaps_g_prev_;
260 std::vector<MapArr> vmaps_curr_;
262 std::vector<MapArr> nmaps_curr_;
265 std::vector<CorespMap> coresps_;
276 std::vector<Matrix3frm> rmats_;
279 std::vector<Vector3f> tvecs_;
282 float integration_metric_threshold_;
292 allocateBufffers (
int rows_arg,
int cols_arg);