gpt4 book ai didi

python - 用 python : How to set up the graph correctly? 切割的图

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:24:37 25 4
gpt4 key购买 nike

我想在我的项目中对图像使用图形切割算法,我使用的是 python 2.7
我找到了 pymaxflow implementation ,但文档似乎不太清楚。我举个例子,这是我的 5*5 矩阵:

>>> A
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])

虚拟终端节点,S(source)和T(sink)应该分别用无穷大的弧连接到矩阵最左边和最右边列的所有像素.这是我想获得的:

Graph rapresentation to obtain

这是我获取它的代码,但它不起作用

left_most = concatenate((np.zeros((1, A.shape[0])), np.arange(A.shape[0]).reshape(1, A.shape[0]))).astype(np.uint64)
left_most = np.ravel_multi_index(left_most, A.shape)
right_most = concatenate((np.ones((1, A.shape[0])) * size(A, 1) - 1, np.arange(A.shape[0]).reshape(1, A.shape[0]))).astype(np.uint64)
right_most = np.ravel_multi_index(right_most, A.shape)
g.add_grid_tedges(left_most, np.ones(left_most.shape) * np.inf, np.zeros(left_most.shape))
g.add_grid_tedges(right_most, np.zeros(right_most.shape), np.ones(right_most.shape) * np.inf)

g.maxflow() 使 python 控制台陷入无限循环。我不确定我的实现:制作可用于图切割算法的正确图的方法是什么?

谢谢!

附言如果您知道其他库的解决方案,请告诉我,我们将不胜感激。

最佳答案

为了处理图形,我推荐使用 networkx 包。它具有许多功能,包括最大流量功能(附示例):

http://networkx.github.io/documentation/networkx-1.9.1/reference/generated/networkx.algorithms.flow.maximum_flow_value.html#networkx.algorithms.flow.maximum_flow_value

关于python - 用 python : How to set up the graph correctly? 切割的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com