Как автоматически классифицировать изображения по доминирующему цвету? - PullRequest
7 голосов
/ 13 марта 2012

У меня много изображений (десятков тысяч) довольно больших изображений JPG. Каждый из них является изображением индексной карточки. Большинство из них белые, но некоторые имеют стандартные цвета карточек ( эти цвета ).

Цвета соответствуют атрибутам данных, поэтому я хотел бы программно классифицировать эти карточки по цветам. Я знаю, что можно извлечь доминирующий цвет из изображений в веб-браузере, используя элемент canvas и алгоритм типа color thief , и он работает - он дает мне значение rgb, которого достаточно для карты.

Но я не могу понять, как я мог запустить такую ​​вещь через веб-браузер на таком количестве изображений.

Мне интересно, может ли кто-нибудь порекомендовать инструмент командной строки, возможно, модуль Python или Ruby, который мог бы делать что-то подобное.

1 Ответ

3 голосов
/ 15 марта 2012

Похоже, что это сильно совпадает с этим вопросом .

Если бы я был в вашей ситуации, я бы попробовал пару вещей.Во-первых, вы можете получить любую из нескольких библиотек Python, которые могут работать: OpenCV , Mahotas , PIL или scikits.image canвсе, вероятно, справятся с этим, так как вам действительно нужно вырезать средние значения RGB.

Напишите скрипт для загрузки каждого изображения и добавьте его среднее значение RGB в список.Затем вы можете использовать встроенные методы из scikits.learn , чтобы выполнить кластеризацию по среднему или k-среднему значению в этом большом списке цветов.Поскольку вы, вероятно, знаете, сколько существует различных цветов, k-means - это хороший выбор.В качестве альтернативы, если вы уже знаете значения RGB стандартных цветов, то для каждого загружаемого изображения просто вычислите среднее значение RGB, а затем «классифицируйте» это изображение в соответствии с тем, какой стандартный цветовой вектор RGB находится ближе всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...