Point Cloud Library (PCL) 1.12.0
Loading...
Searching...
No Matches
List of all members | Classes | Public Types | Public Member Functions
pcl::TSDFVolume< VoxelT, WeightT > Class Template Reference

#include </builddir/build/BUILD/pcl-1.12.0/gpu/kinfu/tools/tsdf_volume.h>

Classes

struct  Header
 Structure storing voxel grid resolution, volume size (in mm) and element_size of stored data. More...
 
struct  Intr
 Camera intrinsics structure. More...
 

Public Types

using Ptr = shared_ptr<TSDFVolume<VoxelT, WeightT> >
 
using ConstPtr = shared_ptr<const TSDFVolume<VoxelT, WeightT> >
 
using VoxelTVec = Eigen::VectorXf
 

Public Member Functions

 TSDFVolume ()
 Default constructor.
 
 TSDFVolume (const std::string &filename)
 Constructor loading data from file.
 
void setHeader (const Eigen::Vector3i &resolution, const Eigen::Vector3f &volume_size)
 Set the header directly.
 
void resize (Eigen::Vector3i &grid_resolution, const Eigen::Vector3f &volume_size=Eigen::Vector3f(DEFAULT_VOLUME_SIZE_X, DEFAULT_VOLUME_SIZE_Y, DEFAULT_VOLUME_SIZE_Z))
 Resizes the internal storage and updates the header accordingly.
 
void resizeDefaultSize ()
 Resize internal storage and header to default sizes defined in tsdf_volume.h.
 
bool load (const std::string &filename, bool binary=true)
 Loads volume from file.
 
bool save (const std::string &filename="tsdf_volume.dat", bool binary=true) const
 Saves volume to file.
 
std::size_t size () const
 Returns overall number of voxels in grid.
 
const Eigen::Vector3f & volumeSize () const
 Returns the volume size in mm.
 
Eigen::Vector3f voxelSize () const
 Returns the size of one voxel in mm.
 
const Eigen::Vector3i & gridResolution () const
 Returns the voxel grid resolution.
 
const Headerheader () const
 Returns constant reference to header.
 
const std::vector< VoxelT > & volume () const
 Returns constant reference to the volume std::vector.
 
std::vector< VoxelT > & volumeWriteable () const
 Returns writebale(!) reference to volume.
 
const std::vector< WeightT > & weights () const
 Returns constant reference to the weights std::vector.
 
std::vector< WeightT > & weightsWriteable () const
 Returns writebale(!) reference to volume.
 
void convertToTsdfCloud (pcl::PointCloud< pcl::PointXYZI >::Ptr &cloud, const unsigned step=2) const
 Converts volume to cloud of TSDF values.
 
template<typename PointT >
void getVoxelCoord (const PointT &point, Eigen::Vector3i &voxel_coord) const
 Converts the volume to a surface representation via a point cloud.
 
template<typename PointT >
void getVoxelCoordAndOffset (const PointT &point, Eigen::Vector3i &voxel_coord, Eigen::Vector3f &offset) const
 Returns the 3D voxel coordinate and point offset wrt.
 
bool extractNeighborhood (const Eigen::Vector3i &voxel_coord, int neighborhood_size, VoxelTVec &neighborhood) const
 extracts voxels in neighborhood of given voxel
 
bool addNeighborhood (const Eigen::Vector3i &voxel_coord, int neighborhood_size, const VoxelTVec &neighborhood, WeightT voxel_weight)
 adds voxel values in local neighborhood
 
void averageValues ()
 averages voxel values by the weight value
 
int getLinearVoxelIndex (const Eigen::Array3i &indices) const
 Returns and index for linear access of the volume and weights.
 
Eigen::VectorXi getLinearVoxelIndinces (const Eigen::Matrix< int, 3, Eigen::Dynamic > &indices_matrix) const
 Returns a vector of linear indices for voxel coordinates given in 3xn matrix.
 

Detailed Description

