Loading...
Searching...
No Matches
pcl::gpu Namespace Reference

## Namespaces

namespace | kinfuLS
namespace | people

## Classes

class | DeviceArray
| DeviceArray class More...
class | DeviceArray2D
| DeviceArray2D class More...
class | DeviceMemory
| DeviceMemory class More...
class | DeviceMemory2D
| DeviceMemory2D class More...
class | TextureBinder
struct | DevPtr
struct | PtrSz
struct | PtrStep
struct | PtrStepSz
struct | Feature
| Feature represents the base feature class. More...
struct | FeatureFromNormals
| Feature represents the base feature class that takes normals as input also. More...
class | NormalEstimation
| Class for normal estimation. More...
class | PFHEstimation
| Class for PFH estimation. More...
class | PFHRGBEstimation
| Class for PFHRGB estimation. More...
class | FPFHEstimation
| Class for FPFH estimation. More...
class | PPFEstimation
| ** More...
class | PPFRGBEstimation
| ** More...
class | PPFRGBRegionEstimation
| ** More...
class | VFHEstimation
| Class for PPFRGBRegion estimation. More...
struct | DataSource
class | ColorVolume
| ColorVolume class. More...
class | KinfuTracker
| KinfuTracker class encapsulates implementation of Microsoft Kinect Fusion algorithm. More...
class | MarchingCubes
| MarchingCubes implements MarchingCubes functionality for TSDF volume on GPU. More...
struct | PixelRGB
| Input/output pixel format for KinfuTracker. More...
struct | RayCaster
| Class that performs raycasting for TSDF volume. More...
class | TsdfVolume
| TsdfVolume class. More...
class | CaptureOpenNI
struct | NeighborIndices
class | Octree
| Octree implementation on GPU. More...
class | AsyncCopy
class | EuclideanClusterExtraction
| EuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sense, depending on pcl::gpu::octree More...
class | EuclideanLabeledClusterExtraction
| EuclideanLabeledClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sense, depending on pcl::gpu::octree More...
class | SeededHueSegmentation
class | PseudoConvexHull3D
class | ParticleFilterGPUTracker
struct | Timer
struct | ScopeTimer

## Functions

int | cp (int from, int to)
| Returns field copy operation code.
int | rule (int cp1, int cp2=NoCP, int cp3=NoCP, int cp4=NoCP)
void | copyFieldsImpl (int in_size, int out_size, int rules[4], int size, const void *input, void *output)
template<typename PointIn, typename PointOut>
void | copyFieldsEx (const DeviceArray< PointIn > &src, DeviceArray< PointOut > &dst, int rule1, int rule2=NoCP, int rule3=NoCP, int rule4=NoCP)
void | copyFields (const DeviceArray< PointXYZ > &src, DeviceArray< PointNormal > &dst)
void | copyFields (const DeviceArray< Normal > &src, DeviceArray< PointNormal > &dst)
void | copyFields (const DeviceArray< PointXYZRGBL > &src, DeviceArray< PointXYZ > &dst)
void | copyFields (const DeviceArray< PointXYZRGB > &src, DeviceArray< PointXYZ > &dst)
void | copyFields (const DeviceArray< PointXYZRGBA > &src, DeviceArray< PointXYZ > &dst)
void | copyFieldsZ (const DeviceArray< PointXYZ > &src, DeviceArray< float > &dst)
void | copyFieldsZ (const DeviceArray< PointXYZRGB > &src, DeviceArray< float > &dst)
PCL_EXPORTS int | getCudaEnabledDeviceCount ()
| Returns number of Cuda device.
PCL_EXPORTS void | setDevice (int device)
| Sets active device to work with.
PCL_EXPORTS std::string | getDeviceName (int device)
| Return device name for given device.
void PCL_EXPORTS | printCudaDeviceInfo (int device=-1)
| Prints information about given cuda device or about all devices.
void PCL_EXPORTS | printShortCudaDeviceInfo (int device=-1)
| Prints information about given cuda device or about all devices.
bool PCL_EXPORTS | checkIfPreFermiGPU (int device=-1)
| Returns true if pre-Fermi generator GPU.
void PCL_EXPORTS | error (const char *error_string, const char *file, const int line, const char *func="")
| Error handler.
template<typename PointType>
void | convertMapToOranizedCloud (const RayCaster::MapArr &map, DeviceArray2D< PointType > &cloud)
| Converts from map representation to organized not-dence point cloud.
static void | ___cudaSafeCall (cudaError_t err, const char *file, const int line, const char *func="")
static int | divUp (int total, int grain)
PCL_EXPORTS void | bruteForceRadiusSearchGPU (const Octree::PointCloud &cloud, const Octree::PointType &query, float radius, DeviceArray< int > &result, DeviceArray< int > &buffer)
| Performs brute force radius search on GPU.
template<typename PointT>
void | extractEuclideanClusters (const typename pcl::PointCloud< PointT >::Ptr &host_cloud_, const pcl::gpu::Octree::Ptr &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster, unsigned int max_pts_per_cluster)
bool | comparePointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b)
| Sort clusters method (for std::sort).
template<typename PointT>
void | extractLabeledEuclideanClusters (const typename pcl::PointCloud< PointT >::Ptr &host_cloud_, const pcl::gpu::Octree::Ptr &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster, unsigned int max_pts_per_cluster)
bool | compareLabeledPointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b)
| Sort clusters method (for std::sort).
void | seededHueSegmentation (const pcl::PointCloud< pcl::PointXYZRGB >::Ptr &host_cloud_, const pcl::gpu::Octree::Ptr &tree, float tolerance, PointIndices &clusters_in, PointIndices &clusters_out, float delta_hue=0.0)
static void | ___cudaSafeCall (cudaError_t err, const char *file, const int line, const char *func="")
static int | divUp (int total, int grain)

