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

This class implements the segmentation algorithm based on minimal cut of the graph. More...

#include <pcl/segmentation/min_cut_segmentation.h>

+ Inheritance diagram for pcl::MinCutSegmentation< PointT >:

Public Types

typedef pcl::search::Search< PointTKdTree
 
typedef KdTree::Ptr KdTreePtr
 
typedef pcl::PointCloud< PointTPointCloud
 
typedef PointCloud::ConstPtr PointCloudConstPtr
 
typedef boost::adjacency_list_traits< boost::vecS, boost::vecS, boost::directedS > Traits
 
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS, boost::property< boost::vertex_name_t, std::string, boost::property< boost::vertex_index_t, long, boost::property< boost::vertex_color_t, boost::default_color_type, boost::property< boost::vertex_distance_t, long, boost::property< boost::vertex_predecessor_t, Traits::edge_descriptor > > > > >, boost::property< boost::edge_capacity_t, double, boost::property< boost::edge_residual_capacity_t, double, boost::property< boost::edge_reverse_t, Traits::edge_descriptor > > > > mGraph
 
typedef boost::property_map< mGraph, boost::edge_capacity_t >::type CapacityMap
 
typedef boost::property_map< mGraph, boost::edge_reverse_t >::type ReverseEdgeMap
 
typedef Traits::vertex_descriptor VertexDescriptor
 
typedef boost::graph_traits< mGraph >::edge_descriptor EdgeDescriptor
 
typedef boost::graph_traits< mGraph >::out_edge_iterator OutEdgeIterator
 
typedef boost::graph_traits< mGraph >::vertex_iterator VertexIterator
 
typedef boost::property_map< mGraph, boost::edge_residual_capacity_t >::type ResidualCapacityMap
 
typedef boost::property_map< mGraph, boost::vertex_index_t >::type IndexMap
 
typedef boost::graph_traits< mGraph >::in_edge_iterator InEdgeIterator
 
typedef boost::shared_ptr< mGraphmGraphPtr
 
- Public Types inherited from pcl::PCLBase< PointT >
typedef pcl::PointCloud< PointTPointCloud
 
typedef PointCloud::Ptr PointCloudPtr
 
typedef PointCloud::ConstPtr PointCloudConstPtr
 
typedef boost::shared_ptr< PointIndicesPointIndicesPtr
 
typedef boost::shared_ptr< PointIndices const > PointIndicesConstPtr
 

Public Member Functions

 MinCutSegmentation ()
 Constructor that sets default values for member variables. More...
 
 ~MinCutSegmentation ()
 Destructor that frees memory. More...
 
void setInputCloud (const PointCloudConstPtr &cloud) override
 This method simply sets the input point cloud. More...
 
double getSigma () const
 Returns normalization value for binary potentials. More...
 
void setSigma (double sigma)
 Allows to set the normalization value for the binary potentials as described in the article. More...
 
double getRadius () const
 Returns radius to the background. More...
 
void setRadius (double radius)
 Allows to set the radius to the background. More...
 
double getSourceWeight () const
 Returns weight that every edge from the source point has. More...
 
void setSourceWeight (double weight)
 Allows to set weight for source edges. More...
 
KdTreePtr getSearchMethod () const
 Returns search method that is used for finding KNN. More...
 
void setSearchMethod (const KdTreePtr &tree)
 Allows to set search method for finding KNN. More...
 
unsigned int getNumberOfNeighbours () const
 Returns the number of neighbours to find. More...
 
void setNumberOfNeighbours (unsigned int neighbour_number)
 Allows to set the number of neighbours to find. More...
 
std::vector< PointT, Eigen::aligned_allocator< PointT > > getForegroundPoints () const
 Returns the points that must belong to foreground. More...
 
void setForegroundPoints (typename pcl::PointCloud< PointT >::Ptr foreground_points)
 Allows to specify points which are known to be the points of the object. More...
 
std::vector< PointT, Eigen::aligned_allocator< PointT > > getBackgroundPoints () const
 Returns the points that must belong to background. More...
 