template<typename VoxelT, typename WeightT>
class pcl::TSDFVolume< VoxelT, WeightT >

Definition at line 58 of file tsdf_volume.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 63 of file tsdf_volume.h.

◆ Ptr

Definition at line 62 of file tsdf_volume.h.

◆ VoxelTVec

using pcl::TSDFVolume< VoxelT, WeightT >::VoxelTVec = Eigen::VectorXf

Definition at line 66 of file tsdf_volume.h.

Constructor & Destructor Documentation

◆ TSDFVolume() [1/2]

pcl::TSDFVolume< VoxelT, WeightT >::TSDFVolume ( )
inline

Default constructor.

Definition at line 135 of file tsdf_volume.h.

◆ TSDFVolume() [2/2]

pcl::TSDFVolume< VoxelT, WeightT >::TSDFVolume ( const std::string & filename)
inline

Constructor loading data from file.

Definition at line 141 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::load(), and pcl::TSDFVolume< VoxelT, WeightT >::size().

Member Function Documentation

◆ addNeighborhood()

bool pcl::TSDFVolume< VoxelT, WeightT >::addNeighborhood ( const Eigen::Vector3i & voxel_coord,
int neighborhood_size,
const VoxelTVec & neighborhood,
WeightT voxel_weight )

adds voxel values in local neighborhood

Definition at line 280 of file tsdf_volume.hpp.

References pcl::console::print_info().

◆ averageValues()

void pcl::TSDFVolume< VoxelT, WeightT >::averageValues ( )

averages voxel values by the weight value

Definition at line 331 of file tsdf_volume.hpp.

◆ convertToTsdfCloud()

void pcl::TSDFVolume< VoxelT, WeightT >::convertToTsdfCloud ( pcl::PointCloud< pcl::PointXYZI >::Ptr & cloud,
const unsigned step = 2 ) const

Converts volume to cloud of TSDF values.

Parameters
[out]cloud- the output point cloud
[in]step- the decimation step to use

Definition at line 158 of file tsdf_volume.hpp.

References pcl::_PointXYZI::intensity.

◆ extractNeighborhood()

bool pcl::TSDFVolume< VoxelT, WeightT >::extractNeighborhood ( const Eigen::Vector3i & voxel_coord,
int neighborhood_size,
VoxelTVec & neighborhood ) const

extracts voxels in neighborhood of given voxel

Definition at line 226 of file tsdf_volume.hpp.

References pcl::console::print_info().

◆ getLinearVoxelIndex()

int pcl::TSDFVolume< VoxelT, WeightT >::getLinearVoxelIndex ( const Eigen::Array3i & indices) const
inline

Returns and index for linear access of the volume and weights.

Definition at line 266 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::Header::resolution.

◆ getLinearVoxelIndinces()

Eigen::VectorXi pcl::TSDFVolume< VoxelT, WeightT >::getLinearVoxelIndinces ( const Eigen::Matrix< int, 3, Eigen::Dynamic > & indices_matrix) const
inline

Returns a vector of linear indices for voxel coordinates given in 3xn matrix.

Definition at line 272 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::Header::resolution.

◆ getVoxelCoord()

template<typename PointT >
void pcl::TSDFVolume< VoxelT, WeightT >::getVoxelCoord ( const PointT & point,
Eigen::Vector3i & voxel_coord ) const

Converts the volume to a surface representation via a point cloud.

Crate Volume from Point Cloud

Returns the 3D voxel coordinate

Definition at line 193 of file tsdf_volume.hpp.

◆ getVoxelCoordAndOffset()

template<typename PointT >
void pcl::TSDFVolume< VoxelT, WeightT >::getVoxelCoordAndOffset ( const PointT & point,
Eigen::Vector3i & coord,
Eigen::Vector3f & offset ) const

Returns the 3D voxel coordinate and point offset wrt.

to the voxel center (in mm)

Definition at line 208 of file tsdf_volume.hpp.

◆ gridResolution()