## Variables

const int | NoCP = 0xFFFFFFFF
| This is an experimental code ///.
bool | use_custom_axes_cloud_
| Class for SpinImages estimation.
bool | is_radial_
unsigned int | image_width_
float | support_angle_cos_
unsigned int | min_pts_neighb_
bool | fake_surface_
NeighborIndices | nn_indices_

## Function Documentation

## ___cudaSafeCall() [1/2]

void pcl::gpu::___cudaSafeCall | ( | cudaError_t | err,
|  | const char * | file,
|  | const int | line,
|  | const char * | func = "" )

inline static

Definition at line 53 of file safe_call.hpp.

References error().

## ___cudaSafeCall() [2/2]

void pcl::gpu::___cudaSafeCall | ( | cudaError_t | err,
|  | const char * | file,
|  | const int | line,
|  | const char * | func = "" )

inline static

Definition at line 54 of file safe_call.hpp.

## bruteForceRadiusSearchGPU()

PCL_EXPORTS void pcl::gpu::bruteForceRadiusSearchGPU | ( | const Octree::PointCloud & | cloud,
|  | const Octree::PointType & | query,
|  | float | radius,
|  | DeviceArray< int > & | result,
|  | DeviceArray< int > & | buffer )

Performs brute force radius search on GPU.

Parameters

  [in] | cloud | cloud where to search
  [in] | query | query point
  [in] | radius | radius
  [out] | result | indeces of points within give sphere
  [in] | buffer | buffer for intermediate results. Keep reference to it between calls to eliminate internal allocations

## checkIfPreFermiGPU()

bool PCL_EXPORTS pcl::gpu::checkIfPreFermiGPU | ( | int | device = -1 | ) |

Returns true if pre-Fermi generator GPU.

Parameters

  device | device id to check, if < 0 checks current device.

## convertMapToOranizedCloud()

template<typename PointType>

void pcl::gpu::convertMapToOranizedCloud | ( | const RayCaster::MapArr & | map,
|  | DeviceArray2D< PointType > & | cloud )

Converts from map representation to organized not-dence point cloud.

## copyFields() [1/5]

void pcl::gpu::copyFields | ( | const DeviceArray< Normal > & | src,
|  | DeviceArray< PointNormal > & | dst )

Definition at line 102 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## copyFields() [2/5]

void pcl::gpu::copyFields | ( | const DeviceArray< PointXYZ > & | src,
|  | DeviceArray< PointNormal > & | dst )

Definition at line 93 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## copyFields() [3/5]

void pcl::gpu::copyFields | ( | const DeviceArray< PointXYZRGB > & | src,
|  | DeviceArray< PointXYZ > & | dst )

Definition at line 121 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## copyFields() [4/5]

void pcl::gpu::copyFields | ( | const DeviceArray< PointXYZRGBA > & | src,
|  | DeviceArray< PointXYZ > & | dst )

Definition at line 130 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## copyFields() [5/5]

