Alpha Expansion Library
C++ library for the Alpha-Expansion graph-cut algorithm with Python bindings
Loading...
Searching...
No Matches
MaxFlowSolver.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
14template <typename T>
16public:
17 virtual ~MaxFlowSolver() = default;
18
20 typedef int Var;
21
23 virtual Var add_variable() = 0;
24
27 virtual void add_constant(T E) = 0;
28
33 virtual void add_term1(Var x, T E0, T E1) = 0;
34
44 virtual void add_term2(Var x, Var y, T E00, T E01, T E10, T E11) = 0;
45
47 virtual T minimize() = 0;
48
50 virtual int get_var(Var x) = 0;
51};
Abstract interface for a binary max-flow / QPBO solver.
Definition MaxFlowSolver.hpp:15
virtual void add_constant(T E)=0
Adds a constant term to the energy function.
virtual Var add_variable()=0
Introduces a new binary variable and returns its handle.
virtual void add_term1(Var x, T E0, T E1)=0
Adds a unary term E(x) where x ∈ {0, 1}.
virtual T minimize()=0
Minimizes the energy and returns the minimum value.
int Var
Integer handle identifying a binary variable.
Definition MaxFlowSolver.hpp:20
virtual ~MaxFlowSolver()=default
virtual void add_term2(Var x, Var y, T E00, T E01, T E10, T E11)=0
Adds a pairwise term E(x, y) where x, y ∈ {0, 1}.
virtual int get_var(Var x)=0
Returns the optimal value of variable x (0 or 1) after minimize().