Определите цвет изображения - PullRequest
0 голосов
/ 25 июня 2018

У меня есть беспокойство. Я должен определить преобладающий цвет изображения, , но цвета должны быть выбраны из определенного списка цветов (например, красный, зеленый, синий, красный и белый). Я знаю, что алгоритмы, такие как k-means, определяют соответствующие цвета более подходящим способом, но мне нужно, чтобы цвета были получены из списка. Это должно быть проще, потому что это должен быть алгоритм только с одной итерацией (потому что назначить непосредственно пиксель кластеру), но я не знаю, как записать код в Python (я новичок), и я не знаю, есть ли уже функция, которая делает это. Спасибо:)

1 Ответ

0 голосов
/ 25 июня 2018

Цвета - это точки в векторном пространстве.

Вы можете определить метрику между доминирующими цветами в списке. Смотрите, например страница википедии о разнице в цвете . Самым простым, но неоптимальным было бы евклидово расстояние в пространстве RGB, которое вы могли бы сделать с np.linalg.norm.

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

Вы также можете выполнить некоторую кластеризацию (простое объединение гистограмм, k-средних и т. Д.), Связать каждый кластер с цветом из вашего списка, который минимизирует вашу метрику, а затем найти наиболее представленный.

...