Advertisement
ridjis

Sharpen

Apr 1st, 2015
434
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.image.BufferedImage;
  3.  
  4. public class Sharpen implements BaseFilter {
  5.     @Override
  6.     public BufferedImage process(BufferedImage source) {
  7.         BufferedImage img = new BufferedImage(source.getWidth(), source.getHeight(), BufferedImage.TYPE_INT_RGB);
  8.        
  9.         for (int x = 0; x < img.getWidth(); x++)
  10.             for (int y = 0; y < img.getHeight(); y++){
  11.                 img.setRGB(x, y, source.getRGB(x, y));
  12.             }
  13.        
  14.         double[][] table = {
  15.                 {0.0, -0.67, 0.0},
  16.                 {-0.67, 3.67, -0.67},
  17.                 {0.0, -0.67, 0.0}
  18.         };
  19.        
  20.         double sumRed = 0, sumGreen = 0, sumBlue = 0;
  21.        
  22.         for (int x = 1; x < source.getWidth() - 1; x++)
  23.             for (int y = 1; y < source.getHeight() - 1; y++) {
  24.                
  25.        
  26.                 for (int nx = -1; nx <= 1; nx++)
  27.                     for (int ny = -1; ny <= 1; ny++) {
  28.                         double t = table[nx + 1][ny + 1];
  29.                        
  30.                         Color c = new Color(source.getRGB(x + nx, y + ny));
  31.                        
  32.                         sumRed   += t * c.getRed();
  33.                         sumGreen += t * c.getGreen();
  34.                         sumBlue  += t * c.getBlue();
  35.                     }
  36.                    
  37.                 int red   = norm((int) sumRed);
  38.                 int green = norm((int) sumGreen);
  39.                 int blue  = norm((int) sumBlue);
  40.                
  41.                 Color boja = new Color(red, green, blue);
  42.                
  43.                 img.setRGB(x, y, boja.getRGB());
  44.         }
  45.        
  46.         return img;
  47.     }
  48.    
  49.     public int norm(int x) {
  50.         if (x > 255)
  51.             return 255;
  52.         if (x < 0)
  53.             return 0;
  54.         return x;
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement