Вычтите значение только из красного канала - PullRequest
0 голосов
/ 06 октября 2018

Есть ли простой способ вычесть значение из красного канала?Например, скажем, у пикселя есть RGB (140, 30, 50), я хотел бы видеть вычитание 100 только из красного канала, следовательно, получим RGB (40, 30, 50).Я знаю, что изображение имеет покраснение более 100, поэтому проблем с попаданием в ноль не должно быть.

Я не знаком с Gimp, хотя думал, что это также возможно.Или есть простая команда ImageMagick, которая делает эту работу?

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

В Gimp два метода:

Метод # 1

  • добавить слой сверху,
  • заполнить его темно-красным (RGB (100,0, 0))
  • переведите его в режим смешивания Subtract.

Метод # 2

  • установить цвет переднего плана на RGB (100,0,0)
  • установить режим инструмента заливки ведра на Subtract
  • заливка слоя
0 голосов
/ 06 октября 2018

В Imagemagick вам нужно работать со значениями в квантовом диапазоне (по умолчанию 16-битный, поэтому от 0 до 65535) или в процентах.Вычитание 100 - это 100 * 100/255 = 39,2%, поэтому в Imagemagick 6

convert image -channel r -evaluate subtract 39.2% +channel newimage


Например, я создаю полностью красное изображение (r = 255):

convert -size 1x1 xc:"srgb(255,0,0)" red.png

convert red.png -channel r -evaluate subtract 39.2% +channel red2.png

convert red2.png -format "%[fx:floor(255*u.r)]" info:
155

255-100=155; So we got the correct result above.


В Imagemagick 7 вы можете сделать

magick image -channel r -evaluate subtract "%[fx:100*100/255]"% +channel newimage
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...