void setBackgroundPoints (typename pcl::PointCloud< PointT >::Ptr background_points)
 Allows to specify points which are known to be the points of the background. More...
 
void extract (std::vector< pcl::PointIndices > &clusters)
 This method launches the segmentation algorithm and returns the clusters that were obtained during the segmentation. More...
 
double getMaxFlow () const
 Returns that flow value that was calculated during the segmentation. More...
 
mGraphPtr getGraph () const
 Returns the graph that was build for finding the minimum cut. More...
 
pcl::PointCloud< pcl::PointXYZRGB >::Ptr getColoredCloud ()
 Returns the colored cloud. More...
 
- Public Member Functions inherited from pcl::PCLBase< PointT >
 PCLBase ()
 Empty constructor. More...
 
 PCLBase (const PCLBase &base)
 Copy constructor. More...
 
virtual ~PCLBase ()
 Destructor. 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 (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)
 Set the indices for the points laying within an interest region of the point cloud. More...
 
IndicesPtr const 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 PointToperator[] (size_t pos) const
 Override PointCloud operator[] to shorten code. More...
 

Protected Member Functions

bool buildGraph ()
 This method simply builds the graph that will be used during the segmentation. More...
 
void calculateUnaryPotential (int point, double &source_weight, double &sink_weight) const
 Returns unary potential(data cost) for the given point index. More...
 
bool addEdge (int source, int target, double weight)
 This method simply adds the edge from the source point to the target point with a given weight. More...
 
double calculateBinaryPotential (int source, int target) const
 Returns the binary potential(smooth cost) for the given indices of points. More...
 
bool recalculateUnaryPotentials ()
 This method recalculates unary potentials(data cost) if some changes were made, instead of creating new graph. More...
 
bool recalculateBinaryPotentials ()
 This method recalculates binary potentials(smooth cost) if some changes were made, instead of creating new graph. More...
 
void assembleLabels (ResidualCapacityMap &residual_capacity)
 This method analyzes the residual network and assigns a label to every point in the cloud. More...
 
- 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

double inverse_sigma_
 Stores the sigma coefficient. More...
 
bool binary_potentials_are_valid_
 Signalizes if the binary potentials are valid. More...
 
double epsilon_
 Used for comparison of the floating point numbers. More...
 
double radius_
 Stores the distance to the background. More...
 
bool unary_potentials_are_valid_
 Signalizes if the unary potentials are valid. More...
 
double source_weight_
 Stores the weight for every edge that comes from source point. More...
 
KdTreePtr search_
 Stores the search method that will be used for finding K nearest neighbors. More...
 
unsigned int number_of_neighbours_
 Stores the number of neighbors to find. More...
 
bool graph_is_valid_
 Signalizes if the graph is valid. More...
 
std::vector< PointT, Eigen::aligned_allocator< PointT > > foreground_points_
 Stores the points that are known to be in the foreground. More...
 
std::vector< PointT, Eigen::aligned_allocator< PointT > > background_points_
 Stores the points that are known to be in the background. More...
 
std::vector< pcl::PointIndicesclusters_
 After the segmentation it will contain the segments. More...
 
mGraphPtr graph_
 Stores the graph for finding the maximum flow. More...
 
boost::shared_ptr< CapacityMapcapacity_
 Stores the capacity of every edge in the graph. More...
 
boost::shared_ptr< ReverseEdgeMapreverse_edges_
 Stores reverse edges for every edge in the graph. More...
 
std::vector< VertexDescriptorvertices_
 Stores the vertices of the graph. More...
 
std::vector< std::set< int > > edge_marker_
 Stores the information about the edges that were added to the graph. More...
 
VertexDescriptor source_
 Stores the vertex that serves as source. More...
 
VertexDescriptor sink_
 Stores the vertex that serves as sink. More...
 
double max_flow_
 Stores the maximum flow value that was calculated during the segmentation. 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...
 

Detailed Description

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

This class implements the segmentation algorithm based on minimal cut of the graph.

The description can be found in the article: "Min-Cut Based Segmentation of Point Clouds"

Author
: Aleksey Golovinskiy and Thomas Funkhouser.

