Point Cloud Library (PCL)  1.14.1-dev
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::LCCPSegmentation< PointT > Class Template Reference

A simple segmentation algorithm partitioning a supervoxel graph into groups of locally convex connected supervoxels separated by concave borders. More...

#include <pcl/segmentation/lccp_segmentation.h>

+ Inheritance diagram for pcl::LCCPSegmentation< PointT >:
+ Collaboration diagram for pcl::LCCPSegmentation< PointT >:

Public Types

using SupervoxelAdjacencyList = boost::adjacency_list< boost::setS, boost::setS, boost::undirectedS, std::uint32_t, EdgeProperties >
 
using VertexIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::vertex_iterator
 
using AdjacencyIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::adjacency_iterator
 
using VertexID = typename boost::graph_traits< SupervoxelAdjacencyList >::vertex_descriptor
 
using EdgeIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::edge_iterator
 
using OutEdgeIterator = typename boost::graph_traits< SupervoxelAdjacencyList >::out_edge_iterator
 
using EdgeID = typename boost::graph_traits< SupervoxelAdjacencyList >::edge_descriptor
 

Public Member Functions

 LCCPSegmentation ()
 
virtual ~LCCPSegmentation ()
 
void reset ()
 Reset internal memory. More...
 
void setInputSupervoxels (const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &supervoxel_clusters_arg, const std::multimap< std::uint32_t, std::uint32_t > &label_adjacency_arg)
 Set the supervoxel clusters as well as the adjacency graph for the segmentation.Those parameters are generated by using the SupervoxelClustering class. More...
 
void segment ()
 Merge supervoxels using local convexity. More...
 
void relabelCloud (pcl::PointCloud< pcl::PointXYZL > &labeled_cloud_arg)
 Relabels cloud with supervoxel labels with the computed segment labels. More...
 
void getSegmentToSupervoxelMap (std::map< std::uint32_t, std::set< std::uint32_t > > &segment_supervoxel_map_arg) const
 Get map<SegmentID, std::set<SuperVoxel IDs> > More...
 
void getSupervoxelToSegmentMap (std::map< std::uint32_t, std::uint32_t > &supervoxel_segment_map_arg) const
 Get map<Supervoxel_ID, Segment_ID> More...
 
void getSegmentAdjacencyMap (std::map< std::uint32_t, std::set< std::uint32_t > > &segment_adjacency_map_arg)
 Get map <SegmentID, std::set<Neighboring SegmentIDs> > More...
 
float getConcavityToleranceThreshold () const
 Get normal threshold. More...
 
void getSVAdjacencyList (SupervoxelAdjacencyList &adjacency_list_arg) const
 Get the supervoxel adjacency graph with classified edges (boost::adjacency_list). More...
 
void setConcavityToleranceThreshold (float concavity_tolerance_threshold_arg)
 Set normal threshold. More...
 
void setSmoothnessCheck (bool use_smoothness_check_arg, float voxel_res_arg, float seed_res_arg, float smoothness_threshold_arg=0.1)
 Determines if a smoothness check is done during segmentation, trying to invalidate edges of non-smooth connected edges (steps). More...
 
void setSanityCheck (const bool use_sanity_criterion_arg)
 Determines if we want to use the sanity criterion to invalidate singular connected patches. More...
 
void setKFactor (const std::uint32_t k_factor_arg)
 Set the value used for k convexity. More...
 
void setMinSegmentSize (const std::uint32_t min_segment_size_arg)
 Set the value min_segment_size_ used in mergeSmallSegments. More...
 

Protected Member Functions

void mergeSmallSegments ()
 Segments smaller than min_segment_size_ are merged to the label of largest neighbor. More...
 
void computeSegmentAdjacency ()
 Compute the adjacency of the segments. More...
 
void prepareSegmentation (const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &supervoxel_clusters_arg, const std::multimap< std::uint32_t, std::uint32_t > &label_adjacency_arg)
 Is called within setInputSupervoxels mainly to reserve required memory. More...
 
