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

## Namespaces

namespace | label_skeleton
namespace | trees

## Classes

struct | Blob2
| This structure contains all parameters to describe blobs and their parent/child relations. More...
class | FaceDetector
class | OrganizedPlaneDetector
class | PeopleDetector
class | PersonAttribs
class | ProbabilityProcessor
class | RDFBodyPartsDetector
struct | Tree2
| This structure contains all parameters to describe the segmented tree. More...

## Typedefs

using | Cloud = DeviceArray2D< float4 >
using | Image = DeviceArray2D< uchar4 >
using | Depth = DeviceArray2D< unsigned short >
using | Labels = DeviceArray2D< unsigned char >
using | HueImage = DeviceArray2D< float >
using | Mask = DeviceArray2D< unsigned char >

## Enumerations

enum | { NO_CHILD = -3 , LEAF = -2 , ROOT = -1 , NO_DATA = 255 }
enum | { NUM_PARTS = 25 }
enum | { MAX_CHILD = 4 }
| We have 25 body parts defined. More...
enum | { NR_TREES = 4 }
| a parent node has maximum 4 children More...
enum | { FOCAL = 525 }
| The maximum supported number of trees. More...
enum | { WIDTH = 640 }
| Focal length of rgb camera in pixels. More...
enum | { HEIGHT = 480 }
enum | { RATIO = WIDTH/HEIGHT }
enum | { XML_VERSION = 1 }
enum | { NUM_ATTRIBS = 2000 }
| This indicates the current used xml file version (for people lib only) More...
enum | { NUM_LABELS = 32 }

enum

part_t {
Lfoot = 0 , Lleg = 1 , Lknee = 2 , Lthigh = 3 ,
Rfoot = 4 , Rleg = 5 , Rknee = 6 , Rthigh = 7 ,
Rhips = 8 , Lhips = 9 , Neck = 10 , Rarm = 11 ,
Relbow = 12 , Rforearm = 13 , Rhand = 14 , Larm = 15 ,
Lelbow = 16 , Lforearm = 17 , Lhand = 18 , FaceLB = 19 ,
FaceRB = 20 , FaceLT = 21 , FaceRT = 22 , Rchest = 23 ,
Lchest = 24 , Lshoulder = 25 , Rshoulder = 26 , Groundplane = 27 ,
Ceiling = 28 , Background = 29 , Plane = 30 , NOLABEL = 31
}

| Our code is forseen to use maximal use 32 labels. More...

## Functions

pcl::RGB | getLColor (unsigned char l)
| gives a label and returns the color out of the colormap
pcl::RGB | getLColor (pcl::Label l)
| gives a label and returns the color out of the colormap
void | colorLMap (int W, int H, const trees::Label *l, unsigned char *c)
void | colorLMap (const PointCloud< pcl::Label > &cloud_in, PointCloud< pcl::RGB > &colormap_out)
PCL_EXPORTS void | uploadColorMap (DeviceArray< pcl::RGB > &color_map)
PCL_EXPORTS void | colorizeLabels (const DeviceArray< pcl::RGB > &color_map, const DeviceArray2D< unsigned char > &labels, DeviceArray2D< pcl::RGB > &color_labels)
PCL_EXPORTS void | colorizeMixedLabels (const DeviceArray< RGB > &color_map, const DeviceArray2D< unsigned char > &labels, const DeviceArray2D< RGB > &image, DeviceArray2D< RGB > &color_labels)
void | colorFG (int W, int H, const unsigned char *labels, unsigned char *c)
std::ostream & | operator<< (std::ostream &os, const Blob2 &b)
std::ostream & | operator<< (std::ostream &os, const Tree2 &t)
int | leafBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, int label)
| This function sets the children of the leaf nodes to leaf, meaning that we came to the correct end.
int | noChildBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, int label, int child_number)
| This function sets the specific child of the vector to no child, meaning that there are no such children.
bool | hasThisLabelChildren (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, part_t label, int child_number)
| This function test if children were found for this label.
float | evaluateBlobs (Blob2 &parent, Blob2 &child, int child_nr)
| This is the evaluation function used to compare two blobs.
float | evaluateBlobs (Blob2 &parent, Blob2 &child, int child_nr, PersonAttribs::Ptr person_attribs)
| This is the evaluation function used to compare two blobs.
int | evaluateBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, unsigned int parent_label, int child_label, int child_number)
| This function evaluates an entire row of parent segments for the best child segments.
int | evaluateBlobVector (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, unsigned int parent_label, int child_label, int child_number, PersonAttribs::Ptr person_attribs)
| This function evaluates an entire row of parent segments for the best child segments.
int | buildRelations (std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > &sorted)
| This function goes over the sorted matrix and fills in the optimal parent and child relations.
int | buildRelations (std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > &sorted, PersonAttribs::Ptr person_attribs)
| This function goes over the sorted matrix and fills in the optimal parent and child relations.
int | browseTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, Tree2 &tree, int part_label, int part_lid)
int | browseTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, Tree2 &tree, int part_label, int part_lid, PersonAttribs::Ptr person_attribs)
int | buildTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, const pcl::PointCloud< pcl::PointXYZ > &cloud_in, part_t part_label, int part_lid, Tree2 &tree)
int | buildTree (const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, const pcl::PointCloud< pcl::PointXYZ > &cloud_in, part_t part_label, int part_lid, Tree2 &tree, PersonAttribs::Ptr person_attribs)

