Эффект свертки изменен с GIMP версии 2.8.22 на 2.10.18. - PullRequest
0 голосов
/ 10 июля 2020

Недавно у меня была задача применить несколько фильтров свертки в университете. Играя с Gimp версии 2.10.18, я заметил, что фильтры из примененных мной упражнений не дали ожидаемого результата.

Я обнаружил, что поведение свертки изменилось с Gimp 2.8.22 на 2.10.18 и хотел спросить, знает ли кто-нибудь, как вернуть прежнее поведение.

Позвольте мне объяснить, что должно произойти и что на самом деле происходит в 2.10.18:

Мой пример изображения выглядит так (это значения во всех его строках пикселей): 90 90150210210

Теперь я применяю фильтр 0 0 0 0 2 0 0 0 0 с делителем 1 и смещением 0.

Математика, лежащая в основе этого, и GIMP 2.8 говорят мне, что результат должен состоять из 180 значений слева и 255 справа

Я не понимаю, что делает Gimp 2.10, но результат имеет только более яркие значения (90-> 125, 150-> 205, 210-> 255) вместо ожидаемого изменения.

Это ошибка или мне что-то не хватает? Спасибо!

1 Ответ

0 голосов
/ 10 июля 2020

Большая разница между 2.10 (высокая битовая глубина) и предыдущими версиями (8-бит) заключается в том, что 2.10 работает в «линейном свете». В версии 2.8 пиксели со значениями 0..255 не являются линейным представлением цвета / яркости, а имеют гамма-коррекцию (так что есть больше значений для темных тонов (*)). Большинство инструментов GIMP 2.8 работают (неправильно) напрямую с этими значениями с гамма-коррекцией. В GIMP 2.10, если вы используете 8-битное представление (и в общем случае используете представление с гамма-коррекцией, но в основном это полезно в 8-битном формате), данные пикселей преобразуются в 32-битные линейные FP, удаляя гамму. компенсации, затем применяется требуемое преобразование, затем данные преобразуются обратно в 8-битные, с восстановленной гамма-компенсацией.

(*) Попробуйте следующее: откройте два изображения в GIMP, заполните одно изображением шахматной доски и один с серым (128,128,128). Сделайте шаг назад, пока шахматная доска не станет однородно серой. Вы заметите, что обычное серое изображение темнее ... так что (128,128,128) не является серединой диапазона яркости.

...