Facebook
From Sole Motmot, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 280
  1. float[][] kernel = { { -1, -1, -1 },
  2.                      { -1,  9, -1 },
  3.                      { -1, -1, -1 } };
  4.  
  5.  
  6. PImage img = loadImage("house.jpg");
  7. int w = img.width;
  8. int h = img.height;
  9. size(2*w,h);
  10. image(img, 0, 0);
  11. img.loadPixels();
  12.  
  13. PImage edgeImg = createImage(img.width, img.height, RGB);
  14. for (int y = 1; y < img.height-1; y++) {
  15.   for (int x = 1; x < img.width-1; x++) {
  16.     float sum = 0;
  17.     for (int ky = -1; ky <= 1; ky++) {
  18.       for (int kx = -1; kx <= 1; kx++) {
  19.         int pos = (y + ky)*img.width + (x + kx);
  20.         float val = red(img.pixels[pos]);
  21.         sum += kernel[ky+1][kx+1] * val;
  22.       }
  23.     }
  24.  
  25.     edgeImg.pixels[y*img.width + x] = color(sum);
  26.   }
  27. }
  28. edgeImg.updatePixels();
  29. image(edgeImg, w, 0);