void doGrouping ()
 Perform depth search on the graph and recursively group all supervoxels with convex connections. More...
 
void recursiveSegmentGrowing (const VertexID &queryPointID, const unsigned int group_label)
 Assigns neighbors of the query point to the same group as the query point. More...
 
void calculateConvexConnections (SupervoxelAdjacencyList &adjacency_list_arg)
 Calculates convexity of edges and saves this to the adjacency graph. More...
 
void applyKconvexity (const unsigned int k_arg)
 Connections are only convex if this is true for at least k_arg common neighbors of the two patches. More...
 
bool connIsConvex (const std::uint32_t source_label_arg, const std::uint32_t target_label_arg, float &normal_angle)
 Returns true if the connection between source and target is convex. More...
 

Protected Attributes

float concavity_tolerance_threshold_ {10}
 *** Parameters *** /// More...
 
bool grouping_data_valid_ {false}
 Marks if valid grouping data (sv_adjacency_list_, sv_label_to_seg_label_map_, processed_) is available. More...
 
bool supervoxels_set_ {false}
 Marks if supervoxels have been set by calling setInputSupervoxels. More...
 
bool use_smoothness_check_ {false}
 Determines if the smoothness check is used during segmentation. More...
 
float smoothness_threshold_ {0.1}
 Two supervoxels are unsmooth if their plane-to-plane distance DIST > (expected_distance + smoothness_threshold_*voxel_resolution_). More...
 
bool use_sanity_check_ {false}
 Determines if we use the sanity check which tries to find and invalidate singular connected patches. More...
 
float seed_resolution_ {0.0f}
 Seed resolution of the supervoxels (used only for smoothness check) More...
 
float voxel_resolution_ {0.0f}
 Voxel resolution used to build the supervoxels (used only for smoothness check) More...
 
std::uint32_t k_factor_ {0}
 Factor used for k-convexity. More...
 
std::uint32_t min_segment_size_ {0}
 Minimum segment size. More...
 
std::map< std::uint32_t, bool > processed_
 Stores which supervoxel labels were already visited during recursive grouping. More...
 
SupervoxelAdjacencyList sv_adjacency_list_
 Adjacency graph with the supervoxel labels as nodes and edges between adjacent supervoxels. More...
 
std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > sv_label_to_supervoxel_map_
 map from the supervoxel labels to the supervoxel objects
More...
 
std::map< std::uint32_t, std::uint32_t > sv_label_to_seg_label_map_
 Storing relation between original SuperVoxel Labels and new segmantion labels. More...
 
std::map< std::uint32_t, std::set< std::uint32_t > > seg_label_to_sv_list_map_
 map Segment Label to a set of Supervoxel Labels More...
 
std::map< std::uint32_t, std::set< std::uint32_t > > seg_label_to_neighbor_set_map_
 map < SegmentID, std::set< Neighboring segment labels> > More...
 

Detailed Description

template<typename PointT>
class pcl::LCCPSegmentation< PointT >

A simple segmentation algorithm partitioning a supervoxel graph into groups of locally convex connected supervoxels separated by concave borders.

Note
If you use this in a scientific work please cite the following paper: S. C. Stein, M. Schoeler, J. Papon, F. Woergoetter Object Partitioning using Local Convexity In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2014
Author
Simon Christoph Stein and Markus Schoeler (mscho.nosp@m.eler.nosp@m.@gwdg.nosp@m..de)

Definition at line 57 of file lccp_segmentation.h.

Member Typedef Documentation

◆ AdjacencyIterator

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::AdjacencyIterator = typename boost::graph_traits<SupervoxelAdjacencyList>::adjacency_iterator

Definition at line 82 of file lccp_segmentation.h.

◆ EdgeID

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::EdgeID = typename boost::graph_traits<SupervoxelAdjacencyList>::edge_descriptor

Definition at line 87 of file lccp_segmentation.h.

◆ EdgeIterator

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::EdgeIterator = typename boost::graph_traits<SupervoxelAdjacencyList>::edge_iterator

Definition at line 85 of file lccp_segmentation.h.

◆ OutEdgeIterator

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::OutEdgeIterator = typename boost::graph_traits<SupervoxelAdjacencyList>::out_edge_iterator

Definition at line 86 of file lccp_segmentation.h.

◆ SupervoxelAdjacencyList

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::SupervoxelAdjacencyList = boost::adjacency_list<boost::setS, boost::setS, boost::undirectedS, std::uint32_t, EdgeProperties>

Definition at line 80 of file lccp_segmentation.h.

◆ VertexID

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::VertexID = typename boost::graph_traits<SupervoxelAdjacencyList>::vertex_descriptor

Definition at line 84 of file lccp_segmentation.h.

◆ VertexIterator

template<typename PointT >
using pcl::LCCPSegmentation< PointT >::VertexIterator = typename boost::graph_traits<SupervoxelAdjacencyList>::vertex_iterator

Definition at line 81 of file lccp_segmentation.h.

Constructor & Destructor Documentation

◆ LCCPSegmentation()

template<typename PointT >
pcl::LCCPSegmentation< PointT >::LCCPSegmentation ( )
default

◆ ~LCCPSegmentation()

template<typename PointT >
pcl::LCCPSegmentation< PointT >::~LCCPSegmentation ( )
virtualdefault

Member Function Documentation

◆ applyKconvexity()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::applyKconvexity ( const unsigned int  k_arg)
protected

Connections are only convex if this is true for at least k_arg common neighbors of the two patches.

Call setKFactor before segment to use this.

Parameters
[in]k_argFactor used for extended convexity check

Definition at line 339 of file lccp_segmentation.hpp.

◆ calculateConvexConnections()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::calculateConvexConnections ( SupervoxelAdjacencyList adjacency_list_arg)
protected

Calculates convexity of edges and saves this to the adjacency graph.

Parameters
[in,out]adjacency_list_argThe supervoxel adjacency list

Definition at line 396 of file lccp_segmentation.hpp.

◆ computeSegmentAdjacency()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::computeSegmentAdjacency
protected

Compute the adjacency of the segments.

Definition at line 123 of file lccp_segmentation.hpp.

Referenced by pcl::LCCPSegmentation< PointT >::getSegmentAdjacencyMap().

◆ connIsConvex()

template<typename PointT >
bool pcl::LCCPSegmentation< PointT >::connIsConvex ( const std::uint32_t  source_label_arg,
const std::uint32_t  target_label_arg,
float &  normal_angle 
)
protected

Returns true if the connection between source and target is convex.

Parameters
[in]source_label_argLabel of one supervoxel connected to the edge that should be checked
[in]target_label_argLabel of the other supervoxel connected to the edge that should be checked
[out]normal_angleThe angle between source and target
Returns
True if connection is convex

Definition at line 416 of file lccp_segmentation.hpp.

References pcl::Supervoxel< PointT >::centroid_, pcl::getAngle3D(), and pcl::Supervoxel< PointT >::normal_.

◆ doGrouping()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::doGrouping
protected

Perform depth search on the graph and recursively group all supervoxels with convex connections.

Note
The vertices in the supervoxel adjacency list are the supervoxel centroids

Definition at line 278 of file lccp_segmentation.hpp.

◆ getConcavityToleranceThreshold()

template<typename PointT >
float pcl::LCCPSegmentation< PointT >::getConcavityToleranceThreshold ( ) const
inline

Get normal threshold.

Returns
The concavity tolerance angle in [deg] that is currently set

Definition at line 174 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::concavity_tolerance_threshold_.

◆ getSegmentAdjacencyMap()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::getSegmentAdjacencyMap ( std::map< std::uint32_t, std::set< std::uint32_t > > &  segment_adjacency_map_arg)
inline

Get map <SegmentID, std::set<Neighboring SegmentIDs> >

Parameters
[out]segment_adjacency_map_argmap < SegmentID, std::set< Neighboring SegmentIDs> >. On error the map is empty.

Definition at line 156 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::computeSegmentAdjacency(), pcl::LCCPSegmentation< PointT >::grouping_data_valid_, and pcl::LCCPSegmentation< PointT >::seg_label_to_neighbor_set_map_.