Definition at line 57 of file min_cut_segmentation.h.

Member Typedef Documentation

template<typename PointT>
typedef boost::property_map< mGraph, boost::edge_capacity_t >::type pcl::MinCutSegmentation< PointT >::CapacityMap

Definition at line 85 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::graph_traits< mGraph >::edge_descriptor pcl::MinCutSegmentation< PointT >::EdgeDescriptor

Definition at line 91 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::property_map< mGraph, boost::vertex_index_t >::type pcl::MinCutSegmentation< PointT >::IndexMap

Definition at line 99 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::graph_traits< mGraph >::in_edge_iterator pcl::MinCutSegmentation< PointT >::InEdgeIterator

Definition at line 101 of file min_cut_segmentation.h.

template<typename PointT>
typedef pcl::search::Search<PointT> pcl::MinCutSegmentation< PointT >::KdTree

Definition at line 61 of file min_cut_segmentation.h.

template<typename PointT>
typedef KdTree::Ptr pcl::MinCutSegmentation< PointT >::KdTreePtr

Definition at line 62 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS, boost::property< boost::vertex_name_t, std::string, boost::property< boost::vertex_index_t, long, boost::property< boost::vertex_color_t, boost::default_color_type, boost::property< boost::vertex_distance_t, long, boost::property< boost::vertex_predecessor_t, Traits::edge_descriptor > > > > >, boost::property< boost::edge_capacity_t, double, boost::property< boost::edge_residual_capacity_t, double, boost::property< boost::edge_reverse_t, Traits::edge_descriptor > > > > pcl::MinCutSegmentation< PointT >::mGraph

Definition at line 83 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::shared_ptr<mGraph> pcl::MinCutSegmentation< PointT >::mGraphPtr

Definition at line 103 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::graph_traits< mGraph >::out_edge_iterator pcl::MinCutSegmentation< PointT >::OutEdgeIterator

Definition at line 93 of file min_cut_segmentation.h.

template<typename PointT>
typedef pcl::PointCloud< PointT > pcl::MinCutSegmentation< PointT >::PointCloud

Definition at line 63 of file min_cut_segmentation.h.

Definition at line 64 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::property_map< mGraph, boost::edge_residual_capacity_t >::type pcl::MinCutSegmentation< PointT >::ResidualCapacityMap

Definition at line 97 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::property_map< mGraph, boost::edge_reverse_t>::type pcl::MinCutSegmentation< PointT >::ReverseEdgeMap

Definition at line 87 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::adjacency_list_traits< boost::vecS, boost::vecS, boost::directedS > pcl::MinCutSegmentation< PointT >::Traits

Definition at line 73 of file min_cut_segmentation.h.

template<typename PointT>
typedef Traits::vertex_descriptor pcl::MinCutSegmentation< PointT >::VertexDescriptor

Definition at line 89 of file min_cut_segmentation.h.

template<typename PointT>
typedef boost::graph_traits< mGraph >::vertex_iterator pcl::MinCutSegmentation< PointT >::VertexIterator

Definition at line 95 of file min_cut_segmentation.h.

Constructor & Destructor Documentation

template<typename PointT >
pcl::MinCutSegmentation< PointT >::MinCutSegmentation ( )

Constructor that sets default values for member variables.

Definition at line 51 of file min_cut_segmentation.hpp.

template<typename PointT >
pcl::MinCutSegmentation< PointT >::~MinCutSegmentation ( )

Member Function Documentation

template<typename PointT >
bool pcl::MinCutSegmentation< PointT >::addEdge ( int  source,
int  target,
double  weight 
)
protected

This method simply adds the edge from the source point to the target point with a given weight.

Parameters
[in]sourceindex of the source point of the edge
[in]targetindex of the target point of the edge
[in]weightweight that will be assigned to the (source, target) edge

Definition at line 435 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::edge_marker_, pcl::MinCutSegmentation< PointT >::graph_, and pcl::MinCutSegmentation< PointT >::vertices_.

Referenced by pcl::MinCutSegmentation< PointT >::buildGraph().

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::assembleLabels ( ResidualCapacityMap residual_capacity)
protected

