gtsam_points
Loading...
Searching...
No Matches
intensity_gradients.hpp
1// SPDX-License-Identifier: MIT
2// Copyright (c) 2021 Kenji Koide (k.koide@aist.go.jp)
3
4#pragma once
5
6#include <memory>
7#include <vector>
8#include <Eigen/Core>
9
10#include <gtsam_points/types/point_cloud.hpp>
11#include <gtsam_points/types/point_cloud_cpu.hpp>
12#include <gtsam_points/types/frame_traits.hpp>
13
14namespace gtsam_points {
15
21public:
22 using Ptr = std::shared_ptr<IntensityGradients>;
23 using ConstPtr = std::shared_ptr<const IntensityGradients>;
24
32 static IntensityGradients::Ptr estimate(const PointCloud::ConstPtr& frame, int k_neighbors = 10, int num_threads = 1);
33
42 static IntensityGradients::Ptr
43 estimate(const gtsam_points::PointCloudCPU::Ptr& frame, int k_geom_neighbors = 10, int k_photo_neighbors = 20, int num_threads = 1);
44
45 static IntensityGradients::Ptr estimate(const PointCloud::ConstPtr& frame, const std::vector<int>& neighbors, int k_photo_neighbors);
46
47public:
48 std::vector<Eigen::Vector4d> intensity_gradients;
49};
50
51namespace frame {
52
53template <>
55 static const Eigen::Vector4d& intensity_gradient(const IntensityGradients& grads, size_t i) { return grads.intensity_gradients[i]; }
56};
57
58} // namespace frame
59
60} // namespace gtsam_points
Intensity gradients for colored ICP Park et al., "Colored Point Cloud Registration Revisited",...
Definition intensity_gradients.hpp:20
static IntensityGradients::Ptr estimate(const gtsam_points::PointCloudCPU::Ptr &frame, int k_geom_neighbors=10, int k_photo_neighbors=20, int num_threads=1)
Estimate normals, covs, and intensity gradients.
static IntensityGradients::Ptr estimate(const PointCloud::ConstPtr &frame, int k_neighbors=10, int num_threads=1)
Estimate intensity gradients of points.
Definition frame_traits.hpp:17