@Override public void processImage(FImage image) { //1st pass image.divideInplace(firstPassDivisor(image, mask)); //2nd pass image.divideInplace(secondPassDivisor(image, mask)); //3rd pass for (int y=0; y<image.height; y++) { for (int x=0; x<image.width; x++) { if (mask.pixels[y][x] == 1) { image.pixels[y][x] = (float) (tau * Math.tanh(image.pixels[y][x] / tau)); } else { image.pixels[y][x] = 0; } } } }
protected static FImage normaliseImage(FImage image, FImage mask) { if (mask == null) { return image.process(new GammaCorrection()) .processInplace(new DifferenceOfGaussian()) .processInplace(new MaskedRobustContrastEqualisation()); } return image.process(new GammaCorrection()) .processInplace(new DifferenceOfGaussian()) .processInplace(new MaskedRobustContrastEqualisation(mask)) .multiply(mask); }
@Override public void processImage(FImage image) { //1st pass image.divideInplace(firstPassDivisor(image, mask)); //2nd pass image.divideInplace(secondPassDivisor(image, mask)); //3rd pass for (int y=0; y<image.height; y++) { for (int x=0; x<image.width; x++) { if (mask.pixels[y][x] == 1) { image.pixels[y][x] = (float) (tau * Math.tanh(image.pixels[y][x] / tau)); } else { image.pixels[y][x] = 0; } } } }