ImageMagick - частичная гамма-коррекция - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть изображение RGB, и я хотел бы выбрать первые n% красного, зеленого и синего для коррекции гаммы, оставив остальные пиксели без изменений.

Как я могу сделать это в ImageMagick с версией 6.7.8-9 в Linux?

1 Ответ

0 голосов
/ 20 сентября 2018

Я бы предложил выделить рассматриваемые пиксели с помощью ImageMagick FX .

. Как отметил Марк в комментариях, мы не совсем понимаем следующее требование.

выберите первые n% красного, зеленого и синего

Что может означать что угодно.Я предполагаю, что вы нацеливаетесь на низкие значения или низкую интенсивность пикселей.Я покажу пример для последнего;На мой взгляд, это имеет больше смысла для настройки гаммы на изображениях с плохим динамическим диапазоном.

Для изображения со случайными значениями n%.

convert -size 250x250 plasma: plasma.png

plasma.png

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

convert plasma.png -fx 'intensity<0.4?1:0' -blur 1x3 mask.png
# Or use threshold, as pointed out in the comments.
convert plasma.png -threshold 40% -negate -blur 1x3 mask.png

mask.png

С данным изображением клонируйте его и примените гамма-коррекцию.Используйте сгенерированную ранее маску, чтобы установить альфа / прозрачность, и составьте поверх исходного изображения.

convert plasma.png \( \
       +clone -gamma 1.6 \
       -compose copy_opacity mask.png -composite \
     \) \
     -compose ATop -composite  output.png

output.png

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