## Variables

const unsigned char | LUT_COLOR_LABEL []
const int | LUT_COLOR_LABEL_LENGTH
static const float | LUT_max_part_size []
| This LUT contains the max primary eigenvalue for each part.
static const float | LUT_ideal_length [][4]
| This LUT contains the ideal length between this part and his children.
static const float | LUT_max_length_offset [][4]
| This LUT contains the max length between this part and his children.
static const unsigned int | LUT_nr_children []
| This LUT contains the number of children for each parent.

## Typedef Documentation

## Cloud

using pcl::gpu::people::Cloud = typedef DeviceArray2D<float4>

Definition at line 111 of file label_common.h.

## Depth

using pcl::gpu::people::Depth = typedef DeviceArray2D<unsigned short>

Definition at line 114 of file label_common.h.

## HueImage

using pcl::gpu::people::HueImage = typedef DeviceArray2D<float>

Definition at line 116 of file label_common.h.

## Image

using pcl::gpu::people::Image = typedef DeviceArray2D<uchar4>

Definition at line 112 of file label_common.h.

## Labels

using pcl::gpu::people::Labels = typedef DeviceArray2D<unsigned char>

Definition at line 115 of file label_common.h.

## Mask

using pcl::gpu::people::Mask = typedef DeviceArray2D<unsigned char>

Definition at line 117 of file label_common.h.

## Enumeration Type Documentation

## anonymous enum

anonymous enum

The maximum supported number of trees.

Enumerator
FOCAL |

Definition at line 65 of file label_common.h.

## anonymous enum

anonymous enum

Focal length of rgb camera in pixels.

Enumerator
WIDTH |

Definition at line 66 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
HEIGHT |

Definition at line 67 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
RATIO |

Definition at line 68 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
XML_VERSION |

Definition at line 69 of file label_common.h.

## anonymous enum

anonymous enum

This indicates the current used xml file version (for people lib only)

Enumerator
NUM_ATTRIBS |

Definition at line 71 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
NUM_LABELS |

Definition at line 72 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
NO_CHILD |
LEAF |
ROOT |
NO_DATA |

Definition at line 52 of file label_common.h.

## anonymous enum

anonymous enum

Enumerator
NUM_PARTS |

Definition at line 60 of file label_common.h.

## anonymous enum

anonymous enum

We have 25 body parts defined.

Enumerator
MAX_CHILD |

Definition at line 61 of file label_common.h.

## anonymous enum

anonymous enum

a parent node has maximum 4 children

Enumerator
NR_TREES |

Definition at line 62 of file label_common.h.

## part_t

enum pcl::gpu::people::part_t

Our code is forseen to use maximal use 32 labels.

Todo:
  implement label 25 to 29

