Лапласианский фильтр

Я пытался применить лапласианский фильтр в 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);

значения зеленого и синего рассчитываются одинаково.

После вычисления значений RGB есть очень большие значения или отрицательные значения. диапазон [- 255*8 ... 255*8]

Я попытался масштабировать его, используя

     red = (int) (red / 16) + 128;
 green = (int) (green / 16) + 128;
 blue = (int) (blue / 16) + 128;

Я также попытался ограничить его между [0 - 255] следующим кодом

        red = Math.min(255, Math.max(0, red));

но изображение по-прежнему не отображается должным образом.

Как правильно обрабатывать значения RGB ???

Спасибо


person Ken    schedule 19.11.2013    source источник
comment
stackoverflow.com/questions/7449596/ может помочь   -  person    schedule 19.11.2013
comment
привет RC .. вопрос, который вы мне задали, использует ту же вещь масштабирования, что и я ... Я изменил свою вещь масштабирования на предоставленную, и я все еще получаю ту же картинку ..   -  person Ken    schedule 19.11.2013
comment
Ваш масштаб должен быть red = (red + 8 * 255) / 16 и т. д.   -  person Roger Rowland    schedule 19.11.2013
comment
Спасибо, Роджер и RC, теперь понял.. это была глупая ошибка.. я умножал неправильный пиксель... кстати, в чем разница между красным = (красный + 8 * 255) / 16; & красный = (int) (красный / 16) + 128; Потому что они оба дают одинаковое значение, насколько я тестировал: O Спасибо.   -  person Ken    schedule 19.11.2013
comment
Попробуйте red = -2040, и вы получите 0 с правильным масштабированием и 0.5 с вашим масштабированием — они не совпадают, возможно, из-за какой-то целочисленной арифметики.   -  person Roger Rowland    schedule 19.11.2013
comment
@RogerRowland ура...   -  person Ken    schedule 19.11.2013