Как выполнить поиск изображений на компьютере по преобладающему цвету?
Я писал нечто подобное на Python (не для поиска картинок на диске, а в качестве детали другой более комплексной задачи). Находить конкретный доминирующий цвет (один из более 16 миллионов) бессмысленно, так как на почти идентичном изображении может вообще не быть ни одного пиксела этого конкретного цвета. Возможно, в этом и состоит проблема Color Search.
Я шел другим путем. У меня был примерно такой алгоритм:Построение трехмерной (в пространстве RGB) гистограммы.Аппроксимация этого распределения некоторой функцией (я брал гауссово распределение).При сравнении двух изображений сравниваются не цвета пикселов, а параметры, аппроксимирующей гистограмму, функции (для гауссова распределения - (мю, сигма) * 3 измерения == 6 параметров; для мю и сигма разные весовые коэффициенты при сравнении). Декартово расстояние в трехмерном пространстве RGB между значениями параметров для двух изображений и есть мера различия их цветовых гамм.
Все, вопрос решен. После долгого поиска, я нашел отличную программу, которая идеально подходит для сортировки по цвету. Это ImageSorter V4.В плане сортировки по цвету, она умеет сортировать:
- По изображению-образцу (или по нескольким)
- По нарисованному скетчу. В небольшой области можно схематично нарисовать яблоко, и программа найдет все изображения с таким цветом, похожие на яблоко.
- Можно выбрать до 4 цветов из палитры на основе которых будут искаться картинки.