Spec-Zone.ru › PointCloudLibrary

Реализация алгоритма максимального потока Бойкова и Коломногорова в библиотеке boost не поддерживает отрицательные потоки, что делает ее непригодной для данного контекста. Подробнее...

#include <pcl/segmentation/grabcut_segmentation.h>

Общедоступные типы

using vertex_descriptor = int
using edge_capacity_type = double

Общедоступные члены-функции

BoykovKolmogorov (std::size_t max_nodes=0)
построение задачи максимального потока/минимального разреза с оценкой max_nodes Подробнее...
virtual ~BoykovKolmogorov ()=default
деструктор Подробнее...
std::size_t numNodes () const
получить число узлов в графе Подробнее...
void reset ()
сбросить все емкости ребер в ноль (но не освободить граф) Подробнее...
void clear ()
очистить граф и внутренние структуры данных Подробнее...
int addNodes (std::size_t n=1)
добавить узлы в граф (возвращает идентификатор первого добавленного узла) Подробнее...
void addConstant (double c)
добавить постоянный поток в граф Подробнее...
void addSourceEdge (int u, double cap)
добавить ребро из s в nodeId Подробнее...
void addTargetEdge (int u, double cap)
добавить ребро из nodeId в t Подробнее...
void addEdge (int u, int v, double cap_uv, double cap_vu=0.0)
добавить ребро из u в v и ребро из v в u (требуется cap_uv + cap_vu >= 0) Подробнее...
double solve ()
решение задачи максимального потока и возврат потока Подробнее...
bool inSourceTree (int u) const
возвращает true, если u находится в множестве s после вызова solve. Подробнее...
bool inSinkTree (int u) const
возвращает true, если u находится в множестве t после вызова solve Подробнее...
double operator() (int u, int v) const
возвращает остаточную пропускную способность для ребра (использовать -1 для терминала (-1,-1) - текущий поток Подробнее...
double getSourceEdgeCapacity (int u) const
double getTargetEdgeCapacity (int u) const

Защищенные типы

перечисление nodestate { FREE = 0x00 , SOURCE = 0x01 , TARGET = 0x02 }
состояния дерева Подробнее...
используя capacitated_edge = std::map< int, double >
емкостный край Подробнее...
используя edge_pair = std::pair< capacitated_edge::iterator, capacitated_edge::iterator >
пара краев Подробнее...

Защищенные члены-функции

void preAugmentPaths ()
предварительно увеличивающие пути s-u-t и s-u-v-t Подробнее...
void initializeTrees ()
инициализировать деревья из источника и цели Подробнее...
std::pair< int, int > expandTrees ()
расширить деревья до тех пор, пока не будет найден путь (или нет пути (-1, -1)) Подробнее...
void augmentPath (const std::pair< int, int > &path, std::deque< int > &orphans)
увеличить найденный путь expandTrees; вернуть поддеревья-сироты Подробнее...
void adoptOrphans (std::deque< int > &orphans)
усыновить поддеревья-сироты Подробнее...
void clearActive ()
очистить активный набор Подробнее...
bool isActiveSetEmpty () const
bool isActive (int u) const
активный, если головной или предыдущий узел не является терминалом Подробнее...
void markActive (int u)
пометить вершину как активную Подробнее...
void markInactive (int u)
пометить вершину как неактивную Подробнее...

Защищенные атрибуты

std::vector< double > source_edges_
ребра, выходящие из источника Подробнее...
std::vector< double > target_edges_
ребра, входящие в цель Подробнее...
std::vector< capacitated_edge > nodes_
узлы и их исходящие внутренние ребра Подробнее...
double flow_value_
текущее значение потока (включает константу) Подробнее...
std::vector< unsigned char > cut_
определяет, на какой стороне разреза находится узел Подробнее...

Подробное описание

реализация boost алгоритма максимального потока Бойкова и Коломногорова не поддерживает отрицательные потоки, что делает ее неприемлемой в этом контексте.

Эта реализация алгоритма максимального потока Бойкова и Коломногорова Стивена Гоулда steph.nosp@m.en.g.nosp@m.ould@.nosp@m.anu..nosp@m.edu.a.nosp@m.u в DARWIN под BSD выполняет задачу, однако медленнее, чем исходная реализация.

Определение в строке 63 файла grabcut_segmentation.h.

Документация по переопределению типа члена

capacitated_edge

using pcl::segmentation::grabcut::BoykovKolmogorov::capacitated_edge = std::map<int, double>
protected

емкость ребра

Определение в строке 121 файла grabcut_segmentation.h.

edge_capacity_type

using pcl::segmentation::grabcut::BoykovKolmogorov::edge_capacity_type = double

Определение в строке 67 файла grabcut_segmentation.h.

edge_pair

using pcl::segmentation::grabcut::BoykovKolmogorov::edge_pair = std::pair<capacitated_edge::iterator, capacitated_edge::iterator>
protected

пара ребер

Определение в строке 123 файла grabcut_segmentation.h.

vertex_descriptor

using pcl::segmentation::grabcut::BoykovKolmogorov::vertex_descriptor = int

Определение в строке 66 файла grabcut_segmentation.h.

Документация по перечислению членов

nodestate

enum pcl::segmentation::grabcut::BoykovKolmogorov::nodestate
protected

состояния дерева

Перечисление
FREE
SOURCE
TARGET

Определение в строке 119 файла grabcut_segmentation.h.

Конструктор и деструктор

BoykovKolmogorov()

pcl::segmentation::grabcut::BoykovKolmogorov::BoykovKolmogorov ( std::size_t max_nodes = 0 )

создает задачу maxflow/mincut с оценкой max_nodes

~BoykovKolmogorov()

virtual pcl::segmentation::grabcut::BoykovKolmogorov::~BoykovKolmogorov ( )
virtualdefault

деструктор

Документация по функции члена

addConstant()

void pcl::segmentation::grabcut::BoykovKolmogorov::addConstant ( double c )
inline

добавляет постоянный поток в граф

Определение в строке 87 файла grabcut_segmentation.h.

addEdge()

void pcl::segmentation::grabcut::BoykovKolmogorov::addEdge ( int u,
int v,
double cap_uv,
double cap_vu = 0.0
)

добавить ребро из u в v и ребро из v в u (требуется cap_uv + cap_vu >= 0)

addNodes()

int pcl::segmentation::grabcut::BoykovKolmogorov::addNodes ( std::size_t n = 1 )

добавить узлы в граф (возвращает идентификатор первого добавленного узла)

addSourceEdge()

void pcl::segmentation::grabcut::BoykovKolmogorov::addSourceEdge ( int u,
double cap
)

добавить ребро из s в nodeId

addTargetEdge()

void pcl::segmentation::grabcut::BoykovKolmogorov::addTargetEdge ( int u,
double cap
)

добавить ребро из nodeId в t

adoptOrphans()

void pcl::segmentation::grabcut::BoykovKolmogorov::adoptOrphans ( std::deque< int > & orphans )
protected

усыновить сироты

augmentPath()

void pcl::segmentation::grabcut::BoykovKolmogorov::augmentPath ( const std::pair< int, int > & path,
std::deque< int > & orphans
)
protected

увеличить путь, найденный функцией expandTrees; вернуть осиротевшие поддеревья

clear()

void pcl::segmentation::grabcut::BoykovKolmogorov::clear ( )

очистить граф и внутренние структуры данных

clearActive()

void pcl::segmentation::grabcut::BoykovKolmogorov::clearActive ( )
protected

очистить активный набор

expandTrees()

std::pair<int, int> pcl::segmentation::grabcut::BoykovKolmogorov::expandTrees ( )
protected

расширить деревья до тех пор, пока не будет найден путь (или нет пути (-1, -1))

getSourceEdgeCapacity()

double pcl::segmentation::grabcut::BoykovKolmogorov::getSourceEdgeCapacity ( int u ) const

getTargetEdgeCapacity()

double pcl::segmentation::grabcut::BoykovKolmogorov::getTargetEdgeCapacity ( int u ) const

initializeTrees()

void pcl::segmentation::grabcut::BoykovKolmogorov::initializeTrees ( )
protected

инициализировать деревья из источника и приемника

inSinkTree()

bool pcl::segmentation::grabcut::BoykovKolmogorov::inSinkTree ( int u ) const
inline

возвращает true, если u находится в множестве t после вызова solve

Определение в строке 106 файла grabcut_segmentation.h.

inSourceTree()

bool pcl::segmentation::grabcut::BoykovKolmogorov::inSourceTree ( int u ) const
inline

возвращает true, если u находится в множестве s после вызова solve.

Определение в строке 103 файла grabcut_segmentation.h.

Используется в pcl::GrabCut< PointT >::isSource().

isActive()

bool pcl::segmentation::grabcut::BoykovKolmogorov::isActive ( int u ) const
inlineprotected

активен, если головной узел или предыдущий узел не являются терминалом

Определение в строке 146 файла grabcut_segmentation.h.

isActiveSetEmpty()

bool pcl::segmentation::grabcut::BoykovKolmogorov::isActiveSetEmpty ( ) const
inlineprotected
Возвращает
true, если активный набор пуст

Определение в строке 143 файла grabcut_segmentation.h.

markActive()

void pcl::segmentation::grabcut::BoykovKolmogorov::markActive ( int u )
protected

пометить вершину как активную

markInactive()

void pcl::segmentation::grabcut::BoykovKolmogorov::markInactive ( int u )
protected

пометить вершину как неактивную

numNodes()

std::size_t pcl::segmentation::grabcut::BoykovKolmogorov::numNodes ( ) const
inline

получить количество узлов в графе

Определение в строке 75 файла grabcut_segmentation.h.

operator()()

double pcl::segmentation::grabcut::BoykovKolmogorov::operator() ( int u,
int v
) const

возвращает остаточную пропускную способность для ребра (используйте -1 для терминала (-1,-1) - текущий поток

preAugmentPaths()

void pcl::segmentation::grabcut::BoykovKolmogorov::preAugmentPaths ( )
protected

предварительно увеличивает пути s-u-t и s-u-v-t

reset()

void pcl::segmentation::grabcut::BoykovKolmogorov::reset ( )

сбросить все емкости ребер на ноль (но не освобождать граф)

solve()

double pcl::segmentation::grabcut::BoykovKolmogorov::solve ( )

решить задачу максимального потока и вернуть поток

Member Data Documentation

cut_

std::vector<unsigned char> pcl::segmentation::grabcut::BoykovKolmogorov::cut_
protected

определяет, на какой стороне разбиения находится узел

Определение в строке 162 файла grabcut_segmentation.h.

flow_value_

double pcl::segmentation::grabcut::BoykovKolmogorov::flow_value_
protected

текущее значение потока (включает константу)

Определение в строке 160 файла grabcut_segmentation.h.

nodes_

std::vector<capacitated_edge> pcl::segmentation::grabcut::BoykovKolmogorov::nodes_
protected

узлы и их исходящие внутренние ребра

Определение в строке 158 файла grabcut_segmentation.h.

source_edges_

std::vector<double> pcl::segmentation::grabcut::BoykovKolmogorov::source_edges_
protected

ребра, выходящие из источника

Определение в строке 154 файла grabcut_segmentation.h.

target_edges_

std::vector<double> pcl::segmentation::grabcut::BoykovKolmogorov::target_edges_
protected

ребра, входящие в цель

Определение в строке 156 файла grabcut_segmentation.h.


The documentation for this class was generated from the following file:
  • pcl/segmentation/grabcut_segmentation.h

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1segmentation_1_1grabcut_1_1_boykov_kolmogorov.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API