void pcl::gpu::copyFields | ( | const DeviceArray< PointXYZRGBL > & | src,
|  | DeviceArray< PointXYZ > & | dst )

Definition at line 112 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## copyFieldsEx()

template<typename PointIn, typename PointOut>

void pcl::gpu::copyFieldsEx | ( | const DeviceArray< PointIn > & | src,
|  | DeviceArray< PointOut > & | dst,
|  | int | rule1,
|  | int | rule2 = NoCP,
|  | int | rule3 = NoCP,
|  | int | rule4 = NoCP )

Definition at line 75 of file repacks.hpp.

References copyFieldsImpl(), pcl::gpu::DeviceArray< T >::create(), NoCP, pcl::gpu::DeviceArray< T >::ptr(), and pcl::gpu::DeviceArray< T >::size().

Referenced by copyFields(), copyFields(), copyFields(), copyFields(), copyFields(), copyFieldsZ(), and copyFieldsZ().

## copyFieldsImpl()

void pcl::gpu::copyFieldsImpl | ( | int | in_size,
|  | int | out_size,
|  | int | rules[4],
|  | int | size,
|  | const void * | input,
|  | void * | output )

Referenced by copyFieldsEx().

## copyFieldsZ() [1/2]

void pcl::gpu::copyFieldsZ | ( | const DeviceArray< PointXYZ > & | src,
|  | DeviceArray< float > & | dst )

Definition at line 139 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## copyFieldsZ() [2/2]

void pcl::gpu::copyFieldsZ | ( | const DeviceArray< PointXYZRGB > & | src,
|  | DeviceArray< float > & | dst )

Definition at line 146 of file repacks.hpp.

References copyFieldsEx(), cp(), and rule().

## cp()

int pcl::gpu::cp | ( | int | from,
|  | int | to )

inline

Returns field copy operation code.

Definition at line 54 of file repacks.hpp.

Referenced by copyFields(), copyFields(), copyFields(), copyFields(), copyFields(), copyFieldsZ(), and copyFieldsZ().

## divUp() [1/2]

int pcl::gpu::divUp | ( | int | total,
|  | int | grain )

inline static

Definition at line 59 of file safe_call.hpp.

## divUp() [2/2]

int pcl::gpu::divUp | ( | int | total,
|  | int | grain )

inline static

Definition at line 67 of file safe_call.hpp.

## error()

void PCL_EXPORTS pcl::gpu::error | ( | const char * | error_string,
|  | const char * | file,
|  | const int | line,
|  | const char * | func = "" )

Error handler.

All GPU functions call this to report an error. For internal use only

Referenced by ___cudaSafeCall().

## extractEuclideanClusters()

template<typename PointT>

void pcl::gpu::extractEuclideanClusters | ( | const typename pcl::PointCloud< PointT >::Ptr & | host_cloud_,
|  | const pcl::gpu::Octree::Ptr & | tree,
|  | float | tolerance,
|  | std::vector< PointIndices > & | clusters,
|  | unsigned int | min_pts_per_cluster,
|  | unsigned int | max_pts_per_cluster )

Todo
  : adjust this to a variable number settable with method

Definition at line 58 of file gpu_extract_clusters.hpp.

