Я пытаюсь найти алгоритм определения доминирующего цвета изображения (либо из камеры устройства, либо путем выбора существующей фотографии в библиотеке фотографий). Я написал приложение iOS 8 в Swift, которое может захватить значение RGB каждого пикселя в изображении, но я действительно не знаю, что делать дальше.Определить доминантный цвет изображения
Для пикселей с четким доминирующим цветом, например RGB (230, 15, 30), довольно легко определить доминирующий цвет. Тем не менее, я действительно не знаю, что делать для пикселей с RGB-значениями, где 2 из 3 значений похожи, скажем, RGB (200, 215, 30).
Моя первоначальная мысль состояла в том, чтобы сохранить 3 счетчика (по одному для каждого цвета) и добавить каждый пиксель, соответствующий RGB-значениям на этот счетчик. В конце я бы разделил каждый счетчик на общее число пикселей, и максимальный из трех значений был бы доминирующим цветом. Однако, как я уже упоминал ранее, когда результаты близки друг к другу, я не могу сказать, что один цвет обязательно доминирует над другим.
Просто глядя на некоторые мысли и предложения
для RGB (200, 215, 30) доминирующий цвет желтый. Считаете ли вы, что работаете с цветовыми моделями HSL/HSV? – MBo
Цветовая модель не имеет значения. Я пытаюсь разработать алгоритм определения доминирующего цвета пикселя. Я мог бы использовать чрезвычайно грубый алгоритм и сказать, что красный цвет является доминирующим цветом RGB (130, 129, 129), но это не принесло бы большого успеха для меня. С более чем 16,5 миллионами комбинаций цветов самая точная модель не будет работать. Я пытаюсь найти что-то достаточно точное, но не слишком конкретное. Например, красный цвет является доминирующим цветом RGB (65, 0, 0). У него определенно есть красный оттенок, но это не то, что люди считают красным. – steveclark
Какова основная цель определения доминирующего цвета? Насколько доминанта определенного пикселя соответствует общей доминанте? Является ли что-то вроде среднего арифметического цветов надежной оценкой? – MBo