Enumerator
Lfoot |
Lleg |
Lknee |
Lthigh |
Rfoot |
Rleg |
Rknee |
Rthigh |
Rhips |
Lhips |
Neck |
Rarm |
Relbow |
Rforearm |
Rhand |
Larm |
Lelbow |
Lforearm |
Lhand |
FaceLB |
FaceRB |
FaceLT |
FaceRT |
Rchest |
Lchest |
Lshoulder |
Rshoulder |
Groundplane |
Ceiling |
Background |
Plane |
NOLABEL |

Definition at line 75 of file label_common.h.

## Function Documentation

## browseTree() [1/2]

int pcl::gpu::people::browseTree | ( | const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | Tree2 & | tree,
|  | int | part_label,
|  | int | part_lid
| ) |  |

inline

Definition at line 542 of file label_tree.h.

References browseTree(), pcl::gpu::people::Blob2::child_dist, pcl::gpu::people::Blob2::child_id, pcl::gpu::people::Blob2::child_label, pcl::gpu::people::Blob2::child_lid, pcl::PointIndices::indices, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Tree2::indices, LEAF, LUT_nr_children, NO_CHILD, pcl::gpu::people::Tree2::nr_parts, pcl::gpu::people::Tree2::parts_lid, and pcl::gpu::people::Tree2::total_dist_error.

Referenced by browseTree(), browseTree(), buildTree(), and buildTree().

## browseTree() [2/2]

int pcl::gpu::people::browseTree | ( | const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | Tree2 & | tree,
|  | int | part_label,
|  | int | part_lid,
|  | PersonAttribs::Ptr | person_attribs
| ) |  |

inline

Definition at line 573 of file label_tree.h.

References browseTree(), pcl::gpu::people::Blob2::child_dist, pcl::gpu::people::Blob2::child_id, pcl::gpu::people::Blob2::child_label, pcl::gpu::people::Blob2::child_lid, pcl::PointIndices::indices, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Tree2::indices, LEAF, NO_CHILD, pcl::gpu::people::Tree2::nr_parts, pcl::gpu::people::Tree2::parts_lid, and pcl::gpu::people::Tree2::total_dist_error.

## buildRelations() [1/2]

int pcl::gpu::people::buildRelations | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > & | sorted | ) |

inline

This function goes over the sorted matrix and fills in the optimal parent and child relations.

Parameters

  [in] | sorted | a matrix with all found good blobs arranged according to label and order

Returns
  zero if everything went well, negative on an error

Todo:

  This function also fixes the kinematic chain, we should implement this in a xml or LUT

  look if we can't get a more efficient implementation (iterator together with sortBlobs perhaps?)

Definition at line 342 of file label_tree.h.

References evaluateBlobVector(), FaceLB, FaceRB, hasThisLabelChildren(), Larm, Lchest, leafBlobVector(), Lelbow, Lforearm, Neck, Rarm, Rchest, Relbow, and Rforearm.

## buildRelations() [2/2]

int pcl::gpu::people::buildRelations | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< pcl::gpu::people::Blob2 > > > & | sorted,
|  | PersonAttribs::Ptr | person_attribs
| ) |  |

inline

This function goes over the sorted matrix and fills in the optimal parent and child relations.

Parameters

  [in] | sorted | a matrix with all found good blobs arranged according to label and order
  | person_attribs |

Returns
  zero if everything went well, negative on an error

Todo:

  This function also fixes the kinematic chain, we should implement this in a xml or LUT

  look if we can't get a more efficient implementation (iterator together with sortBlobs perhaps?)

Definition at line 445 of file label_tree.h.

References evaluateBlobVector(), FaceLB, FaceRB, hasThisLabelChildren(), Larm, Lchest, leafBlobVector(), Lelbow, Lforearm, Neck, Rarm, Rchest, Relbow, and Rforearm.

## buildTree() [1/2]

int pcl::gpu::people::buildTree | ( | const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | const pcl::PointCloud< pcl::PointXYZ > & | cloud_in,
|  | part_t | part_label,
|  | int | part_lid,
|  | Tree2 & | tree
| ) |  |

inline

Definition at line 605 of file label_tree.h.

