Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1.  
  2.     private BufferedImage NiblackAlgorithm(BufferedImage image) {
  3.         if (image != null) {
  4.             int windowSize = Integer.parseInt(windowSizeField.getText());
  5.             double k = Double.parseDouble(niblackParamField.getText());
  6.             System.out.println("" + windowSize + " " + k);
  7.             if (windowSize % 2 == 1) {
  8.                 for (int i = windowSize / 2; i < image.getWidth() - windowSize / 2; ++i) {
  9.                     for (int j = windowSize / 2; j < image.getHeight() - windowSize / 2; ++j) {
  10.  
  11.                         int[] h = new int[256];
  12.                         int[] blok = new int[windowSize * windowSize];
  13.                         for (int m = 0; m < windowSize; ++m) {
  14.                             for (int n = 0; n < windowSize; ++n) {
  15.                                 Color c = new Color(image.getRGB(i - windowSize / 2 + m, j - windowSize / 2 + n));
  16.                                 blok[m * windowSize + n] = c.getRed();
  17.                                 h[c.getRed()]++;
  18.                             }
  19.                         }
  20.                         double mean = meanPix(0, 255, h);
  21.                         double sum = sumPix(0, 255, h);
  22.  
  23.                         double var = 0;
  24.  
  25.                         for (int T = 0; T < 255; T++) {
  26.  
  27.                             var += (T - mean) * (T - mean) * h[T];
  28.  
  29.                         }
  30.                         var /= sum;
  31.  
  32.                         double threshold = mean + k * Math.sqrt(var);
  33.                         Color c = new Color(image.getRGB(i, j));
  34.                         image.setRGB(i, j, c.getRed() > threshold ? Color.WHITE.getRGB() : Color.BLACK.getRGB());
  35.                     }
  36.                 }
  37.             }
  38.  
  39.         }
  40.         return image;
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement