I have been trying to apply laplacian filter in java.
int red = 8 * red - imageOne.getRed(i - 1, j - 1)
- imageOne.getRed(i, j - 1)
- imageOne.getRed(i + 1, j - 1)
- imageOne.getRed(i - 1, j) - imageOne.getRed(i, j)
- imageOne.getRed(i + 1, j)
- imageOne.getRed(i - 1, j + 1)
- imageOne.getRed(i, j + 1)
- imageOne.getRed(i + 1, j + 1);
green and blue values are calculated in the same way.
After calculating RGB values, there are some very large values or negative values. the range being [- 255*8 ... 255*8]
I tried to scale it using
red = (int) (red / 16) + 128;
green = (int) (green / 16) + 128;
blue = (int) (blue / 16) + 128;
I also have tried restrcting it between [0 - 255] with following code
red = Math.min(255, Math.max(0, red));
but the image is still not displayed properly.
How do i handle the RGB values properly ???
Thanks