Point Cloud Library (PCL)
1.14.1-dev
|
Implements a supervoxel algorithm based on voxel structure, normals, and rgb values. More...
#include <pcl/segmentation/supervoxel_clustering.h>
Classes | |
class | VoxelData |
VoxelData is a structure used for storing data within a pcl::octree::OctreePointCloudAdjacencyContainer. More... | |
Public Member Functions | |
SupervoxelClustering (float voxel_resolution, float seed_resolution) | |
Constructor that sets default values for member variables. More... | |
~SupervoxelClustering () override | |
This destructor destroys the cloud, normals and search method used for finding neighbors. More... | |
void | setVoxelResolution (float resolution) |
Set the resolution of the octree voxels. More... | |
float | getVoxelResolution () const |
Get the resolution of the octree voxels. More... | |
void | setSeedResolution (float seed_resolution) |
Set the resolution of the octree seed voxels. More... | |
float | getSeedResolution () const |
Get the resolution of the octree seed voxels. More... | |
void | setColorImportance (float val) |
Set the importance of color for supervoxels. More... | |
void | setSpatialImportance (float val) |
Set the importance of spatial distance for supervoxels. More... | |
void | setNormalImportance (float val) |
Set the importance of scalar normal product for supervoxels. More... | |
void | setUseSingleCameraTransform (bool val) |
Set whether or not to use the single camera transform. More... | |
virtual void | extract (std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > &supervoxel_clusters) |
This method launches the segmentation algorithm and returns the supervoxels that were obtained during the segmentation. More... | |
void | setInputCloud (const typename pcl::PointCloud< PointT >::ConstPtr &cloud) override |
This method sets the cloud to be supervoxelized. More... | |
virtual void | setNormalCloud (typename NormalCloudT::ConstPtr normal_cloud) |
This method sets the normals to be used for supervoxels (should be same size as input cloud) More... | |
virtual void | refineSupervoxels (int num_itr, std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > &supervoxel_clusters) |
This method refines the calculated supervoxels - may only be called after extract. More... | |
pcl::PointCloud< PointT >::Ptr | getVoxelCentroidCloud () const |
Returns a deep copy of the voxel centroid cloud. More... | |
pcl::PointCloud< PointXYZL >::Ptr | getLabeledCloud () const |
Returns labeled cloud Points that belong to the same supervoxel have the same label. More... | |
pcl::PointCloud< pcl::PointXYZL >::Ptr | getLabeledVoxelCloud () const |
Returns labeled voxelized cloud Points that belong to the same supervoxel have the same label. More... | |
void | getSupervoxelAdjacencyList (VoxelAdjacencyList &adjacency_list_arg) const |
Gets the adjacency list (Boost Graph library) which gives connections between supervoxels. More... | |
void | getSupervoxelAdjacency (std::multimap< std::uint32_t, std::uint32_t > &label_adjacency) const |
Get a multimap which gives supervoxel adjacency. More... | |
int | getMaxLabel () const |
Returns the current maximum (highest) label. More... | |
Public Member Functions inherited from pcl::PCLBase< PointT > | |
PCLBase () | |
Empty constructor. More... | |
PCLBase (const PCLBase &base) | |
Copy constructor. More... | |
virtual | ~PCLBase ()=default |
Destructor. More... | |
virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
Provide a pointer to the input dataset. More... | |
PointCloudConstPtr const | getInputCloud () const |
Get a pointer to the input point cloud dataset. More... | |
virtual void | setIndices (const IndicesPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (const IndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (const PointIndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols) |
Set the indices for the points laying within an interest region of the point cloud. More... | |
IndicesPtr | getIndices () |
Get a pointer to the vector of indices used. More... | |
IndicesConstPtr const | getIndices () const |
Get a pointer to the vector of indices used. More... | |
const PointT & | operator[] (std::size_t pos) const |
Override PointCloud operator[] to shorten code. More... | |
Static Public Member Functions | |
static pcl::PointCloud< pcl::PointNormal >::Ptr | makeSupervoxelNormalCloud (std::map< std::uint32_t, typename Supervoxel< PointT >::Ptr > &supervoxel_clusters) |
Static helper function which returns a pointcloud of normals for the input supervoxels. More... | |
Friends | |
class | SupervoxelHelper |
void | boost::checked_delete (const typename pcl::SupervoxelClustering< PointT >::SupervoxelHelper *) |
Additional Inherited Members | |
Protected Member Functions inherited from pcl::PCLBase< PointT > | |
bool | initCompute () |
This method should get called before starting the actual computation. More... | |
bool | deinitCompute () |
This method should get called after finishing the actual computation. More... | |
Protected Attributes inherited from pcl::PCLBase< PointT > | |
PointCloudConstPtr | input_ |
The input point cloud dataset. More... | |
IndicesPtr | indices_ |
A pointer to the vector of point indices to use. More... | |
bool | use_indices_ |
Set to true if point indices are used. More... | |
bool | fake_indices_ |
If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More... | |
Implements a supervoxel algorithm based on voxel structure, normals, and rgb values.
Definition at line 126 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::EdgeID = VoxelAdjacencyList::edge_descriptor |
Definition at line 208 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::IndicesPtr = pcl::IndicesPtr |
Definition at line 200 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::KdTreeT = pcl::search::KdTree<PointT> |
Definition at line 199 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::LeafContainerT = pcl::octree::OctreePointCloudAdjacencyContainer<PointT, VoxelData> |
Definition at line 192 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::LeafVectorT = std::vector<LeafContainerT *> |
Definition at line 193 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::NormalCloudT = pcl::PointCloud<Normal> |
Definition at line 196 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::OctreeAdjacencyT = pcl::octree::OctreePointCloudAdjacency<PointT, LeafContainerT> |
Definition at line 197 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::OctreeSearchT = pcl::octree::OctreePointCloudSearch<PointT> |
Definition at line 198 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::PointCloudT = pcl::PointCloud<PointT> |
Definition at line 195 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::VoxelAdjacencyList = boost::adjacency_list<boost::setS, boost::setS, boost::undirectedS, std::uint32_t, float> |
Definition at line 206 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::VoxelID = VoxelAdjacencyList::vertex_descriptor |
Definition at line 207 of file supervoxel_clustering.h.
pcl::SupervoxelClustering< PointT >::SupervoxelClustering | ( | float | voxel_resolution, |
float | seed_resolution | ||
) |
Constructor that sets default values for member variables.
[in] | voxel_resolution | The resolution (in meters) of voxels used |
[in] | seed_resolution | The average size (in meters) of resulting supervoxels |
Definition at line 48 of file supervoxel_clustering.hpp.
|
overridedefault |
This destructor destroys the cloud, normals and search method used for finding neighbors.
In other words it frees memory.
|
virtual |
This method launches the segmentation algorithm and returns the supervoxels that were obtained during the segmentation.
[out] | supervoxel_clusters | A map of labels to pointers to supervoxel structures |
Definition at line 91 of file supervoxel_clustering.hpp.
pcl::PointCloud< pcl::PointXYZL >::Ptr pcl::SupervoxelClustering< PointT >::getLabeledCloud |
Returns labeled cloud Points that belong to the same supervoxel have the same label.
Labels for segments start from 1, unlabeled points have label 0
Definition at line 576 of file supervoxel_clustering.hpp.
References pcl::PointCloud< PointT >::begin(), pcl::copyPointCloud(), pcl::PointCloud< PointT >::end(), pcl::octree::OctreePointCloudAdjacencyContainer< PointInT, DataT >::getData(), and pcl::SupervoxelClustering< PointT >::VoxelData::owner_.
pcl::PointCloud< pcl::PointXYZL >::Ptr pcl::SupervoxelClustering< PointT >::getLabeledVoxelCloud |
Returns labeled voxelized cloud Points that belong to the same supervoxel have the same label.
Labels for segments start from 1, unlabeled points have label 0
Definition at line 554 of file supervoxel_clustering.hpp.
References pcl::PointCloud< PointT >::begin(), pcl::copyPointCloud(), and pcl::PointCloud< PointT >::end().
int pcl::SupervoxelClustering< PointT >::getMaxLabel |
Returns the current maximum (highest) label.
Definition at line 677 of file supervoxel_clustering.hpp.
float pcl::SupervoxelClustering< PointT >::getSeedResolution |
Get the resolution of the octree seed voxels.
Definition at line 633 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::getSupervoxelAdjacency | ( | std::multimap< std::uint32_t, std::uint32_t > & | label_adjacency | ) | const |
Get a multimap which gives supervoxel adjacency.
[out] | label_adjacency | Multi-Map which maps a supervoxel label to all adjacent supervoxel labels |
Definition at line 528 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::getSupervoxelAdjacencyList | ( | VoxelAdjacencyList & | adjacency_list_arg | ) | const |
Gets the adjacency list (Boost Graph library) which gives connections between supervoxels.
[out] | adjacency_list_arg | BGL graph where supervoxel labels are vertices, edges are touching relationships |
Definition at line 477 of file supervoxel_clustering.hpp.
pcl::PointCloud< PointT >::Ptr pcl::SupervoxelClustering< PointT >::getVoxelCentroidCloud |
Returns a deep copy of the voxel centroid cloud.
Definition at line 545 of file supervoxel_clustering.hpp.
References pcl::copyPointCloud().
float pcl::SupervoxelClustering< PointT >::getVoxelResolution |
Get the resolution of the octree voxels.
Definition at line 618 of file supervoxel_clustering.hpp.
|
static |
Static helper function which returns a pointcloud of normals for the input supervoxels.
[in] | supervoxel_clusters | Supervoxel cluster map coming from this class |
Definition at line 603 of file supervoxel_clustering.hpp.
References pcl::PointCloud< PointT >::begin(), and pcl::PointCloud< PointT >::resize().
|
virtual |
This method refines the calculated supervoxels - may only be called after extract.
[in] | num_itr | The number of iterations of refinement to be done (2 or 3 is usually sufficient) |
[out] | supervoxel_clusters | The resulting refined supervoxels |
Definition at line 143 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setColorImportance | ( | float | val | ) |
Set the importance of color for supervoxels.
Definition at line 648 of file supervoxel_clustering.hpp.
|
override |
This method sets the cloud to be supervoxelized.
[in] | cloud | The cloud to be supervoxelize |
Definition at line 64 of file supervoxel_clustering.hpp.
References pcl::PointCloud< PointT >::empty().
|
virtual |
This method sets the normals to be used for supervoxels (should be same size as input cloud)
[in] | normal_cloud | The input normals |
Definition at line 78 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setNormalImportance | ( | float | val | ) |
Set the importance of scalar normal product for supervoxels.
Definition at line 662 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setSeedResolution | ( | float | seed_resolution | ) |
Set the resolution of the octree seed voxels.
Definition at line 640 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setSpatialImportance | ( | float | val | ) |
Set the importance of spatial distance for supervoxels.
Definition at line 655 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setUseSingleCameraTransform | ( | bool | val | ) |
Set whether or not to use the single camera transform.
Definition at line 669 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setVoxelResolution | ( | float | resolution | ) |
Set the resolution of the octree voxels.
Definition at line 625 of file supervoxel_clustering.hpp.
|
friend |
|
friend |
Definition at line 130 of file supervoxel_clustering.h.