Spec-Zone.ru › PointCloudLibrary
Реализация алгоритма максимального потока Бойкова и Колмогорова в boost не поддерживает отрицательные потоки, поэтому она не подходит для данного контекста. Подробнее...
#include <pcl/segmentation/grabcut_segmentation.h >
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
Реализация алгоритма максимального потока Бойкова и Колмогорова в boost не поддерживает отрицательные потоки, поэтому она не подходит для данного контекста.
Однако реализация алгоритма максимального потока Бойкова и Колмогорова, созданная Stephen Gould в DARWIN под лицензией BSD, справляется с этой задачей, хотя работает медленнее исходной реализации. steph.nosp@m. en.g.nosp@m. ould@.nosp@m. anu..nosp@m. edu.a.nosp@m. u
Определение в строке 63 файла grabcut_segmentation.h .
capacitated_edge edge_capacity_type edge_pair vertex_descriptor nodestate BoykovKolmogorov() pcl::segmentation::grabcut::BoykovKolmogorov::BoykovKolmogorov ( std::size_t
max_nodes = 0
)
создать задачу максимального потока/минимального разреза с оценочным значением max_nodes
~BoykovKolmogorov() virtual pcl::segmentation::grabcut::BoykovKolmogorov::~BoykovKolmogorov (
)
virtual default
addConstant() void pcl::segmentation::grabcut::BoykovKolmogorov::addConstant ( double c
)
inline
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() isActive() bool pcl::segmentation::grabcut::BoykovKolmogorov::isActive ( int u
) const
inline protected
isActiveSetEmpty() bool pcl::segmentation::grabcut::BoykovKolmogorov::isActiveSetEmpty (
) const
inline protected
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
operator()() double pcl::segmentation::grabcut::BoykovKolmogorov::operator() ( int
u , int
v )
const
возвращает остаточную пропускную способность ребра (используйте -1 для терминала; (-1,-1) — текущий поток)
preAugmentPaths() void pcl::segmentation::grabcut::BoykovKolmogorov::preAugmentPaths (
)
предварительно увеличить поток по путям s-u-t и s-u-v-t
reset() void pcl::segmentation::grabcut::BoykovKolmogorov::reset (
)
сбросить пропускную способность всех рёбер до нуля (граф при этом не освобождается)
solve() double pcl::segmentation::grabcut::BoykovKolmogorov::solve (
)
решить задачу о максимальном потоке и вернуть величину потока
cut_ std::vector<unsigned char> pcl::segmentation::grabcut::BoykovKolmogorov::cut_
protected
flow_value_ double pcl::segmentation::grabcut::BoykovKolmogorov::flow_value_ {0.0}
protected
nodes_ std::vector<capacitated_edge > pcl::segmentation::grabcut::BoykovKolmogorov::nodes_
protected
source_edges_ std::vector<double> pcl::segmentation::grabcut::BoykovKolmogorov::source_edges_
protected
target_edges_ std::vector<double> pcl::segmentation::grabcut::BoykovKolmogorov::target_edges_
protected
Документация для этого класса создана на основе следующего файла: