Program23
@Program23
Графический дизайнер

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

Есть ли подобные программы? Функционал как у поиска картинок от Google по цвету.
Если нет программ, то сложно ли написать на C# такую программу? Какие библиотеки посоветуете?

Такая программа существует от нашего соотечественника: Color Search
Она идеально подходит мне, но вот успешность определения преобладающего цвета у нее хромает (особенно у изображений с низким разрешением).
  • Вопрос задан
  • 1844 просмотра
Решения вопроса 3
@nirvimel
Я писал нечто подобное на Python (не для поиска картинок на диске, а в качестве детали другой более комплексной задачи). Находить конкретный доминирующий цвет (один из более 16 миллионов) бессмысленно, так как на почти идентичном изображении может вообще не быть ни одного пиксела этого конкретного цвета. Возможно, в этом и состоит проблема Color Search.
Я шел другим путем. У меня был примерно такой алгоритм:
  1. Построение трехмерной (в пространстве RGB) гистограммы.
  2. Аппроксимация этого распределения некоторой функцией (я брал гауссово распределение).
  3. При сравнении двух изображений сравниваются не цвета пикселов, а параметры, аппроксимирующей гистограмму, функции (для гауссова распределения - (мю, сигма) * 3 измерения == 6 параметров; для мю и сигма разные весовые коэффициенты при сравнении). Декартово расстояние в трехмерном пространстве RGB между значениями параметров для двух изображений и есть мера различия их цветовых гамм.
Ответ написан
Комментировать
Neuroware
@Neuroware
Программист в свободное от работы время
Когда писал подобную прогу быстрее всего получилось это сделать в 3 этапа:
1. Ресайз картинки к нужному размеру и пропорциям
2. Подсчет среднего пробегая по массиву картинки и суммируя отдельно все значения R, G, B, высчитываю среднее. 3. Сохраняю картинку с именем "R+G+B.jpg"
Ответ написан
Комментировать
Program23
@Program23 Автор вопроса
Графический дизайнер
Все, вопрос решен. После долгого поиска, я нашел отличную программу, которая идеально подходит для сортировки по цвету. Это ImageSorter V4.

В плане сортировки по цвету, она умеет сортировать:
- По изображению-образцу (или по нескольким)
- По нарисованному скетчу. В небольшой области можно схематично нарисовать яблоко, и программа найдет все изображения с таким цветом, похожие на яблоко.
- Можно выбрать до 4 цветов из палитры на основе которых будут искаться картинки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы