PImage img; size(600, 400); img = loadImage("robotmarko-g.jpg"); loadPixels(); img.loadPixels(); float c = 1.0 / 16.0; float[][] filter = {{ c, 2*c, c }, { 2*c, 4*c, 2*c }, { c, 2*c, c }}; for (int y = 1; y < img.height-1; y++) for (int x = 1; x < img.width-1; x++) { float response = 0; for (int ky = -1; ky <= 1; ky++) for (int kx = -1; kx <= 1; kx++) { int index = (y + ky) * img.width + (x + kx); float r = brightness(img.pixels[index]); response += filter[ky+1][kx+1] * r; } pixels[y*img.width + x] = color(response); } updatePixels();