◆ getSegmentToSupervoxelMap()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::getSegmentToSupervoxelMap ( std::map< std::uint32_t, std::set< std::uint32_t > > &  segment_supervoxel_map_arg) const
inline

Get map<SegmentID, std::set<SuperVoxel IDs> >

Parameters
[out]segment_supervoxel_map_argThe output container. On error the map is empty.

Definition at line 124 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::grouping_data_valid_, and pcl::LCCPSegmentation< PointT >::seg_label_to_sv_list_map_.

◆ getSupervoxelToSegmentMap()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::getSupervoxelToSegmentMap ( std::map< std::uint32_t, std::uint32_t > &  supervoxel_segment_map_arg) const
inline

Get map<Supervoxel_ID, Segment_ID>

Parameters
[out]supervoxel_segment_map_argThe output container. On error the map is empty.

Definition at line 140 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::grouping_data_valid_, and pcl::LCCPSegmentation< PointT >::sv_label_to_seg_label_map_.

◆ getSVAdjacencyList()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::getSVAdjacencyList ( SupervoxelAdjacencyList adjacency_list_arg) const
inline

Get the supervoxel adjacency graph with classified edges (boost::adjacency_list).

Parameters
[out]adjacency_list_argThe supervoxel adjacency list with classified (convex/concave) edges. On error the list is empty.

Definition at line 182 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::grouping_data_valid_, and pcl::LCCPSegmentation< PointT >::sv_adjacency_list_.

◆ mergeSmallSegments()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::mergeSmallSegments
protected

Segments smaller than min_segment_size_ are merged to the label of largest neighbor.

Definition at line 154 of file lccp_segmentation.hpp.

◆ prepareSegmentation()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::prepareSegmentation ( const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &  supervoxel_clusters_arg,
const std::multimap< std::uint32_t, std::uint32_t > &  label_adjacency_arg 
)
protected

Is called within setInputSupervoxels mainly to reserve required memory.

Parameters
[in]supervoxel_clusters_argmap of < supervoxel labels, supervoxels >
[in]label_adjacency_argThe graph defining the supervoxel adjacency relations

Definition at line 228 of file lccp_segmentation.hpp.

Referenced by pcl::LCCPSegmentation< PointT >::setInputSupervoxels().

◆ recursiveSegmentGrowing()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::recursiveSegmentGrowing ( const VertexID queryPointID,
const unsigned int  group_label 
)
protected

Assigns neighbors of the query point to the same group as the query point.

Recursive part of doGrouping. Grouping is done by a depth-search of nodes in the adjacency-graph.

Parameters
[in]queryPointIDID of point whose neighbors will be considered for grouping
[in]group_labelID of the group/segment the queried point belongs to

Definition at line 309 of file lccp_segmentation.hpp.

◆ relabelCloud()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::relabelCloud ( pcl::PointCloud< pcl::PointXYZL > &  labeled_cloud_arg)

Relabels cloud with supervoxel labels with the computed segment labels.

labeled_cloud_arg should be created using SupervoxelClustering::getLabeledCloud.

Parameters
[in,out]labeled_cloud_argCloud to relabel

Definition at line 98 of file lccp_segmentation.hpp.

◆ reset()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::reset

Reset internal memory.


Definition at line 60 of file lccp_segmentation.hpp.

◆ segment()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::segment

Merge supervoxels using local convexity.

The input parameters are generated by using the SupervoxelClustering class. To retrieve the output use the relabelCloud method.

Note
There are three ways to retrieve the segmentation afterwards: relabelCloud, getSegmentToSupervoxelMap and getSupervoxelToSegmentMap.

Definition at line 73 of file lccp_segmentation.hpp.

◆ setConcavityToleranceThreshold()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::setConcavityToleranceThreshold ( float  concavity_tolerance_threshold_arg)
inline

Set normal threshold.

Parameters
[in]concavity_tolerance_threshold_argthe concavity tolerance angle in [deg] to set

