2015-03-17 3 views
0

У меня есть куча изображений одежды разных цветов, и я хочу определить цвета каждого изображения. Скажем, что у меня синее изображение юбки в условиях дневного света, и я могу получить правильный цвет через RGB-распределения. Однако ночью сложно сказать цвет, а «синий» признан «черным». Очень сложно сделать единый стандарт, чтобы указать цвета через RGB-дистрибутивы.Как определить цвета при различных условиях освещения

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

BTW: Я также пробовал цветовое пространство HSV, и результаты не были хорошими.

+3

Когда человеческие наблюдатели сталкиваются с хитрым освещением, думайте, что синее/черное платье бело/золото 75% времени, я думаю, что компьютеры не имеют шансов. –

+0

@MarkRansom - Не мог бы сказать, что это лучше. – rayryeng

+2

Если у вас есть что-то, что вы знаете, это один и тот же цвет на каждой фотографии, невероятно тяжелая проблема становится довольно простой. Например, если на каждой фотографии есть что-то, что вы знаете, оно белого цвета, вы можете использовать записанное значение этого цвета для нормализации значений RGB на всей фотографии. –

ответ

5

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

К сожалению, я не могу предложить какой-либо один алгоритм что сделало бы работу для вас во всех случаях. Однако один из алгоритмов, который работал для меня в прошлом, заключался в том, что я работал над поиском изображений. В частности, работа Jiebo Luo и David Crandall из Kodak Research Labs: http://vision.soic.indiana.edu/papers/compoundcolor2004cvpr.pdf

Основным алгоритмом является просмотр ISCC-NBS colour palette set. Кроме того, эта ссылка намного более плодотворна: http://tx4.us/nbs-iscc.htm. Это набор из 267 цветов, которые представляют цвета, которые мы видим в современном обществе сегодня. Обычно, когда мы описываем цвета, у нас есть набор из одного или нескольких прилагательных, за которым следует доминирующий оттенок. Например, эта рубашка темно-бледно-голубая или светло-ярко-желтая и т. Д. Красота этого алгоритма заключается в том, что когда цвет, о котором идет речь, подвержен различным внешним раздражителям, мы имеем все эти прилагательные, которые придают смысл цвету , но в конце дня последняя часть цвета - доминирующий оттенок - вот что нам нужно.

Каждый из этих цветов имеет ассоциированное значение RGB. Эти цвета преобразуются в цветовое пространство CIE Lab, которые образуют таблицу поиска 267 CIE Lab.

Чтобы классифицировать определенный цвет ввода, вы должны преобразовать значения RGB этого входа в цветовое пространство CIE Lab, а затем определить ближайший цвет к этой таблице поиска. Было показано, что евклидово расстояние между двумя цветами в цветовом пространстве CIE Lab наилучшим образом отражает разницу в восприятии человеком цветов. Как только мы определим, какое местоположение в таблице поиска ближе всего к цвету, мы выделяем все прилагательные и видим, что такое доминирующий оттенок, и поэтому мы соответствующим образом классифицируем этот цвет.

Например, если бы у нас был RGB-пиксель, и мы преобразовали его в Lab, то обнаружили, что ближайший цвет был ярко-желтым, мы удалили бы «яркий» и конечный цвет, который является представителем этого RGB-пикселя. желтый.


Поэтому окончательный алгоритм таков:

  1. Найти значение RGB МНККА-NBS цветового набора и конвертировать в CIE Lab и создать таблицу поиска.
  2. Создайте еще один поиск, в котором хранится доминирующий оттенок для каждого цвета в наборе цветов ISCC-NBS, поэтому отделите все прилагательные и оставьте доминирующий оттенок.
  3. Для пикселя найдите ближайший пиксель, который находится в таблице поиска, на евклидовом расстоянии от компонентов Lab.
  4. Как только мы найдем это местоположение в таблице поиска, используйте тот же индекс для индексации в поиске, который находится на шаге №2, и получите окончательный цвет, чтобы классифицировать цвет входного пикселя.

Надеется, что это помогает!

Смежные вопросы