Цвета - это, по сути, трехмерные векторы (независимо от того, представлены ли они как HSV, RGB, CMY [K]). К сожалению, реляционные базы данных в основном не очень хороши для работы в более чем одном измерении.
Если вы уменьшите изображение до одного «среднего» цвета, тогда решение станет немного проще:
Тривиальный анализ подразумевает, что вам нужно будет сравнить новое изображение с каждым существующим изображением, чтобы определить уровень сходства. Однако лучшим подходом было бы оцифровать вектор, чтобы найти похожие значения в базе данных.
например. для 24-битного цвета 124, 39, 201
как 1 битный цвет: 0,0,1
как 2-битный цвет: 1,0,2
....
Если вы хотите посмотреть больше цветов на изображении, то я бы порекомендовал сократить до ближайших значений фиксированную цветовую карту без распространения ошибок и определить верхние «N» наиболее часто используемых цветов. То, что вы делаете после этого, потребует некоторых усилий и усилий - может потребоваться вышеупомянутый метод взвешивания по частоте на промежуточном изображении, или вам может не понравиться просмотр изображений, где верхние цвета NM соответствуют NX ваших вычисленных значений (с настройка значений M и X).
С