Definition at line 198 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::concavity_tolerance_threshold_.

◆ setInputSupervoxels()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::setInputSupervoxels ( const std::map< std::uint32_t, typename pcl::Supervoxel< PointT >::Ptr > &  supervoxel_clusters_arg,
const std::multimap< std::uint32_t, std::uint32_t > &  label_adjacency_arg 
)
inline

Set the supervoxel clusters as well as the adjacency graph for the segmentation.Those parameters are generated by using the SupervoxelClustering class.

To retrieve the output use the segment method.

Parameters
[in]supervoxel_clusters_argMap of < supervoxel labels, supervoxels >
[in]label_adjacency_argThe graph defining the supervoxel adjacency relations
Note
Implicitly calls reset

Definition at line 103 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::prepareSegmentation(), and pcl::LCCPSegmentation< PointT >::supervoxels_set_.

◆ setKFactor()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::setKFactor ( const std::uint32_t  k_factor_arg)
inline

Set the value used for k convexity.

For k>0 convex connections between p_i and p_j require k common neighbors of these patches that have a convex connection to both.

Parameters
[in]k_factor_argfactor used for extended convexity check

Definition at line 231 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::k_factor_.

◆ setMinSegmentSize()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::setMinSegmentSize ( const std::uint32_t  min_segment_size_arg)
inline

Set the value min_segment_size_ used in mergeSmallSegments.

Parameters
[in]min_segment_size_argSegments smaller than this size will be merged

Definition at line 239 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::min_segment_size_.

◆ setSanityCheck()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::setSanityCheck ( const bool  use_sanity_criterion_arg)
inline

Determines if we want to use the sanity criterion to invalidate singular connected patches.

Parameters
[in]use_sanity_criterion_argDetermines if the sanity check is performed

Definition at line 223 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::use_sanity_check_.

◆ setSmoothnessCheck()

template<typename PointT >
void pcl::LCCPSegmentation< PointT >::setSmoothnessCheck ( bool  use_smoothness_check_arg,
float  voxel_res_arg,
float  seed_res_arg,
float  smoothness_threshold_arg = 0.1 
)
inline

Determines if a smoothness check is done during segmentation, trying to invalidate edges of non-smooth connected edges (steps).

Two supervoxels are unsmooth if their plane-to-plane distance DIST > (expected_distance + smoothness_threshold_*voxel_resolution_). For parallel supervoxels, the expected_distance is zero.

Parameters
[in]use_smoothness_check_argDetermines if the smoothness check is used
[in]voxel_res_argThe voxel resolution used for the supervoxels that are segmented
[in]seed_res_argThe seed resolution used for the supervoxels that are segmented
[in]smoothness_threshold_argThreshold (/fudging factor) for smoothness constraint according to the above formula.

Definition at line 209 of file lccp_segmentation.h.

References pcl::LCCPSegmentation< PointT >::seed_resolution_, pcl::LCCPSegmentation< PointT >::smoothness_threshold_, pcl::LCCPSegmentation< PointT >::use_smoothness_check_, and pcl::LCCPSegmentation< PointT >::voxel_resolution_.

Member Data Documentation

◆ concavity_tolerance_threshold_

template<typename PointT >
float pcl::LCCPSegmentation< PointT >::concavity_tolerance_threshold_ {10}
protected

*** Parameters *** ///

Normal Threshold in degrees [0,180] used for merging

Definition at line 297 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::getConcavityToleranceThreshold(), and pcl::LCCPSegmentation< PointT >::setConcavityToleranceThreshold().

◆ grouping_data_valid_

template<typename PointT >
bool pcl::LCCPSegmentation< PointT >::grouping_data_valid_ {false}
protected

◆ k_factor_

template<typename PointT >
std::uint32_t pcl::LCCPSegmentation< PointT >::k_factor_ {0}
protected

Factor used for k-convexity.

Definition at line 321 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setKFactor().

◆ min_segment_size_

template<typename PointT >
std::uint32_t pcl::LCCPSegmentation< PointT >::min_segment_size_ {0}
protected

