Graph cuts的環境配置比較簡單,記錄下:
(1)準備下載好的源代碼:
包含的各類頭文件及cpp如下
(2)將上述文件拷貝到你的vs創建的工程下,如下:
(3)測試運行下是否成功:
使用下面的測試代碼:
#include <stdio.h>
#include "graph.h"
int main()
{
typedef Graph<int,int,int> GraphType;
GraphType *g = new GraphType(/*estimated # of nodes*/ 2, /*estimated # of edges*/ 1);
g -> add_node();
g -> add_node();
g -> add_tweights( 0, /* capacities */ 1, 5 );
g -> add_tweights( 1, /* capacities */ 2, 6 );
g -> add_edge( 0, 1, /* capacities */ 3, 4 );
int flow = g -> maxflow();
printf("Flow = %d\n", flow);
printf("Minimum cut:\n");
if (g->what_segment(0) == GraphType::SOURCE)
printf("node0 is in the SOURCE set\n");
else
printf("node0 is in the SINK set\n");
if (g->what_segment(1) == GraphType::SOURCE)
printf("node1 is in the SOURCE set\n");
else
printf("node1 is in the SINK set\n");
delete g;
return 0;
}
結果如下: