PImage img = loadImage("lena2.bmp"); int w = img.width; int h = img.height; size(2*w,h); image(img, 0, 0); img.loadPixels(); PImage edgeImg = createImage(img.width, img.height, RGB); for (int y = 1; y < img.height-1; y++) { for (int x = 1; x < img.width-1; x++) { float sum = 0; int pos = x + y*img.height; int pos_sasiad = (x+1) + y*img.height; float val = red(img.pixels[pos]); float val_sasiad = red(img.pixels[pos_sasiad]); float r = red(img.pixels[pos]); float g = green(img.pixels[pos]); float b = blue(img.pixels[pos]); float r_sasiad = red(img.pixels[pos_sasiad]); float g_sasiad = green(img.pixels[pos_sasiad]); float b_sasiad = blue(img.pixels[pos_sasiad]); if (val == 0) { r = r_sasiad; g = g_sasiad; b = b_sasiad; } else if (val == 255) { r = r_sasiad; g = g_sasiad; b = b_sasiad; } edgeImg.pixels[y*img.width + x] = color(r,g,b); } } edgeImg.updatePixels(); image(edgeImg, w, 0);