Tag: 图像操作

使用堆栈进行洪水填充

我在Java中使用recursionFlood填充algorithm来填充图像的某些区域。 对于非常小的图像,它可以正常工作,但是当图像变大时,JVM会给我一个堆栈溢出错误。 这就是为什么我必须用自己的堆栈使用洪水填充来重新实现该方法的原因。 (我读过这是在这种情况下做到这一点的最好方法) 任何人都可以解释我如何编码? (如果你手边没有代码,那么algorithm的伪代码就可以) 我在互联网上阅读了很多,但是我还没有很好的理解。 编辑:我添加了我的recursion代码 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; } 谢谢!