This method analyzes the residual network and assigns a label to every point in the cloud.

Parameters
[in]residual_capacityresidual network that was obtained during the segmentation

Definition at line 548 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::clusters_, pcl::MinCutSegmentation< PointT >::epsilon_, pcl::MinCutSegmentation< PointT >::graph_, pcl::PCLBase< PointT >::indices_, pcl::PCLBase< PointT >::input_, and pcl::MinCutSegmentation< PointT >::source_.

Referenced by pcl::MinCutSegmentation< PointT >::extract().

template<typename PointT >
bool pcl::MinCutSegmentation< PointT >::buildGraph ( )
protected
template<typename PointT >
double pcl::MinCutSegmentation< PointT >::calculateBinaryPotential ( int  source,
int  target 
) const
protected

Returns the binary potential(smooth cost) for the given indices of points.

In other words it returns weight that must be assigned to the edge from source to target point.

Parameters
[in]sourceindex of the source point of the edge
[in]targetindex of the target point of the edge

Definition at line 461 of file min_cut_segmentation.hpp.

References pcl::PCLBase< PointT >::input_, and pcl::MinCutSegmentation< PointT >::inverse_sigma_.

Referenced by pcl::MinCutSegmentation< PointT >::buildGraph(), and pcl::MinCutSegmentation< PointT >::recalculateBinaryPotentials().

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::calculateUnaryPotential ( int  point,
double &  source_weight,
double &  sink_weight 
) const
protected

Returns unary potential(data cost) for the given point index.

In other words it calculates weights for (source, point) and (point, sink) edges.

Parameters
[in]pointindex of the point for which weights will be calculated
[out]source_weightcalculated weight for the (source, point) edge
[out]sink_weightcalculated weight for the (point, sink) edge

Definition at line 375 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::foreground_points_, pcl::PCLBase< PointT >::input_, pcl::MinCutSegmentation< PointT >::radius_, and pcl::MinCutSegmentation< PointT >::source_weight_.

Referenced by pcl::MinCutSegmentation< PointT >::buildGraph(), and pcl::MinCutSegmentation< PointT >::recalculateUnaryPotentials().

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::extract ( std::vector< pcl::PointIndices > &  clusters)
template<typename PointT >
std::vector< PointT, Eigen::aligned_allocator< PointT > > pcl::MinCutSegmentation< PointT >::getBackgroundPoints ( ) const

Returns the points that must belong to background.

Definition at line 205 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::background_points_.

template<typename PointT >
pcl::PointCloud< pcl::PointXYZRGB >::Ptr pcl::MinCutSegmentation< PointT >::getColoredCloud ( )
template<typename PointT >
std::vector< PointT, Eigen::aligned_allocator< PointT > > pcl::MinCutSegmentation< PointT >::getForegroundPoints ( ) const

Returns the points that must belong to foreground.

Definition at line 186 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::foreground_points_.

template<typename PointT >
pcl::MinCutSegmentation< PointT >::mGraphPtr pcl::MinCutSegmentation< PointT >::getGraph ( ) const

Returns the graph that was build for finding the minimum cut.

Definition at line 303 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::graph_.

template<typename PointT >
double pcl::MinCutSegmentation< PointT >::getMaxFlow ( ) const

Returns that flow value that was calculated during the segmentation.

Definition at line 296 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::max_flow_.

template<typename PointT >
unsigned int pcl::MinCutSegmentation< PointT >::getNumberOfNeighbours ( ) const

Returns the number of neighbours to find.

Definition at line 166 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::number_of_neighbours_.

template<typename PointT >
double pcl::MinCutSegmentation< PointT >::getRadius ( ) const

Returns radius to the background.

Definition at line 116 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::radius_.

template<typename PointT >
pcl::MinCutSegmentation< PointT >::KdTreePtr pcl::MinCutSegmentation< PointT >::getSearchMethod ( ) const

Returns search method that is used for finding KNN.

The graph is build such way that it contains the edges that connect point and its KNN.

Definition at line 152 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::search_.

