сортировка изображений по цвету - PullRequest
9 голосов
/ 26 мая 2011

Я ищу способ сортировки изображений, как на следующем скриншоте:

http://www.pixolution.de/sites/LargeImages_en.html

Я рассмотрел все темы в этой теме по stackoverflow, но ни одно из предложенных решений даже близко не приблизилось к предоставлению мне изображения выше.

Подходы, которые я пробовал:

  1. для каждого изображения, построить гистограмму цветов RGB в порядке убывания вхождения
  2. для каждой гистограммы рассчитайте расстояние от черного (r: 0, g: 0, b: 0) следующим образом:

    for color in image_histogram:
      total_distance += color.percentage_of_image * distance(BLACK_RGB, color.rgb)
    

затем сортируйте изображения по расстоянию

Я надеялся, что изображения с одинаковым цветовым распределением получат одинаковое расстояние и приведут к визуальному упорядочению по цвету. Это было не так, похоже, это работает, но не так, как на картинке выше.

Для функции расстояния я пробовал евклидово расстояние, сортировку по hsv (h-> s-> v) и даже сортировку по расстоянию по лаборатории. Ничего из этого не помогло

Если у кого-то есть лучший подход, я хотел бы знать!

Ответы [ 4 ]

2 голосов
/ 26 мая 2011

Я никогда не делал ничего подобного, так что извините, если следующий подход наивен:

  • Для каждого изображения уменьшите его до 1 среднего значения RGB путем суммирования значений R, G, B всех пикселей и разделите на общее число пикселей Нормализовать компоненты до [0..1]
  • Постройте изображение в вашем 2D цветовом пространстве на основе значений RGB. Это может быть 2D-проекция трехмерного (r, g, b) векторного преобразования.
1 голос
/ 06 августа 2015

вы можете конвертировать в HSV и сортировать по H

Хью - это то, о чем думает большинство людей, когда они думают, что "цвет"

см .: RGB в HSV в PHP

0 голосов
/ 22 февраля 2015

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

Это программное обеспечение используется во многих интересных визуализациях огромных коллекций изображений, миллионы +

Информация: http://lab.softwarestudies.com/p/imageplot.html#whatsnew Источник: https://github.com/culturevis/imageplot

0 голосов
/ 26 мая 2011

Группируйте похожие цвета, используя расстояние между ними, а не между ними и черным, и используйте средний цвет на изображении.

...