public void doErosion() { Image img = canvas.getImgRecon(); int h = img.getHeight(); int w = img.getWidth(); int ero; int x,y; for (int i = 0; i < w; i++) { for (int j = 0; j < h; j++) { ero = Integer.MAX_VALUE; for (int k = -1; k < 2; k++) { for (int l = -1; l < 2; l++) { x = i + k; y = j + l; if (!(x >= 0 && x < w )) {x = i - k;} if (!(y >= 0 && y < h)) {y = j - l;} ero = Math.min(ero, img.getRGB(x,y)); } } img.setRGB(i, j, ero); } } }