template<typename PointT >
double pcl::MinCutSegmentation< PointT >::getSigma ( ) const

Returns normalization value for binary potentials.

For more information see the article.

Definition at line 98 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::inverse_sigma_.

template<typename PointT >
double pcl::MinCutSegmentation< PointT >::getSourceWeight ( ) const

Returns weight that every edge from the source point has.

Definition at line 134 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::source_weight_.

template<typename PointT >
bool pcl::MinCutSegmentation< PointT >::recalculateBinaryPotentials ( )
protected
template<typename PointT >
bool pcl::MinCutSegmentation< PointT >::recalculateUnaryPotentials ( )
protected

This method recalculates unary potentials(data cost) if some changes were made, instead of creating new graph.

Definition at line 476 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::calculateUnaryPotential(), pcl::MinCutSegmentation< PointT >::graph_, pcl::MinCutSegmentation< PointT >::sink_, and pcl::MinCutSegmentation< PointT >::source_.

Referenced by pcl::MinCutSegmentation< PointT >::extract().

template<typename PointT>
void pcl::MinCutSegmentation< PointT >::setBackgroundPoints ( typename pcl::PointCloud< PointT >::Ptr  background_points)

Allows to specify points which are known to be the points of the background.

Parameters
[in]background_pointspoint cloud that contains background points.

Definition at line 212 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::background_points_, pcl::PointCloud< PointT >::points, and pcl::MinCutSegmentation< PointT >::unary_potentials_are_valid_.

template<typename PointT>
void pcl::MinCutSegmentation< PointT >::setForegroundPoints ( typename pcl::PointCloud< PointT >::Ptr  foreground_points)

Allows to specify points which are known to be the points of the object.

Parameters
[in]foreground_pointspoint cloud that contains foreground points. At least one point must be specified.

Definition at line 193 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::foreground_points_, pcl::PointCloud< PointT >::points, and pcl::MinCutSegmentation< PointT >::unary_potentials_are_valid_.

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::setInputCloud ( const PointCloudConstPtr cloud)
overridevirtual

This method simply sets the input point cloud.

Parameters
[in]cloudthe const boost shared pointer to a PointCloud

Reimplemented from pcl::PCLBase< PointT >.

Definition at line 88 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::binary_potentials_are_valid_, pcl::MinCutSegmentation< PointT >::graph_is_valid_, pcl::PCLBase< PointT >::input_, and pcl::MinCutSegmentation< PointT >::unary_potentials_are_valid_.

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::setNumberOfNeighbours ( unsigned int  neighbour_number)
template<typename PointT >
void pcl::MinCutSegmentation< PointT >::setRadius ( double  radius)

Allows to set the radius to the background.

Parameters
[in]radiusnew radius to the background

Definition at line 123 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::epsilon_, pcl::MinCutSegmentation< PointT >::radius_, and pcl::MinCutSegmentation< PointT >::unary_potentials_are_valid_.

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::setSearchMethod ( const KdTreePtr tree)

Allows to set search method for finding KNN.

The graph is build such way that it contains the edges that connect point and its KNN.

Parameters
[in]searchsearch method that will be used for finding KNN.

Definition at line 159 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::search_.

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::setSigma ( double  sigma)

Allows to set the normalization value for the binary potentials as described in the article.

Parameters
[in]sigmanew normalization value

Definition at line 105 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::binary_potentials_are_valid_, pcl::MinCutSegmentation< PointT >::epsilon_, and pcl::MinCutSegmentation< PointT >::inverse_sigma_.

template<typename PointT >
void pcl::MinCutSegmentation< PointT >::setSourceWeight ( double  weight)

Allows to set weight for source edges.

Every edge that comes from the source point will have that weight.

Parameters
[in]weightnew weight

Definition at line 141 of file min_cut_segmentation.hpp.

References pcl::MinCutSegmentation< PointT >::epsilon_, pcl::MinCutSegmentation< PointT >::source_weight_, and pcl::MinCutSegmentation< PointT >::unary_potentials_are_valid_.

Member Data Documentation

