Какова математика (или код) позади фильтра матрицы свертки GIMP - PullRequest
2 голосов
/ 20 марта 2020

Я написал простое приложение для применения матрицы свертки к изображению, мне это удалось, но я ожидал, что оно будет намного больше похоже на плагин GIMP, в котором полученное изображение будет более красочным, чем мое. Это ядро, которое я использую на Gimp и в моем приложении:

 0  1  0
 1 -4  1
 0  1  1

Это входное изображение: https://imgur.com/Vm7TKJs

Это результат GIMP : https://imgur.com/LLPOfrW С этими настройками: https://imgur.com/l9E3Uyk

Это результат с моим приложением: https://imgur.com/Ml0UUqe

Я также пытался взглянуть на код GIMP, чтобы понять, но мне не удалось.

Кто-нибудь знает, что за математика стоит за этим фильтром?

1 Ответ

1 голос
/ 20 марта 2020

Gimp использует другое цветовое пространство, чем sRGB, для применения фильтра. Предположительно некоторое линейное цветовое пространство. Если вы применили простую кривую 2,2 гаммы перед фильтром и применили обратную кривую 2,2 гаммы после нее, вы получите такую ​​картинку: filtered image

(Все, что я сделал, это: перед фильтром использовали pow(rgbValue, 2.2). После фильтра я использовал pow(filterResult, 1/2.2). Обратите внимание, что правильное преобразование sRGB немного сложнее, чем это.)

Вы также можете поэкспериментировать с другими цветовыми пространствами (например, HSV).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...