«Округление» значений цвета до ближайшего из небольшого набора цветов

Преамбула

В рамках проекта, над которым я работаю, я пытаюсь предоставить удобный способ поиска изображений в нашей системе. В настоящее время мы обеспечиваем поиск по различным типам метаданных, добавленных пользователем (например, заголовок, описание, ключевые слова) и по различным метаданным, которые мы извлекаем (например, EXIF, IPTC, XMP и т. Д.). Я также хотел бы добавить «цветной поиск», аналогичный что вы можете увидеть в поиске картинок Google.

В проекте используется PHP, и мы можем использовать расширение Imagemagick для сегментации и квантования изображения и извлечения наиболее «значимых» цветов из изображения; Я не совсем уверен в результатах, которые получаю здесь, но они кажутся достаточно точными и определенно лучше, чем ничего.

Проблема

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

Есть предложения?

31
задан Alin Purcaru 23 December 2010 в 13:39
поделиться