Как определить разницу цветовой насыщенности пары изображений?

Я инженер, поэтому моя терминология может быть неправильной при постановке этого вопроса.

У меня есть пара картинок ниже, и верхняя явно более «красочная», «яркая» и «насыщенная». Нижний имеет очень насыщенные цвета и в основном белый/серый/бежевый.

Как мне количественно оценить разницу в том, насколько красочными или яркими являются два изображения? Другими словами, я хочу разбить изображение на спектр цветов, присутствующих в изображении, используя шкалу посередине. Верхнее изображение будет иметь очень высокие значения синего и зеленого, а нижнее — нет.

Есть ли в Photoshop или Illustrator инструмент, который поможет мне в этом? На ум приходит гистограмма, но я не уверен, есть ли в ней то, что мне нужно - гистограммы для изображений ниже.

введите описание изображения здесь

Гистограмма изображения красочного пляжа:

введите описание изображения здесь

Беловатая гистограмма изображения классной комнаты:

введите описание изображения здесь

Страница Википедии для насыщения довольно подробная и может помочь. Он также содержит формулу нормализации CIELUV. Может это поможет
@BlueWizard Спасибо, я обнаружил, что насыщенность действительно является основным отличием между двумя изображениями, поэтому цветовое пространство HSV — это то, что мне нужно использовать для анализа.

Ответы (1)

Мы можем рассматривать цветность как среднее значение различий между каналами R, G и B. У нас должно быть три сравнения: красный против зеленого, зеленый против синего и синий против красного.

Для начала мы должны сделать три копии изображения в разные слои. Убираем по 2 цвета с каждого слоя и остается один. Слои: один для красного, один для зеленого и один для синего. Убить 2 других цвета из слоя можно с помощью кривых или инструмента уровней. Это проще, чем возиться с панелью каналов.

введите описание изображения здесь

Мы имитируем цветоделение, обесцвечивая слои. Чтобы иметь возможность использовать режимы слоя для сравнения между слоями, мы также дублируем каждый слой:

введите описание изображения здесь

Сравнения выполняются путем установки одного слоя с режимом наложения = разница, другого = нормальный, и когда установлено, сравниваемые слои объединяются:

введите описание изображения здесь

Кажется совсем темным. Но мы можем добавить слои, установив для двух верхних режим смешивания = Linear Dodge (что означает ДОБАВИТЬ), а нижний слой обычный:

введите описание изображения здесь

Это красочность пиксель за пикселем. Если бы были какие-то белые области, то эти области имели бы максимальную красочность. Черные области бесцветны.

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

введите описание изображения здесь

Проверяя яркость с помощью палитры цветов, мы получаем: Верхнее изображение имеет среднюю красочность = 37% от максимума, а нижнее изображение = 5% от максимума.

Результат 37% кажется довольно низким для верхнего изображения, которое субъективно кажется очень красочным. Давайте проверим метод на действительно красочном изображении, которое имеет только полностью насыщенные цвета:

введите описание изображения здесь

Как и ожидалось, попиксельная цветопередача составляет 100% в каждом пикселе:

введите описание изображения здесь

ПРИМЕЧАНИЕ. Этот метод настолько прост, что его можно записать как действие.

Это кажется математически правильным. Приятно видеть способ изолировать насыщенность изображения. Но по-прежнему существует проблема, заключающаяся в том, что равномерно распределенный цветовой шум / растр / линии RGB и т. Д. Будут отображаться как цветные, но восприниматься как серые, или я что-то упустил?
Если бы вы уменьшили масштаб изображения перед тем, как делать усреднение, упомянутой проблемы можно было бы избежать.
@Wolff Ты прав. Этот метод не делает различий между шумом и преднамеренными цветами. Следует добавить фильтр нижних частот или другую предварительную фильтрацию, которая, по его мнению, эквивалентна его неспособности видеть мельчайшие детали.
@Wolff Я не осмеливаюсь сказать, что «это то же самое, что извлечение насыщенности», хотя это дает нормальную насыщенность оттенков серого и полностью насыщенных цветов. Я не знаю точно, как числа, что означает насыщенность в Photoshop. В противном случае я бы использовал режим наложения «Насыщенность», который, как говорят, берет насыщенность с верхнего слоя.
Я играл с режимом наложения «Насыщенность», но не могу найти способ использовать его для извлечения насыщенности изображения.
@Wolff поместите слой изображения поверх полного красного слоя. Насыщенность B.mode должна показывать красный цвет с насыщенностью изображения. Слить и превратить в чб. К сожалению, я не знаю правильного принципа смешивания bw для этой цели.