当我使用 BGL boykov_kolmogorov_max_flow() 函数时,我得到了奇怪的结果。我虽然会看到 2 个类(0-1 或其他任何东西,但只有 2 个!)但我经常看到三个类:0、1 和 4。
例如,使用下面的图像
- 来源:左边框的中间像素
- sink:右边框的中间像素
- 水平边缘成本 = 10 * e^(rightPixel / 50)
- 垂直边码 = 0.1。
我得到以下结果:
444444444444400000000000000000
444444444444440000000000000000
444444444444440000000000000000
444444444444440000000000000000
444444444444444000000000000000
444444444444444000000000000000
444444444444444000000000000000
444444444444444000000000000000
444444444444444000000000000000
444444444444444000000000000000
444444444444444411000000000000
444444444444444444000000000000
444444444444444444000000000000
444444444444444444000000000000
444444444441111111000000000000
444444444440000000000000000000
444444444440000000000000000000
444444444440000000000000000000
444444444440000000000000000000
444444444444000000000000000000
444444444444000000000000000000
444444444444100000000000000000
444444444444110000000000000000
444444444444110000000000000000
444444444444411000000000000000
444444444444444400000000000000
444444444444444400000000000000
444444444444444400000000000000
444444444444444400000000000000
444444444444444400000000000000
有人可以解释这些类的真正含义吗?我很确定 4 是源类,0 是接收器类,但是 1 呢?我在文档中一无所获。我认为这意味着一个“不确定”的水平区域,但为什么会这样呢?!?
第二个问题。1可靠吗?是否可以使用它们找到更平滑的边框,如下图所示?目标是选择一个绿色像素而不是右侧太远的红色像素。我的意思是,我知道在这种情况下我可以使用 1 来做到这一点,但是我可以相信他们在我需要的时候会在那里吗?:)
谢谢你的时间。