#java #image #colors #rgb
#java #изображение #Цвет #rgb
Вопрос:
Я должен решить, является ли изображение светлым или темным, и у меня есть уравнение, подобное этому:
double luminosity = ((r * 0.2126) (g * 0.7152) (b * 0.0722)) / 255
Используя это уравнение, какое значение пикселя считается «светом»?
Существуют ли какие-либо другие популярные / наилучшие методы определения того, является ли изображение светлым / темным
Ответ №1:
Ваш диапазон значений — от того, когда r, g, b равны 0 (пиксель черный) и до того, когда все r, g, b равны 255 (пиксель белый) — включение этого даст нам диапазон яркости [0, 1].
Одним из способов было бы просто сказать — если значение яркости ниже 0,5, это «темный пиксель», если яркость больше 0,5 — это «светлый пиксель».
Если внутри изображения у нас большинство темных пикселей, изображение темное. Если большинство пикселей в изображении светлые, изображение светлое. В качестве альтернативы, получите значение яркости для каждого пикселя изображения и возьмите среднее значение, а затем используйте среднюю яркость, чтобы определить, является ли изображение светлым или темным.
Некоторые значения для отдельных примеров пикселей:
rgb(245, 100, 3) = luminosity 0.49 - darker
rgb(245, 120, 3) = luminosity 0.54 - lighter
rgb(100, 140, 3) = luminosity 0.48 - darker
rgb(100, 200, 3) = luminosity 0.64 - lighter
Комментарии:
1. Должен ли я использовать для этого медиану или, например, таблицу суммированной площади или какую-то гистограмму?
2. @kkot это может быть так же просто, как просто подсчитать количество «темных пикселей» и «светлых пикселей» и сравнить количество каждого из них, или вы можете взять среднее значение для всех пикселей. Насколько сложным вы его делаете, зависит от вас 🙂
3. Я согласен с ответом. Фактически средний серый равен 0,5 [Примечание: мы предполагаем, что гамма скорректирована на R, G, B]. Фотокамеры выставляют изображение таким образом, чтобы изображение [или пятно, используемое для экспозиции] было наполовину серого цвета.
4. Усреднить все пиксели несложно. Используйте 3 длинных. Добавьте все красное, добавьте синее, добавьте все зеленое. Затем усредните, затем рассчитайте яркость.