const Eigen::Vector3i & pcl::TSDFVolume< VoxelT, WeightT >::gridResolution ( ) const
inline

Returns the voxel grid resolution.

Definition at line 203 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::Header::resolution.

◆ header()

const Header & pcl::TSDFVolume< VoxelT, WeightT >::header ( ) const
inline

Returns constant reference to header.

Definition at line 207 of file tsdf_volume.h.

◆ load()

bool pcl::TSDFVolume< VoxelT, WeightT >::load ( const std::string & filename,
bool binary = true )

◆ resize()

void pcl::TSDFVolume< VoxelT, WeightT >::resize ( Eigen::Vector3i & grid_resolution,
const Eigen::Vector3f & volume_size = Eigen::Vector3f (DEFAULT_VOLUME_SIZE_X, DEFAULT_VOLUME_SIZE_Y, DEFAULT_VOLUME_SIZE_Z) )
inline

Resizes the internal storage and updates the header accordingly.

Definition at line 161 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::setHeader().

Referenced by pcl::TSDFVolume< VoxelT, WeightT >::resizeDefaultSize().

◆ resizeDefaultSize()

void pcl::TSDFVolume< VoxelT, WeightT >::resizeDefaultSize ( )
inline

Resize internal storage and header to default sizes defined in tsdf_volume.h.

Definition at line 170 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::resize().

◆ save()

bool pcl::TSDFVolume< VoxelT, WeightT >::save ( const std::string & filename = "tsdf_volume.dat",
bool binary = true ) const

Saves volume to file.

Definition at line 104 of file tsdf_volume.hpp.

References pcl::console::print_error(), pcl::console::print_info(), and pcl::console::print_value().

◆ setHeader()

void pcl::TSDFVolume< VoxelT, WeightT >::setHeader ( const Eigen::Vector3i & resolution,
const Eigen::Vector3f & volume_size )
inline

Set the header directly.

Useful if directly writing into volume and weights

Definition at line 153 of file tsdf_volume.h.

References pcl::console::print_warn(), pcl::ConstCloudIterator< PointT >::size(), and pcl::TSDFVolume< VoxelT, WeightT >::size().

Referenced by pcl::TSDFVolume< VoxelT, WeightT >::resize().

◆ size()

std::size_t pcl::TSDFVolume< VoxelT, WeightT >::size ( ) const
inline

◆ volume()

const std::vector< VoxelT > & pcl::TSDFVolume< VoxelT, WeightT >::volume ( ) const
inline

Returns constant reference to the volume std::vector.

Definition at line 211 of file tsdf_volume.h.

◆ volumeSize()

const Eigen::Vector3f & pcl::TSDFVolume< VoxelT, WeightT >::volumeSize ( ) const
inline

Returns the volume size in mm.

Definition at line 192 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::Header::volume_size.

◆ volumeWriteable()

std::vector< VoxelT > & pcl::TSDFVolume< VoxelT, WeightT >::volumeWriteable ( ) const
inline

Returns writebale(!) reference to volume.

Definition at line 215 of file tsdf_volume.h.

◆ voxelSize()

Eigen::Vector3f pcl::TSDFVolume< VoxelT, WeightT >::voxelSize ( ) const
inline

Returns the size of one voxel in mm.

Definition at line 196 of file tsdf_volume.h.

References pcl::TSDFVolume< VoxelT, WeightT >::Header::resolution, and pcl::TSDFVolume< VoxelT, WeightT >::Header::volume_size.

◆ weights()

const std::vector< WeightT > & pcl::TSDFVolume< VoxelT, WeightT >::weights ( ) const
inline

Returns constant reference to the weights std::vector.

Definition at line 219 of file tsdf_volume.h.

◆ weightsWriteable()

std::vector< WeightT > & pcl::TSDFVolume< VoxelT, WeightT >::weightsWriteable ( ) const
inline

Returns writebale(!) reference to volume.

Definition at line 223 of file tsdf_volume.h.


The documentation for this class was generated from the following files: