Простой способ конвертировать цветовую гамму в другую? - PullRequest
2 голосов
/ 11 августа 2011

Я хотел бы преобразовать фиолетовый цвет в это изображение:

enter image description here синему, например:

enter image description here

Есть ли простой способ сделать это? Если нет, есть ли простой способ повторить тот же эффект?

Спасибо

1 Ответ

2 голосов
/ 11 августа 2011

Вы можете разделить изображение в каналах R, G и B и заменить красный канал нулями, оставив только каналы G и B.

Пример в Mathematica:

i = Import["http://tinyurl.com/3wqklof"];
ColorCombine@{ImageSubtract[#[[1]], #[[1]]], #[[2]], #[[3]]} &@ ColorSeparate@i

enter image description here

Редактировать

Или, если вам нужно "точное" синее изображение, разделите его в цветовом пространстве "HSB", заменив все ненулевые значения матрицы H на 2/3 (синий), оставив компоненты S и B без изменений.

Пример:

ColorCombine[{Image[2/3 ImageData@ImageAdd[#[[1]], #[[1]]]], #[[2]], #[[3]]} &@
              ColorSeparate[i, "HSB"], "HSB"]

enter image description here

...