Как я могу умножить значения пикселей на константу в Gimp?

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

Ответы (3)

Я подумал о дополнительном способе сделать это:

Выберите слой, который вы хотите размножить, затем перейдите в Filters -> Generic -> Convolution Matrix .

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

Окно матрицы свертки

Это должно сработать (пока ваши начальные значения не станут меньше 128 или если ваша версия Gimp способна управлять изображениями в градациях серого глубже 8 бит). Если этот способ решит вашу проблему, вы можете отметить свое решение как правильный ответ.
Итак, вы говорите, что значения пикселей должны быть меньше 128, иначе они будут насыщенными после умножения на 2, верно?
Ровно до тех пор, пока вы не используете 8-битное изображение в градациях серого. Будущие версии Gimp должны иметь возможность управлять большей глубиной.
Хорошо, спасибо! Кстати, я думаю, вы имеете в виду "предполагать" вместо "до".
Мой английский нуждается в некотором улучшении... ;-)

Другой способ думать об этой проблеме, вместо того, чтобы говорить, что вы умножаете значение каждого пикселя на 2, состоит в том, чтобы сказать, что вы берете пиксели в диапазоне (0,127) и растягиваете их, чтобы заполнить весь диапазон (0,255).

Если посмотреть на это таким образом, то это очень легко сделать с помощью инструмента «Уровни».

Установите входные уровни «белая точка» на 127, а выходные уровни «белая точка» оставьте равными 255, и все будет увеличено.

Изображение диалогового окна уровней GIMP с настройками, как описано в тексте

Для других коэффициентов умножения вам просто нужно выполнить быстрый расчет, чтобы выяснить, какое входное значение должно равняться 255 выходным.

Если вы хотите по какой-то причине разделить значения пикселей, вы должны оставить входную белую точку равной 255 и уменьшить максимальный выходной уровень.

Пиксельная математика сложна (и немного медленна) в Gimp, либо с использованием скрипта (т.е. вызывая для каждого пикселя gimp-drawable-set-pixel с помощью Script-Fu или Python-Fu ), либо с использованием плагинов, таких как MathMap .

Обратите внимание, что умножение на константу может увеличить значение пикселей сверх максимального диапазона для изображения, и после операции у вас могут быть некоторые насыщенные области. Я не знаю, есть ли в текущей версии Gimp встроенная поддержка работы с 16-битными (или более) изображениями в градациях серого, и я предлагаю вам выполнить умножение пикселей с помощью ImageJ , который, несмотря на плохой пользовательский интерфейс, очень быстрый и полезный для такого рода операций и может управлять значениями до 32-битных изображений в градациях серого.

Gimp — отличная программа для работы с изображениями, но в данном случае я думаю, что ImageJ мог бы быть более подходящим инструментом.