Point Cloud Library (PCL) 1.12.0
Loading...
Searching...
No Matches
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes
pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap > Class Template Reference

Multilabel graph segmentation using random walks. More...

#include <pcl/segmentation/impl/random_walker.hpp>

Public Types

using Color = typename boost::property_traits<VertexColorMap>::value_type
 
using Weight = typename boost::property_traits<EdgeWeightMap>::value_type
 
using GraphTraits = boost::graph_traits<Graph>
 
using EdgeDescriptor = typename GraphTraits::edge_descriptor
 
using VertexDescriptor = typename GraphTraits::vertex_descriptor
 
using EdgeIterator = typename GraphTraits::edge_iterator
 
using OutEdgeIterator = typename GraphTraits::out_edge_iterator
 
using VertexIterator = typename GraphTraits::vertex_iterator
 
using VertexIndexMap = typename boost::property_map<Graph, boost::vertex_index_t>::type
 
using VertexDegreeMap = boost::iterator_property_map<typename std::vector<Weight>::iterator, VertexIndexMap>
 
using SparseMatrix = Eigen::SparseMatrix<Weight>
 
using Matrix = Eigen::Matrix<Weight, Eigen::Dynamic, Eigen::Dynamic>
 
using Vector = Eigen::Matrix<Weight, Eigen::Dynamic, 1>
 

Public Member Functions

 RandomWalker (Graph &g, EdgeWeightMap weights, VertexColorMap colors)
 
bool segment ()
 
void computeVertexDegrees ()
 
void buildLinearSystem ()
 
bool solveLinearSystem ()
 
void assignColors ()
 
void getPotentials (Matrix &potentials, std::map< Color, std::size_t > &color_to_column_map)
 

Static Public Member Functions

template<typename T >
static std::size_t insertInBimap (boost::bimap< std::size_t, T > &bimap, T value)
 

Public Attributes

Graph & g_
 
EdgeWeightMap weight_map_
 
VertexColorMap color_map_
 
VertexIndexMap index_map_
 
std::vector< VertexDescriptorseeds_
 
std::set< Colorcolors_
 
std::vector< Weightdegree_storage_
 
VertexDegreeMap degree_map_
 
SparseMatrix L
 
SparseMatrix B
 
Matrix X
 
boost::bimap< std::size_t, VertexDescriptorL_vertex_bimap
 
boost::bimap< std::size_t, ColorB_color_bimap
 

Detailed Description

template<class Graph, class EdgeWeightMap, class VertexColorMap>
class pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >

Multilabel graph segmentation using random walks.

This is an implementation of the algorithm described in "Random Walks for Image Segmentation" by Leo Grady.

See the documentation of the randomWalker() function for details.

Author
Sergey Alexandrov

Definition at line 65 of file random_walker.hpp.

Member Typedef Documentation

◆ Color

Definition at line 70 of file random_walker.hpp.

◆ EdgeDescriptor

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::EdgeDescriptor = typename GraphTraits::edge_descriptor

Definition at line 73 of file random_walker.hpp.

◆ EdgeIterator

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::EdgeIterator = typename GraphTraits::edge_iterator

Definition at line 75 of file random_walker.hpp.

◆ GraphTraits

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::GraphTraits = boost::graph_traits<Graph>

Definition at line 72 of file random_walker.hpp.

◆ Matrix

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::Matrix = Eigen::Matrix<Weight, Eigen::Dynamic, Eigen::Dynamic>

Definition at line 81 of file random_walker.hpp.

◆ OutEdgeIterator

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::OutEdgeIterator = typename GraphTraits::out_edge_iterator

Definition at line 76 of file random_walker.hpp.

◆ SparseMatrix

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::SparseMatrix = Eigen::SparseMatrix<Weight>

Definition at line 80 of file random_walker.hpp.

◆ Vector

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::Vector = Eigen::Matrix<Weight, Eigen::Dynamic, 1>

Definition at line 82 of file random_walker.hpp.

◆ VertexDegreeMap

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::VertexDegreeMap = boost::iterator_property_map<typename std::vector<Weight>::iterator, VertexIndexMap>

Definition at line 79 of file random_walker.hpp.

◆ VertexDescriptor

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::VertexDescriptor = typename GraphTraits::vertex_descriptor

Definition at line 74 of file random_walker.hpp.

◆ VertexIndexMap

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::VertexIndexMap = typename boost::property_map<Graph, boost::vertex_index_t>::type

Definition at line 78 of file random_walker.hpp.

◆ VertexIterator

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::VertexIterator = typename GraphTraits::vertex_iterator

Definition at line 77 of file random_walker.hpp.

◆ Weight

using pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::Weight = typename boost::property_traits<EdgeWeightMap>::value_type

Definition at line 71 of file random_walker.hpp.

Constructor & Destructor Documentation

◆ RandomWalker()

pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::RandomWalker ( Graph & g,
EdgeWeightMap weights,
VertexColorMap colors )
inline

Definition at line 84 of file random_walker.hpp.

Member Function Documentation

◆ assignColors()

◆ buildLinearSystem()

◆ computeVertexDegrees()

void pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::computeVertexDegrees ( )
inline

◆ getPotentials()

void pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::getPotentials ( Matrix & potentials,
std::map< Color, std::size_t > & color_to_column_map )
inline

◆ insertInBimap()

template<typename T >
static std::size_t pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::insertInBimap ( boost::bimap< std::size_t, T > & bimap,
T value )
inlinestatic

◆ segment()

◆ solveLinearSystem()

Member Data Documentation

◆ B

◆ B_color_bimap

boost::bimap<std::size_t, Color> pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::B_color_bimap

◆ color_map_

◆ colors_

◆ degree_map_

◆ degree_storage_

Definition at line 264 of file random_walker.hpp.

◆ g_

◆ index_map_

Definition at line 259 of file random_walker.hpp.

◆ L

◆ L_vertex_bimap

boost::bimap<std::size_t, VertexDescriptor> pcl::segmentation::detail::RandomWalker< Graph, EdgeWeightMap, VertexColorMap >::L_vertex_bimap

◆ seeds_

◆ weight_map_

◆ X


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