Проверьте эту страницу для преобразования RGB в HSL (оттенок, насыщенность, яркость):
http://130.113.54.154/~monger/hsl-rgb.html введите описание ссылки здесь
Я не пробовал эти уравнения, но я полагаю, что они дадут достойную оценку, не будучи слишком интенсивными в вычислительном отношении. Есть много информации о том, как преобразовать RGB в HSL, если они не работаютхорошо.
Как только вы это сделаете, яркость представляет «яркость». Оттенок и насыщенность вместе представляют «цвет». Оттенок - это оттенок (это зеленый или красный), а насыщенность - интенсивность.оттенка.
Чтобы определить яркость изображения, просто посмотрите на его значение яркости (L).
Чтобы определить цветовой диапазон, в качестве первой попытки я хотел бы сделать что-токак вычисление векторной суммы оттенков и насыщенности. Это должно дать вам «расстояние от белого». Что-то вроде:
Color Strength = Sqrt(Hue^2 + Saturation^2)
Найдите два пикселя с минимальной и максимальной интенсивностью цвета, затемвычтите их, чтобы получить приблизительную оценку того, насколько разнообразны цвета.
Возможно, вы захотите отобрать каждое изображение, другими словами, рассчитать HSL только для небольшого количества пикселей каждого изображения.Вам нужно будет поэкспериментировать с тем, какие образцы рассчитать.Может быть лучше взять что-то вроде блока 8x8 из центра и каждого угла, вычислить средний HSL для этих блоков, а затем использовать их в своих вычислениях.
Я на самом деле не пробовал ничего из этого, простонекоторый корректирующий фон в цветовых пространствах, так что, надеюсь, это полезно.