Minimum segment size.

Definition at line 324 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setMinSegmentSize().

◆ processed_

template<typename PointT >
std::map<std::uint32_t, bool> pcl::LCCPSegmentation< PointT >::processed_
protected

Stores which supervoxel labels were already visited during recursive grouping.

Note
processed_[sv_Label] = false (default)/true (already processed)

Definition at line 328 of file lccp_segmentation.h.

◆ seed_resolution_

template<typename PointT >
float pcl::LCCPSegmentation< PointT >::seed_resolution_ {0.0f}
protected

Seed resolution of the supervoxels (used only for smoothness check)

Definition at line 315 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setSmoothnessCheck().

◆ seg_label_to_neighbor_set_map_

template<typename PointT >
std::map<std::uint32_t, std::set<std::uint32_t> > pcl::LCCPSegmentation< PointT >::seg_label_to_neighbor_set_map_
protected

map < SegmentID, std::set< Neighboring segment labels> >

Definition at line 344 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::getSegmentAdjacencyMap().

◆ seg_label_to_sv_list_map_

template<typename PointT >
std::map<std::uint32_t, std::set<std::uint32_t> > pcl::LCCPSegmentation< PointT >::seg_label_to_sv_list_map_
protected

map Segment Label to a set of Supervoxel Labels

Definition at line 341 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::getSegmentToSupervoxelMap().

◆ smoothness_threshold_

template<typename PointT >
float pcl::LCCPSegmentation< PointT >::smoothness_threshold_ {0.1}
protected

Two supervoxels are unsmooth if their plane-to-plane distance DIST > (expected_distance + smoothness_threshold_*voxel_resolution_).

For parallel supervoxels, the expected_distance is zero.

Definition at line 309 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setSmoothnessCheck().

◆ supervoxels_set_

template<typename PointT >
bool pcl::LCCPSegmentation< PointT >::supervoxels_set_ {false}
protected

Marks if supervoxels have been set by calling setInputSupervoxels.

Definition at line 303 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setInputSupervoxels().

◆ sv_adjacency_list_

template<typename PointT >
SupervoxelAdjacencyList pcl::LCCPSegmentation< PointT >::sv_adjacency_list_
protected

Adjacency graph with the supervoxel labels as nodes and edges between adjacent supervoxels.

Definition at line 331 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::getSVAdjacencyList().

◆ sv_label_to_seg_label_map_

template<typename PointT >
std::map<std::uint32_t, std::uint32_t> pcl::LCCPSegmentation< PointT >::sv_label_to_seg_label_map_
protected

Storing relation between original SuperVoxel Labels and new segmantion labels.

Note
sv_label_to_seg_label_map_[old_labelID] = new_labelID

Definition at line 338 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::getSupervoxelToSegmentMap().

◆ sv_label_to_supervoxel_map_

template<typename PointT >
std::map<std::uint32_t, typename pcl::Supervoxel<PointT>::Ptr> pcl::LCCPSegmentation< PointT >::sv_label_to_supervoxel_map_
protected

map from the supervoxel labels to the supervoxel objects

Definition at line 334 of file lccp_segmentation.h.

◆ use_sanity_check_

template<typename PointT >
bool pcl::LCCPSegmentation< PointT >::use_sanity_check_ {false}
protected

Determines if we use the sanity check which tries to find and invalidate singular connected patches.

Definition at line 312 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setSanityCheck().

◆ use_smoothness_check_

template<typename PointT >
bool pcl::LCCPSegmentation< PointT >::use_smoothness_check_ {false}
protected

Determines if the smoothness check is used during segmentation.

Definition at line 306 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setSmoothnessCheck().

◆ voxel_resolution_

template<typename PointT >
float pcl::LCCPSegmentation< PointT >::voxel_resolution_ {0.0f}
protected

Voxel resolution used to build the supervoxels (used only for smoothness check)

Definition at line 318 of file lccp_segmentation.h.

Referenced by pcl::LCCPSegmentation< PointT >::setSmoothnessCheck().


The documentation for this class was generated from the following files: