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 () | |
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... |
|
const PointCloudConstPtr | 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... |
|
const IndicesConstPtr | 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 188 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::IndicesPtr = pcl::IndicesPtr |
Definition at line 180 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::KdTreeT = pcl::search::KdTree<PointT> |
Definition at line 179 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::LeafContainerT = pcl::octree::OctreePointCloudAdjacencyContainer<PointT, VoxelData> |
Definition at line 172 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::LeafVectorT = std::vector<LeafContainerT *> |
Definition at line 173 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::NormalCloudT = pcl::PointCloud<Normal> |
Definition at line 176 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::OctreeAdjacencyT = pcl::octree::OctreePointCloudAdjacency<PointT, LeafContainerT> |
Definition at line 177 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::OctreeSearchT = pcl::octree::OctreePointCloudSearch<PointT> |
Definition at line 178 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::PointCloudT = pcl::PointCloud<PointT> |
Definition at line 175 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 186 of file supervoxel_clustering.h.
using pcl::SupervoxelClustering< PointT >::VoxelID = VoxelAdjacencyList::vertex_descriptor |
Definition at line 187 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.
pcl::SupervoxelClustering< PointT >::~SupervoxelClustering |
This destructor destroys the cloud, normals and search method used for finding neighbors.
In other words it frees memory.
Definition at line 63 of file supervoxel_clustering.hpp.
| 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 97 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, unlabled points have label 0
Definition at line 582 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, unlabled points have label 0
Definition at line 560 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 683 of file supervoxel_clustering.hpp.
float pcl::SupervoxelClustering< PointT >::getSeedResolution |
Get the resolution of the octree seed voxels.
Definition at line 639 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 534 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 483 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 551 of file supervoxel_clustering.hpp.
References pcl::copyPointCloud().
float pcl::SupervoxelClustering< PointT >::getVoxelResolution |
Get the resolution of the octree voxels.
Definition at line 624 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 609 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 149 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setColorImportance | ( | float | val | ) |
Set the importance of color for supervoxels.
Definition at line 654 of file supervoxel_clustering.hpp.
| override |
This method sets the cloud to be supervoxelized.
[in] | cloud | The cloud to be supervoxelize |
Definition at line 70 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 84 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setNormalImportance | ( | float | val | ) |
Set the importance of scalar normal product for supervoxels.
Definition at line 668 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setSeedResolution | ( | float | seed_resolution | ) |
Set the resolution of the octree seed voxels.
Definition at line 646 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setSpatialImportance | ( | float | val | ) |
Set the importance of spatial distance for supervoxels.
Definition at line 661 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 675 of file supervoxel_clustering.hpp.
void pcl::SupervoxelClustering< PointT >::setVoxelResolution | ( | float | resolution | ) |
Set the resolution of the octree voxels.
Definition at line 631 of file supervoxel_clustering.hpp.
| friend |
| friend |
Definition at line 129 of file supervoxel_clustering.h.
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_supervoxel_clustering.html