相关疑难解决方法(0)

使用堆栈填充洪水

我在Java中使用递归Flood填充算法来填充图像的某些区域.使用非常小的图像可以正常工作,但是当de image变大时,JVM会给出Stack Over Flow Error.

这就是我必须使用我自己的堆栈使用Flood Fill重新实现该方法的原因.(我认为这是在这种情况下做到这一点的最好方法)

任何人都可以解释我如何编码吗?(如果你手边没有代码,算法的伪代码就可以了)

我在互联网上看了很多,但我还不太清楚.

编辑:我添加了我的递归代码

public void floodFill(int x, int y, Color targetColor,Color replacementColor) {

    if (img.getRGB(x, y) != targetColor.getRGB()) return;

    img.setRGB(x, y, replacementColor.getRGB());
    floodFill(x - 1, y, targetColor, replacementColor);
    floodFill(x + 1, y, targetColor, replacementColor);
    floodFill(x, y - 1, targetColor, replacementColor);
    floodFill(x, y + 1, targetColor, replacementColor);

    return;

}
Run Code Online (Sandbox Code Playgroud)

谢谢!

java image-manipulation flood-fill

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

flood-fill ×1

image-manipulation ×1

java ×1