float[][] kernel = { { 1, 1, 1 },
{ 1, 0, 1 },
{ 1, 1, 1 } };
PImage img = loadImage("lena3.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]);
if (val == 0) {
for (int ky = -1; ky <= 1; ky++) {
for (int kx = -1; kx <= 1; kx++) {
int pos2 = (y + ky)*img.width + (x + kx);
float val2 = red(img.pixels[pos2]);
sum += kernel[ky+1][kx+1] * val2;
val = sum/8;
}
}
}
else if (val == 255) {
for (int ky = -1; ky <= 1; ky++) {
for (int kx = -1; kx <= 1; kx++) {
int pos2 = (y + ky)*img.width + (x + kx);
float val2 = red(img.pixels[pos2]);
sum += kernel[ky+1][kx+1] * val2;
val = sum/8;
}
}
}
edgeImg.pixels[y*img.width + x] = color(val);
}
}
edgeImg.updatePixels();
image(edgeImg, w, 0);
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}