Nano Hash - криптовалюты, майнинг, программирование

ImageMagick - Как изменить насыщенность целевого цвета?

Как с помощью ImageMagick convert настроить насыщенность определенного оттенка цветов? (в градусах)

например Я увеличиваю насыщенность красного (оттенок 0 градусов). На голубоватые цвета это не повлияет, но оранжевый также будет немного насыщенным, так как он находится рядом с красным.

Конечно, я хотел бы иметь возможность настроить ширину затронутых цветов.

ПРИМЕЧАНИЕ: используйте команды преобразования, а не перенаправление на сценарий.

PS: чтобы уточнить после ответа emcconville:

Насыщенность будет прогрессивной: чем ближе мы к подходящему цвету, тем больше будет применяться фильтр. В основном так, как это делается в фотошопе. Смотрите скриншот - извините, это по-французски, Teinte означает Hue. Вы можете увидеть и настроить диапазон соответствия цвета в градусах на нижней панели, от 8 до 90 (и от 318 до 255) фильтр прогрессивный.

Снимок экрана насыщенности Photoshop


Ответы:


1

Руководство Изменение цвета предлагает несколько примеров.

Вот пример, который снизит насыщенность вдвое, если оттенок близок к красному (0)

convert rose: \( +clone -modulate 100,50 \) \
        -fx '(u.hue < 0.1 || u.hue > 0.9)? v : u' out.png

Изменить насыщенность целевого цвета

Это работает путем копирования первого изображения (+clone) и изменить насыщенность (-modulate) скопированного изображения. Для части -fx u - первое изображение, а v - второй. Если hue первого изображения соответствует нашему цвету, верните второе изображение, иначе верните первое.

Примечание. Красный - 0, поэтому нам нужно логическое ИЛИ (||), но если мы пытаемся сопоставить другой цвет, не перекрывая ноль, используйте логическое И (&&).

пример с синим

-fx '(u.hue < 0.69 && u.hue > 0.63) ? v : u'

Дополнительный ответ

Тот же подход -fx можно использовать для вычисления линейной шкалы - например, этот ответ, или здесь. Ниже приведено аналогичное (но не точное) уравнение, в котором показано, как изолировать канал насыщенности.

convert rose: -colorspace HSL \
  \( +clone -colorspace sRGB \
     -fx '(hue < 0.1)?saturation+((1-(hue+0.1)*10%1)/10):(hue > 0.9)?saturation+(((hue-0.1) * 10)%1):saturation-(abs(0.5-hue))' \
  \) \
  -compose CopyGreen -composite \
  -colorspace sRGB \
  out.png

Еще больше изменить насыщенность целевого цвета

-compose CopyGreen -composite кажется странным, но на самом деле он берет изображение, сгенерированное с помощью -fx, и применяет его в качестве второго цветового канала (насыщенности).

Также поэкспериментируйте с -color-matrix, _ 16_, & _ 17_.

31.07.2015
  • Извините, я только что отредактировал свой вопрос, чтобы прояснить, потому что, хотя это условие очень интересно и научило меня чему-то великому, на самом деле это не то, что я ищу. 01.08.2015
  • @FlorianB: Если ответ научил вас чему-то замечательному, вы все равно можете проголосовать за него. Кроме того, «примите» его (или другой), как только он будет изменен / дополнен, чтобы полностью решить вашу проблему. 01.08.2015
  • О, этот второй монтаж просто фантастический! Насыщенность, зависящая от оттенка, вот и все !:) Спасибо! 01.08.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..