Получение наиболее часто появляющегося цвета изображения - PullRequest
0 голосов
/ 07 сентября 2011

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

Ответы [ 3 ]

3 голосов
/ 10 марта 2015

Библиотека поддержки палитры v7 включает в себя класс Палитра , который позволяет извлекать яркие цвета из изображения. Этот класс, найденный в android.support.v7.graphics, может извлекать следующие цвета:

  • Яркий
  • Яркий Темный
  • Яркий свет
  • приглушенный
  • Приглушенный темнота
  • Приглушенный свет

Чтобы использовать класс Palette в своем проекте, добавьте следующую зависимость Gradle в модуль вашего приложения:

dependencies {
   ...
   compile 'com.android.support:palette-v7:21.0.0'
}

Использование:

Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
 public void onGenerated(Palette palette) {
     // Do something with colors...

     //You can select any of the colors.
     Palette.Swatch swatch = palette.getVibrantSwatch();
     if(swatch!=null){ // mind it, it can be null sometime.
        int color = swatch.getRgb();
     }
 }
});
2 голосов
/ 07 сентября 2011

Получить растровое изображение и пройти каждый пиксель.Помните цвет каждого из них.Затем сделайте несколько средних значений - сделайте близкие цвета одним (розовый, темно-оранжевый и красный могут стать только красным).Затем сравните счет, который вы получаете для каждого из основных цветов (цветов радуги).

0 голосов
/ 20 мая 2013

Colorific из 99 дизайнов проделали большую часть тяжелой работы здесь, включая преобразование RGB в цвета лаборатории CIE, чтобы гарантировать, что воспринимаемые схожие цвета объединяются вместе, а также исключая цвета фона. Он находится на Python и может быть запущен из командной строки. Таким образом, вы можете использовать что-то вроде следующего:

    Runtime r = Runtime.getRuntime(); 
    Process p = r.exec(  ((URL) this.getClass().getResource("/python/colorific")).getFile() +" "+filename);
    String out = CharStreams.toString(new InputStreamReader(p.getInputStream()));    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...