References pcl::copyPoint(), pcl::gpu::DeviceArray< T >::create(), pcl::gpu::DeviceArray< T >::download(), pcl::detail::economical_download(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::gpu::DeviceArray< T >::ptr(), pcl::PointCloud< PointT >::size(), pcl::gpu::NeighborIndices::sizes, and pcl::gpu::DeviceArray< T >::upload().

Referenced by pcl::gpu::EuclideanClusterExtraction< PointT >::extract().

## extractLabeledEuclideanClusters()

template<typename PointT>

void pcl::gpu::extractLabeledEuclideanClusters | ( | const typename pcl::PointCloud< PointT >::Ptr & | host_cloud_,
|  | const pcl::gpu::Octree::Ptr & | tree,
|  | float | tolerance,
|  | std::vector< PointIndices > & | clusters,
|  | unsigned int | min_pts_per_cluster,
|  | unsigned int | max_pts_per_cluster )

Definition at line 45 of file gpu_extract_labeled_clusters.hpp.

References pcl::gpu::NeighborIndices::data, pcl::gpu::DeviceArray< T >::download(), pcl::PointCloud< PointT >::header, pcl::PointIndices::header, pcl::PointIndices::indices, pcl::PointCloud< PointT >::size(), pcl::gpu::NeighborIndices::sizes, and pcl::gpu::DeviceArray< T >::upload().

Referenced by pcl::gpu::EuclideanLabeledClusterExtraction< PointT >::extract().

## getCudaEnabledDeviceCount()

PCL_EXPORTS int pcl::gpu::getCudaEnabledDeviceCount | ( |  | ) |

Returns number of Cuda device.

## getDeviceName()

PCL_EXPORTS std::string pcl::gpu::getDeviceName | ( | int | device | ) |

Return device name for given device.

## printCudaDeviceInfo()

void PCL_EXPORTS pcl::gpu::printCudaDeviceInfo | ( | int | device = -1 | ) |

Prints information about given cuda device or about all devices.

Parameters

  device | if < 0 prints info for all devices, otherwise the function interprets it as device id.

## printShortCudaDeviceInfo()

void PCL_EXPORTS pcl::gpu::printShortCudaDeviceInfo | ( | int | device = -1 | ) |

Prints information about given cuda device or about all devices.

Parameters

  device | if < 0 prints info for all devices, otherwise the function interprets it as device id.

## rule()

int pcl::gpu::rule | ( | int | cp1,
|  | int | cp2 = NoCP,
|  | int | cp3 = NoCP,
|  | int | cp4 = NoCP )

inline

Definition at line 61 of file repacks.hpp.

References NoCP.

Referenced by copyFields(), copyFields(), copyFields(), copyFields(), copyFields(), copyFieldsZ(), and copyFieldsZ().

## seededHueSegmentation()

void pcl::gpu::seededHueSegmentation | ( | const pcl::PointCloud< pcl::PointXYZRGB >::Ptr & | host_cloud_,
|  | const pcl::gpu::Octree::Ptr & | tree,
|  | float | tolerance,
|  | PointIndices & | clusters_in,
|  | PointIndices & | clusters_out,
|  | float | delta_hue = 0.0 )

Referenced by pcl::gpu::SeededHueSegmentation::segment().

## setDevice()

PCL_EXPORTS void pcl::gpu::setDevice | ( | int | device | ) |

Sets active device to work with.

## Variable Documentation

## fake_surface_

bool pcl::gpu::fake_surface_

Definition at line 296 of file features.hpp.

## image_width_

unsigned int pcl::gpu::image_width_

Definition at line 292 of file features.hpp.

## is_radial_

bool pcl::gpu::is_radial_

Definition at line 290 of file features.hpp.

## min_pts_neighb_

unsigned int pcl::gpu::min_pts_neighb_

Definition at line 294 of file features.hpp.

## nn_indices_

NeighborIndices pcl::gpu::nn_indices_

Definition at line 298 of file features.hpp.

## NoCP

const int pcl::gpu::NoCP = 0xFFFFFFFF

This is an experimental code ///.

Definition at line 50 of file repacks.hpp.

Referenced by copyFieldsEx(), and rule().

## support_angle_cos_

float pcl::gpu::support_angle_cos_

Definition at line 293 of file features.hpp.

## use_custom_axes_cloud_

bool pcl::gpu::use_custom_axes_cloud_

Class for SpinImages estimation.

*‍/

class PCL_EXPORTS SpinImageEstimation : public FeatureFromNormals { public:
using SpinImage = Histogram<153>;

SpinImageEstimation (unsigned int image_width = 8, double support_angle_cos = 0.0, // when 0, this is bogus, so not applied unsigned int min_pts_neighb = 0);

void setImageWidth (unsigned int bin_count);
void setSupportAngle (float support_angle_cos);
void setMinPointCountInNeighbourhood (unsigned int min_pts_neighb);
void setInputWithNormals (const PointCloud& input, const Normals& normals);
void setSearchSurfaceWithNormals (const PointCloud& surface, const Normals& normals);

void setRotationAxis (const NormalType& axis); void setInputRotationAxes (const Normals& axes);
void useNormalsAsRotationAxis(); void setAngularDomain (bool is_angular = true); void setRadialStructure (bool is_radial = true);

void compute(DeviceArray2D<SpinImage>& features, DeviceArray<unsigned char>& mask);

private:
Normals input_normals_; Normals rotation_axes_cloud_;

bool is_angular_;

NormalType rotation_axis_; bool use_custom_axis_;

/* use input normals as rotation axes

Definition at line 288 of file features.hpp.