2010-06-24 6 views
1

Я прочитал ряд вопросов по поиску цветовой палитры изображения, но моя проблема несколько отличается. Я ищу изображения, состоящие из чистых цветов: фотографии открытого неба, красочные фоны фотографий, стены из красного кирпича и т. Д.Поиск изображений с чистыми цветами

До сих пор я использовал функцию App Engine Image.histogram() для создания гистограммы, отфильтровать значения ниже определенного порога возникновения, и в среднем оставшиеся. Это все еще кажется, что уходит во многих посторонних фотографиях, где есть капли чистого цвета в смешанном пакете других фотографий.

Любые идеи высоко оценены!

+0

Вам нужно лучше определить, что означает изображение чистых цветов? Это изображение, где пиксели имеют высокую насыщенность (в цветовом пространстве HSV/HSL)? Являются ли эти фотографии крупными областями почти однородного цвета? – Unreason

+0

Можете ли вы ссылаться на пару примеров, показывающих, что вы хотели бы найти, и пару примеров, показывающих, что вы не хотели бы находить? – Unreason

+0

Конечно. Вот несколько: http://www.flickr.com/photos/[email protected]/4354544296/ http://www.flickr.com/photos/[email protected]/1340979055/ http: // www. flickr.com/photos/denmar/4576689626/ Цвет не обязательно должен быть ровным, но цель состоит в том, чтобы отфильтровать изображения, которые состоят в основном из одного и того же оттенка. – dmkc

ответ

1

Как насчет этого?

  1. Размытие изображения с использованием алгоритма быстрого размытия. (Поиск размытия стека или размытия ящика)
  2. Вычислить стандартное отклонение пикселей в RGB-домене, один раз для каждого цвета.
  3. Отменить изображение, если стандартное отклонение превышает определенный порог.
+1

Вы даже можете попробовать без размытия, просто стандартное отклонение. – Abix

+0

Я работаю над довольно маленькими эскизами изображений, поэтому я думаю, что могу отказаться от размытия. Спасибо за предложение! – dmkc

+0

Это может сработать, если вы ищете однородные цвета, один случай, когда это упадет, будет смотреть на кирпичную стену, половина которой красная, а половина из которых - желтый кирпич. Я считаю, что OP ищет высокую насыщенность. – Unreason

0

По моему мнению, гистограмма не будет идеальным инструментом для этой задачи, поскольку она обычно рассматривается отдельно на каждом цветовом канале, и вы потеряете такую ​​информацию. Например, если вы получаете пики на 255 красных, зеленых и синих, это может означать, что на изображении много красного (0xFF0000), зеленого (0x00FF00) и синего (0x0000FF) или всего изображения просто полностью белого (0xFFFFFF).

Я рекомендую вам использовать алгоритм квантования цвета на вашем изображении: http://en.wikipedia.org/wiki/Color_quantization и вернуть ему 16 наиболее доминирующих цветов. Затем, возможно, преобразовать их в HSL и проверить значения с высокой насыщенностью.

+0

Я думаю, что здесь высока насыщенность (стена с красными кирпичами). И я думаю, что гистограмма насыщения будет работать очень хорошо без квантования. – Unreason

+0

Да, вы правы - если речь идет только о насыщении, и вам не нужны конкретные оттенки, гистограмма насыщения будет работать очень хорошо (и быстрее вычислять, чем квантование) – Quasimondo

Смежные вопросы