使用堆栈进行泛洪填充
2022-09-04 07:31:39
我正在使用Java中的递归泛洪填充算法来填充图像的某些区域。对于非常小的图像,它工作正常,但是当de图像变大时,JVM会给我一个堆栈溢出错误。
这就是为什么我必须使用我自己的堆栈使用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;
}
谢谢!