template<typename PointT>
std::vector<PointT, Eigen::aligned_allocator<PointT> > pcl::MinCutSegmentation< PointT >::background_points_
protected
template<typename PointT>
bool pcl::MinCutSegmentation< PointT >::binary_potentials_are_valid_
protected
template<typename PointT>
boost::shared_ptr<CapacityMap> pcl::MinCutSegmentation< PointT >::capacity_
protected

Stores the capacity of every edge in the graph.

Definition at line 300 of file min_cut_segmentation.h.

Referenced by pcl::MinCutSegmentation< PointT >::buildGraph(), and pcl::MinCutSegmentation< PointT >::recalculateBinaryPotentials().

template<typename PointT>
std::vector<pcl::PointIndices> pcl::MinCutSegmentation< PointT >::clusters_
protected
template<typename PointT>
std::vector< std::set<int> > pcl::MinCutSegmentation< PointT >::edge_marker_
protected

Stores the information about the edges that were added to the graph.

It is used to avoid the duplicate edges.

Definition at line 309 of file min_cut_segmentation.h.

Referenced by pcl::MinCutSegmentation< PointT >::addEdge(), pcl::MinCutSegmentation< PointT >::buildGraph(), and pcl::MinCutSegmentation< PointT >::~MinCutSegmentation().

template<typename PointT>
double pcl::MinCutSegmentation< PointT >::epsilon_
protected
template<typename PointT>
std::vector<PointT, Eigen::aligned_allocator<PointT> > pcl::MinCutSegmentation< PointT >::foreground_points_
protected
template<typename PointT>
mGraphPtr pcl::MinCutSegmentation< PointT >::graph_
protected
template<typename PointT>
bool pcl::MinCutSegmentation< PointT >::graph_is_valid_
protected
template<typename PointT>
double pcl::MinCutSegmentation< PointT >::inverse_sigma_
protected

Stores the sigma coefficient.

It is used for finding smooth costs. More information can be found in the article.

Definition at line 261 of file min_cut_segmentation.h.

Referenced by pcl::MinCutSegmentation< PointT >::calculateBinaryPotential(), pcl::MinCutSegmentation< PointT >::getSigma(), and pcl::MinCutSegmentation< PointT >::setSigma().

template<typename PointT>
double pcl::MinCutSegmentation< PointT >::max_flow_
protected

Stores the maximum flow value that was calculated during the segmentation.

Definition at line 318 of file min_cut_segmentation.h.

Referenced by pcl::MinCutSegmentation< PointT >::extract(), and pcl::MinCutSegmentation< PointT >::getMaxFlow().

template<typename PointT>
unsigned int pcl::MinCutSegmentation< PointT >::number_of_neighbours_
protected
template<typename PointT>
double pcl::MinCutSegmentation< PointT >::radius_
protected
template<typename PointT>
boost::shared_ptr<ReverseEdgeMap> pcl::MinCutSegmentation< PointT >::reverse_edges_
protected

Stores reverse edges for every edge in the graph.

Definition at line 303 of file min_cut_segmentation.h.

Referenced by pcl::MinCutSegmentation< PointT >::buildGraph().

template<typename PointT>
KdTreePtr pcl::MinCutSegmentation< PointT >::search_
protected

Stores the search method that will be used for finding K nearest neighbors.

Neighbours are used for building the graph.

Definition at line 279 of file min_cut_segmentation.h.

Referenced by pcl::MinCutSegmentation< PointT >::buildGraph(), pcl::MinCutSegmentation< PointT >::getSearchMethod(), and pcl::MinCutSegmentation< PointT >::setSearchMethod().

template<typename PointT>
VertexDescriptor pcl::MinCutSegmentation< PointT >::sink_
protected
template<typename PointT>
VertexDescriptor pcl::MinCutSegmentation< PointT >::source_
protected
template<typename PointT>
double pcl::MinCutSegmentation< PointT >::source_weight_
protected
template<typename PointT>
bool pcl::MinCutSegmentation< PointT >::unary_potentials_are_valid_
protected
template<typename PointT>
std::vector< VertexDescriptor > pcl::MinCutSegmentation< PointT >::vertices_
protected

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