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

## Functions

void | smoothLabelImage (cv::Mat &lmap_in, cv::Mat &dmap, cv::Mat &lmap_out)
| this function smooths the label image based on label and depth
void | sortIndicesToBlob2 (const pcl::PointCloud< pcl::PointXYZ > &cloud_in, unsigned int sizeThres, std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted, std::vector< std::vector< pcl::PointIndices > > &indices)
| This function takes a number of indices with label and sorts them in the blob matrix.
int | giveSortedBlobsInfo (std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > &sorted)
| This function is a stupid helper function to debug easilier, it print out how the matrix was sorted.

## Function Documentation

## giveSortedBlobsInfo()

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

inline

This function is a stupid helper function to debug easilier, it print out how the matrix was sorted.

Parameters

  [in] | sorted | the matrix of blobs

Returns
  Zero if everything went well

Definition at line 380 of file label_segment.h.

## smoothLabelImage()

void pcl::gpu::people::label_skeleton::smoothLabelImage | ( | cv::Mat & | lmap_in,
|  | cv::Mat & | dmap,
|  | cv::Mat & | lmap_out )

inline

this function smooths the label image based on label and depth

Parameters

  [in] | lmap_in | the cvMat with the labels, must be CV_8UC1
  [in] | dmap | the cvMat with the depths, must be CV_16U in mm
  [out] | lmap_out | the smoothed output labelmap as cvMat

Todo

  make the patch size a parameter

  make the z-distance a parameter

  add a Gaussian contribution function to depth and vote

Definition at line 240 of file label_segment.h.

References pcl::gpu::people::NUM_PARTS.

## sortIndicesToBlob2()

void pcl::gpu::people::label_skeleton::sortIndicesToBlob2 | ( | const pcl::PointCloud< pcl::PointXYZ > & | cloud_in,
|  | unsigned int | sizeThres,
|  | std::vector< std::vector< Blob2, Eigen::aligned_allocator< Blob2 > > > & | sorted,
|  | std::vector< std::vector< pcl::PointIndices > > & | indices )

inline

This function takes a number of indices with label and sorts them in the blob matrix.

Parameters

  [in] | cloud_in | the original input pointcloud from which everything was calculated
  [in] | sizeThres | the minimal size needed to be considered as a valid blob
  [out] | sorted | the matrix in which every blob will be pushed back
  [in] | indices | the matrix of PointIndices

Todo

  implement the eigenvalue evaluation again

  do we still need sizeThres?

Definition at line 331 of file label_segment.h.

References pcl::compute3DCentroid(), pcl::computeCovarianceMatrixNormalized(), pcl::gpu::people::Blob2::cov, pcl::eigen33(), pcl::gpu::people::Blob2::eigenval, pcl::gpu::people::Blob2::eigenvect, pcl::getMinMax3D(), pcl::gpu::people::Blob2::id, pcl::gpu::people::Blob2::indices, pcl::gpu::people::Blob2::label, pcl::gpu::people::Blob2::lid, pcl::gpu::people::Blob2::max, pcl::gpu::people::Blob2::mean, and pcl::gpu::people::Blob2::min.