supereight
preprocessor.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2014 University of Edinburgh, Imperial College, University of Manchester
3  * SPDX-FileCopyrightText: 2016-2019 Emanuele Vespa
4  * SPDX-FileCopyrightText: 2019-2021 Smart Robotics Lab, Imperial College London, Technical University of Munich
5  * SPDX-FileCopyrightText: 2019-2021 Nils Funk
6  * SPDX-FileCopyrightText: 2019-2021 Sotiris Papatheodorou
7  * SPDX-License-Identifier: MIT
8  */
9 
10 #ifndef SE_PREPROCESSOR_HPP
11 #define SE_PREPROCESSOR_HPP
12 
13 #include "se/image/image.hpp"
14 
15 namespace se {
16 namespace preprocessor {
17 
24 void downsample_depth(se::Image<float>& input_depth_img, se::Image<float>& output_depth_img);
25 
37 void downsample_rgba(se::Image<uint32_t>& input_RGBA_img, se::Image<uint32_t>& output_RGBA_img);
38 
40  const se::Image<float>& in,
41  const std::vector<float>& gaussian,
42  const float e_d,
43  const int radius);
44 
45 
46 template<typename SensorT>
48  const se::Image<float>& depth_image,
49  const SensorT& sensor);
50 
51 void point_cloud_to_depth(se::Image<float>& depth_image,
52  const se::Image<Eigen::Vector3f>& point_cloud_X,
53  const Eigen::Matrix4f& T_CX);
54 
59 template<bool NegY>
61 
63  const se::Image<float>& in,
64  const float e_d,
65  const int r);
66 
67 } // namespace preprocessor
68 } // namespace se
69 
70 #include "impl/preprocessor_impl.hpp"
71 
72 #endif // SE_PREPROCESSOR_HPP
void half_sample_robust_image(se::Image< float > &out, const se::Image< float > &in, const float e_d, const int r)
void downsample_depth(se::Image< float > &input_depth_img, se::Image< float > &output_depth_img)
Downsample the input depth to match the resolution of the output depth.
void downsample_rgba(se::Image< uint32_t > &input_RGBA_img, se::Image< uint32_t > &output_RGBA_img)
Downsample an RGBA image and copy into an se::Image class.
void point_cloud_to_normal(se::Image< Eigen::Vector3f > &out, const se::Image< Eigen::Vector3f > &in)
NegY should only be true when reading an ICL-NUIM dataset which has a left-handed coordinate system (...
static bool in(const Scalar v, const Scalar a, const Scalar b)
void point_cloud_to_depth(se::Image< float > &depth_image, const se::Image< Eigen::Vector3f > &point_cloud_X, const Eigen::Matrix4f &T_CX)
void depth_to_point_cloud(se::Image< Eigen::Vector3f > &point_cloud_C, const se::Image< float > &depth_image, const SensorT &sensor)
void bilateral_filter(se::Image< float > &out, const se::Image< float > &in, const std::vector< float > &gaussian, const float e_d, const int radius)
Helper wrapper to allocate and de-allocate octants in the octree.
Definition: colour_utils.hpp:17