References browseTree(), pcl::compute3DCentroid(), pcl::computeCovarianceMatrixNormalized(), pcl::gpu::people::Tree2::cov, pcl::eigen33(), pcl::gpu::people::Tree2::eigenval, pcl::gpu::people::Tree2::eigenvect, pcl::getMinMax3D(), pcl::gpu::people::Tree2::indices, pcl::gpu::people::Tree2::label, pcl::gpu::people::Tree2::lid, pcl::gpu::people::Tree2::max, pcl::gpu::people::Tree2::mean, pcl::gpu::people::Tree2::min, pcl::gpu::people::Tree2::norm_dist_error, pcl::gpu::people::Tree2::nr_parts, and pcl::gpu::people::Tree2::total_dist_error.

## buildTree() [2/2]

int pcl::gpu::people::buildTree | ( | const std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | const pcl::PointCloud< pcl::PointXYZ > & | cloud_in,
|  | part_t | part_label,
|  | int | part_lid,
|  | Tree2 & | tree,
|  | PersonAttribs::Ptr | person_attribs
| ) |  |

inline

Definition at line 634 of file label_tree.h.

References browseTree(), pcl::compute3DCentroid(), pcl::computeCovarianceMatrixNormalized(), pcl::gpu::people::Tree2::cov, pcl::eigen33(), pcl::gpu::people::Tree2::eigenval, pcl::gpu::people::Tree2::eigenvect, pcl::getMinMax3D(), pcl::gpu::people::Tree2::indices, pcl::gpu::people::Tree2::label, pcl::gpu::people::Tree2::lid, pcl::gpu::people::Tree2::max, pcl::gpu::people::Tree2::mean, pcl::gpu::people::Tree2::min, pcl::gpu::people::Tree2::norm_dist_error, pcl::gpu::people::Tree2::nr_parts, and pcl::gpu::people::Tree2::total_dist_error.

## colorFG()

void pcl::gpu::people::colorFG | ( | int | W,
|  | int | H,
|  | const unsigned char * | labels,
|  | unsigned char * | c
| ) |  |

inline

Definition at line 76 of file colormap.h.

## colorizeLabels()

PCL_EXPORTS void pcl::gpu::people::colorizeLabels | ( | const DeviceArray< pcl::RGB > & | color_map,
|  | const DeviceArray2D< unsigned char > & | labels,
|  | DeviceArray2D< pcl::RGB > & | color_labels
| ) |  |

## colorizeMixedLabels()

PCL_EXPORTS void pcl::gpu::people::colorizeMixedLabels | ( | const DeviceArray< RGB > & | color_map,
|  | const DeviceArray2D< unsigned char > & | labels,
|  | const DeviceArray2D< RGB > & | image,
|  | DeviceArray2D< RGB > & | color_labels
| ) |  |

## colorLMap() [1/2]

void pcl::gpu::people::colorLMap | ( | const PointCloud< pcl::Label > & | cloud_in,
|  | PointCloud< pcl::RGB > & | colormap_out
| ) |  |

## colorLMap() [2/2]

void pcl::gpu::people::colorLMap | ( | int | W,
|  | int | H,
|  | const trees::Label * | l,
|  | unsigned char * | c
| ) |  |

## evaluateBlobs() [1/2]

float pcl::gpu::people::evaluateBlobs | ( | Blob2 & | parent,
|  | Blob2 & | child,
|  | int | child_nr
| ) |  |

inline

This is the evaluation function used to compare two blobs.

Parameters

  [in] | parent | pointer to the parent blob
  [in] | child | pointer to the child blob
  [in] | child_nr | the number of the child

Returns
  it returns the distance error from the ideal parent child distance, it returns -1.0 if it goes over threshold

Todo:
  what if child is second link in stead of first link (ea forearm in stead of elbow for arm)

Definition at line 181 of file label_tree.h.

References pcl::gpu::people::Blob2::label, LUT_ideal_length, LUT_max_length_offset, and pcl::gpu::people::Blob2::mean.

Referenced by evaluateBlobVector(), and evaluateBlobVector().

## evaluateBlobs() [2/2]

float pcl::gpu::people::evaluateBlobs | ( | Blob2 & | parent,
|  | Blob2 & | child,
|  | int | child_nr,
|  | PersonAttribs::Ptr | person_attribs
| ) |  |

inline

This is the evaluation function used to compare two blobs.

Parameters

  [in] | parent | pointer to the parent blob
  [in] | child | pointer to the child blob
  [in] | child_nr | the number of the child
  | person_attribs |

Returns
  it returns the distance error from the ideal parent child distance, it returns -1.0 if it goes over threshold

Todo:
  what if child is second link in stead of first link (ea forearm in stead of elbow for arm)

Definition at line 202 of file label_tree.h.

References pcl::gpu::people::Blob2::label, and pcl::gpu::people::Blob2::mean.

## evaluateBlobVector() [1/2]

int pcl::gpu::people::evaluateBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | unsigned int | parent_label,
|  | int | child_label,
|  | int | child_number
| ) |  |

inline

This function evaluates an entire row of parent segments for the best child segments.

Parameters

  [in] | sorted | this is the array of all blobs
  [in] | parent_label | this is the part label that indicates the row
  [in] | child_label | this is the part label that indicates the childs needed to be investigated
  [in] | child_number | the number of this child in the parent, some parents have multiple childs

Returns
  zero if successful

Todo:
  once we have good evaluation function reconsider best_value

Definition at line 226 of file label_tree.h.

References evaluateBlobs(), MAX_CHILD, NO_CHILD, noChildBlobVector(), and NUM_PARTS.

Referenced by buildRelations(), and buildRelations().

## evaluateBlobVector() [2/2]

int pcl::gpu::people::evaluateBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | unsigned int | parent_label,
|  | int | child_label,
|  | int | child_number,
|  | PersonAttribs::Ptr | person_attribs
| ) |  |

inline

This function evaluates an entire row of parent segments for the best child segments.

Parameters

  [in] | sorted | this is the array of all blobs
  [in] | parent_label | this is the part label that indicates the row
  [in] | child_label | this is the part label that indicates the childs needed to be investigated
  [in] | child_number | the number of this child in the parent, some parents have multiple childs
  | person_attribs |

Returns
  zero if successful

Todo:
  once we have good evaluation function reconsider best_value

Definition at line 285 of file label_tree.h.

References evaluateBlobs(), MAX_CHILD, NO_CHILD, noChildBlobVector(), and NUM_PARTS.

## getLColor() [1/2]

pcl::RGB pcl::gpu::people::getLColor | ( | pcl::Label | l | ) |

gives a label and returns the color out of the colormap

## getLColor() [2/2]

pcl::RGB pcl::gpu::people::getLColor | ( | unsigned char | l | ) |

gives a label and returns the color out of the colormap

## hasThisLabelChildren()

bool pcl::gpu::people::hasThisLabelChildren | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | part_t | label,
|  | int | child_number
| ) |  |

inline

This function test if children were found for this label.

Returns
  True if this label has valid children

Definition at line 160 of file label_tree.h.

References LEAF, and NO_CHILD.

Referenced by buildRelations(), and buildRelations().

## leafBlobVector()

int pcl::gpu::people::leafBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | int | label
| ) |  |

inline

This function sets the children of the leaf nodes to leaf, meaning that we came to the correct end.

Parameters

  [in] | sorted | The matrix of all blobs
  [in] | label | The label of which all children are to be set as leafs

Returns
  Zero if everything went well

Definition at line 122 of file label_tree.h.

References LEAF, and MAX_CHILD.

Referenced by buildRelations(), and buildRelations().

## noChildBlobVector()

int pcl::gpu::people::noChildBlobVector | ( | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | int | label,
|  | int | child_number
| ) |  |

inline

This function sets the specific child of the vector to no child, meaning that there are no such children.

Parameters

  [in] | sorted | The matrix of all blobs
  [in] | label | The label of which the child must be set to NO_CHILD
  [in] | child_number | The index of the respective child that must be set

Returns
  Zero if everything went well

Definition at line 143 of file label_tree.h.

References NO_CHILD.

Referenced by evaluateBlobVector(), and evaluateBlobVector().

## operator<<() [1/2]

std::ostream & pcl::gpu::people::operator<< | ( | std::ostream & | os,
|  | const Blob2 & | b
| ) |  |

inline

Definition at line 79 of file label_blob2.h.

References pcl::gpu::people::Blob2::child_dist, pcl::gpu::people::Blob2::child_id, pcl::gpu::people::Blob2::child_label, pcl::gpu::people::Blob2::child_lid, pcl::gpu::people::Blob2::cov, pcl::gpu::people::Blob2::eigenval, pcl::gpu::people::Blob2::eigenvect, pcl::gpu::people::Blob2::id, pcl::PointIndices::indices, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Blob2::label, pcl::gpu::people::Blob2::lid, pcl::gpu::people::Blob2::max, MAX_CHILD, pcl::gpu::people::Blob2::mean, and pcl::gpu::people::Blob2::min.

## operator<<() [2/2]

std::ostream & pcl::gpu::people::operator<< | ( | std::ostream & | os,
|  | const Tree2 & | t
| ) |  |

inline

Definition at line 101 of file label_tree.h.

References pcl::gpu::people::Tree2::cov, pcl::gpu::people::Tree2::eigenval, pcl::gpu::people::Tree2::eigenvect, pcl::gpu::people::Tree2::id, pcl::PointIndices::indices, pcl::gpu::people::Tree2::indices, pcl::gpu::people::Tree2::label, pcl::gpu::people::Tree2::lid, pcl::gpu::people::Tree2::max, pcl::gpu::people::Tree2::mean, pcl::gpu::people::Tree2::min, pcl::gpu::people::Tree2::norm_dist_error, pcl::gpu::people::Tree2::nr_parts, and pcl::gpu::people::Tree2::total_dist_error.

## uploadColorMap()

PCL_EXPORTS void pcl::gpu::people::uploadColorMap | ( | DeviceArray< pcl::RGB > & | color_map | ) |

## Variable Documentation

## LUT_COLOR_LABEL

const unsigned char pcl::gpu::people::LUT_COLOR_LABEL[]

extern

## LUT_COLOR_LABEL_LENGTH

const int pcl::gpu::people::LUT_COLOR_LABEL_LENGTH

extern

## LUT_ideal_length

const float pcl::gpu::people::LUT_ideal_length[][4]

static

Initial value:
=
{
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.2f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ 0.3f, -1.0f, -1.0f, -1.0f},
{ 0.15f, 0.15f, 0.2f, 0.2f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ 0.1f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ 0.1f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ 0.15f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ -1.0f, -1.0f, -1.0f, -1.0f},
{ 0.3f, 0.3f, -1.0f, -1.0f},
{ 0.3f, 0.3f, -1.0f, -1.0f}
}

This LUT contains the ideal length between this part and his children.

Definition at line 155 of file label_common.h.

Referenced by evaluateBlobs().

## LUT_max_length_offset

const float pcl::gpu::people::LUT_max_length_offset[][4]

static

Initial value:
=
{
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.3f, 0.15f, 0.15f, 0.15f},
{ 0.3f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f},
{ 0.15f, 0.15f, 0.15f, 0.15f}
}

This LUT contains the max length between this part and his children.

Definition at line 187 of file label_common.h.

Referenced by evaluateBlobs().

## LUT_max_part_size

const float pcl::gpu::people::LUT_max_part_size[]

static

Initial value:
=
{
0.5f,
0.7f,
0.6f,
0.6f,
0.5f,
0.7f,
0.6f,
0.6f,
0.9f,
0.9f,
0.5f,
0.7f,
0.5f,
0.7f,
0.5f,
0.7f,
0.5f,
0.7f,
0.5f,
0.5f,
0.5f,
0.5f,
0.5f,
0.9f,
0.9f
}

This LUT contains the max primary eigenvalue for each part.

Todo:
  read this from XML file

Definition at line 123 of file label_common.h.

## LUT_nr_children

const unsigned int pcl::gpu::people::LUT_nr_children[]

static

Initial value:
=
{
0,
1,
1,
1,
0,
1,
1,
1,
1,
1,
4,
1,
1,
1,
0,
1,
1,
1,
0,
1,
1,
0,
0,
2,
2
}

This LUT contains the number of children for each parent.

Definition at line 219 of file label_common.h.

Referenced by browseTree().