我一直试图找到一些开源代码,这是Goldberg的推动和重新标记,或preflow-push,preflow-relabel来解决GENERAL图的图形切割。
我知道CUDA有npp GrabCut 2D示例代码,而且我也知道当每个像素都被视为一个节点时,nppiGraphCut()解决了2D平面的图形切割。但是,如果给出以下图形输入,我想要解决的问题:
源, 下沉, 节点数, 从节点, 到节点, 前向弧权重(从 - >到节点) 反向弧权重(从 - 节点到 - >) 源权重(源到非终端节点容量) 下沉权重(非终端节点下沉容量)
我在matlab中有这样的,以便给出如下图,其中源连接到节点< 1>< 2>< 3>。具有sourceWeights和节点< 1>< 2>< 3>使用sinkWeights连接到sink节点。同样,在容量之间存在节点,但仅在一个方向上连接(即,反向容量为0)。
<source>
&LT 1为卤素; - &GT; &LT 2 - ; - &GT; &LT 3的密度; - &GT; &LT 4是氢; - &GT; &LT; 5个 - &GT; &LT; 6个......
<sink>
这可以在nppGraphCut中用作一维数组(&lt; 1&gt;&lt; 1&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&gt;&gt;&gt;&gt;&gt;)来执行图形切割了吗?