supereight
Functions
se::preprocessor Namespace Reference

Functions

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. More...
 
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. More...
 
void bilateral_filter (se::Image< float > &out, const se::Image< float > &in, const std::vector< float > &gaussian, const float e_d, const int radius)
 
template<typename SensorT >
void depth_to_point_cloud (se::Image< Eigen::Vector3f > &point_cloud_C, const se::Image< float > &depth_image, const SensorT &sensor)
 
void point_cloud_to_depth (se::Image< float > &depth_image, const se::Image< Eigen::Vector3f > &point_cloud_X, const Eigen::Matrix4f &T_CX)
 
template<bool NegY>
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 (the y focal length will be negative). More...
 
void half_sample_robust_image (se::Image< float > &out, const se::Image< float > &in, const float e_d, const int r)
 

Function Documentation

◆ downsample_depth()

void se::preprocessor::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.

The ration between the resolutions must be a power of 2. Median downsampling is used to prevent creating new depth values which create artifacts behind object edges. Depth values of 0 are considered invalid and are ignored when computing the median.

◆ downsample_rgba()

void se::preprocessor::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.

Parameters
[in]input_RGBAPointer to the RGBA image data, 4 channels, 8 bits per channel.
[in]input_resSize of the RGBA image in pixels (width and height).
[out]output_RGBObject to store the output image to. The output image dimensions must be an integer multiple of the input image dimensions. The data for each pixel is stored in ARGB order, with the alpha channel in the MSB of the uint32_t and the red channel in the LSB of the uint32_t.

◆ bilateral_filter()

void se::preprocessor::bilateral_filter ( se::Image< float > &  out,
const se::Image< float > &  in,
const std::vector< float > &  gaussian,
const float  e_d,
const int  radius 
)

◆ depth_to_point_cloud()

template<typename SensorT >
void se::preprocessor::depth_to_point_cloud ( se::Image< Eigen::Vector3f > &  point_cloud_C,
const se::Image< float > &  depth_image,
const SensorT &  sensor 
)

◆ point_cloud_to_depth()

void se::preprocessor::point_cloud_to_depth ( se::Image< float > &  depth_image,
const se::Image< Eigen::Vector3f > &  point_cloud_X,
const Eigen::Matrix4f &  T_CX 
)

◆ point_cloud_to_normal()

template<bool NegY>
void se::preprocessor::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 (the y focal length will be negative).

◆ half_sample_robust_image()

void se::preprocessor::half_sample_robust_image ( se::Image< float > &  out,
const se::Image< float > &  in,
const float  e_d,
const int  r 
)