|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
Яркость пикселя24.09.2011, 15:58. Показов 33467. Ответов 16
Метки нет (Все метки)
0
|
|
| 24.09.2011, 15:58 | |
|
Ответы с готовыми решениями:
16
поиск пикселя цвет пикселя |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 24.09.2011, 16:04 | ||||||
1
|
||||||
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
|
| 24.09.2011, 16:33 [ТС] | |
|
А как именно из R, G, B составляющих получить яркость?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 24.09.2011, 17:03 | |
|
Ну это смотря какая яркость интересует (Brightness, Perceived Brightness, Luminance).
Можно расчитать по среднему арифметическому: (R + G + B)/3 В более серьезных местах (телевещание, например), расчитывается так: R * Rw + G * Gw + B * Bw, где Rw, Gw и Bw - коэффициент для каждого цвета от 0 до 1, который может меняться в зависимости от сферы применения. Есть еще формула с расчетом корня.
1
|
|
|
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
|
||
| 24.09.2011, 17:12 [ТС] | ||
|
У меня есть предмет "Распознавание изображений" и мне нужно сделать гистограмму яркостей. Гистограмму не проблема сделать, но преподаватель попросил высчитывать яркости именно из RGB-составляющих. И я вот думаю как.
Добавлено через 1 минуту
0
|
||
|
139 / 137 / 21
Регистрация: 26.01.2010
Сообщений: 350
|
|
| 24.09.2011, 18:04 | |
|
Подели результат на 255 и получишь в промежутке от 0 до 1.
1
|
|
|
9 / 9 / 4
Регистрация: 25.09.2011
Сообщений: 23
|
|
| 25.09.2011, 10:03 | |
|
Для определения яркости пикселя можно воспользовать формулой Y=0.3*R+0.59*G+0.11*B, правда это больше для изображений в оттенках серого.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 19.02.2021, 11:20 | |
|
Заинтересовала меня эта формула, почему именно такие коэффициенты, решил копнуть чуть глубже (пара ссылок: 1, 2).
Если в трех словах, то сама формула это перевод RGB пикселя в оттенки серого, а коэффициенты формулы это показатель той или иной системы представления/кодирования цвета (изначально PAL/SECAM и все вот это вот). В разных системах цвет, закодированный одним и тем же значением, будет выглядеть по разному. И наоборот - выглядящий одинаково в разных системах цвет, будет по разному кодироваться. В общем виде: [R±dr, G±dg, B±db], где dr, dg, db - некоторое отклонение свойственное той или иной системе. Как происходит запись цвета в какой-то конкретной системе: берется двухмерное математически составленное бесконечно точное представление цвета (палитра на плоскости) и выбирается на ней точка, чьи координаты и будут означать запись цвета. Выбираются три основных (связанных с данной технологией производства) цвета, например, красный, зеленый и синий, и сопоставляются с цветовой палитрой. Таким образом получается, что какой-нибудь зеленый цвет располагается по таким-то координатам, а смежный цвет, находящийся в бесконечно близком приближении к нему уже не зеленый. Почему выбираются те или иные координаты? А вот не почему, на глаз. Ну по крайней мере раньше так было при аналоговом вещании. Возвращаясь же к самой формуле, то высчитанное по ней значение является некой яркостью пикселя. Некой - потому что понятий яркостей существует несколько. И хрен его знает что мы получили за число, но оно точно как-то характеризует исследуемый пиксель. Резюмируя можно сказать, что в прикладных целях совершенно наплевать как рассчитывать яркость пикселя, хоть просто брать среднее арифметическое по RGB, потому что неизвестно с помощью какого оборудования получены данные пиксели, какие там были кодеки, какой они стандарт поддерживали, будут ли они куда-то выводиться вообще потом и через сколько десятков лет какие изменения в этой всей сфере произойдут.
0
|
|
|
|
||
| 19.02.2021, 12:05 | ||
|
Яркость пикселя рассчитывается исходя из чувствительности глаза к разным длинам волн. Y=0.3*R+0.59*G+0.11*BГлаз лучше всего распознает зеленый цвет, поэтому коэффициент при G - самый большой. Красный цвет глаз видит хуже, и синий - еще хуже. Поэтому синий цвет мало влияет на субъективное восприятие яркости, и его коэффициент самый маленький.
0
|
||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||
| 19.02.2021, 14:35 | ||
![]() Ну а если чуть более серьезно, то в представленной вами формуле коэффициенты рассчитываются исходя из технологий семидесятых годов, тех технологий, которые сейчас уже не используются (можно почитать по приведенным мной ссылкам в предыдущем сообщении). С девяносто шестого года стал рулить стандарт sRGB, коэффициенты которого 0.212, 0.715 и 0.072 соответственно.
0
|
||
|
Модератор
|
|
| 19.02.2021, 17:49 | |
|
SatanaXIII, Storm23, если брать вопрос топика:
Есть объект типа Color. Как определить яркость цвета?То яркость определятся как одна 512 от суммы самого тусклого и самого яркого цвета. Формула Y=0.3*R+0.59*G+0.11*B имеет отношение только к физическому устройству имеющему абсолютно одинаковую чувствительность ко всем цветам.Так светочувствительные ячейки обычно изготавливаются на одной пластине и одного размера, то нелинейность определяется в основном светофильтрами. То к физическим величинам это формула может применяться. Но в форматах хранения по любому будет производиться какая-то оптимизация, так как выделять одинаковое количество бит под хранение величин разных диапазонов не эффективно. Поэтому для хранимых форматов изображений я не думаю, что эта формула применима.
0
|
|
|
|
|||
| 19.02.2021, 18:03 | |||
|
RGB - не имеет отношения к типу устройства. Это абсолютный стандарт представления цвета. Например #FF0000 - это вполне конретный цвет (красный). И это значение не зависит от того, как было получено изображение и как оно будет отображаться. Поэтому именно к RGB и должна применяться эта формула. НО когда RAW от камеры получен, сырые пикселы по спец формулам преобразуется в RGB. И этот RGB уже является девайсо-независимым.
0
|
|||
|
Модератор
|
|||||||
| 19.02.2021, 18:27 | |||||||
Исходя из этого яркости монохромных цветов принимаются равными. Без всяких коэффициентов.
0
|
|||||||
|
|
|||
| 19.02.2021, 18:39 | |||
Сообщение было отмечено Элд Хасп как решение
РешениеGets the hue-saturation-lightness (HSL) lightness value
1
|
|||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 20.02.2021, 10:46 | |
|
Storm23, Элд Хасп, спасибо за интересную беседу.
Storm23, последний вопрос: Почему Y=0.3*R+0.59*G+0.11*Bа не Y=0.212*R+0.715*G+0.072*B?
0
|
|
|
|
||
| 20.02.2021, 13:02 | ||
|
Зачем нужен sRGB? Дело в том, что разные мониторы имеют разные характеристики матрицы экрана. И для каждого монитора есть разные формулы перевода RGB в яркость субпикселей (т.н. гамма коррекция). Но если использовать стандартный RGB то цвета на разных мониторах будут выглядеть немного по-разному. Для того, что бы этого избежать, вместо RGB стали использовать sRGB, который уже содержит гамма коррекцию. Это позволяет разным мониторам отображать цвета почти одинаково.
1
|
||
| 20.02.2021, 13:02 | |
|
Помогаю со студенческими работами здесь
17
GDI+ изменить насыщенность и яркость разложив RGB в HSL
Построить гистограмму яркости и пользуясь этой гистограммой редактировать яркость изображения
Получить цвет пикселя монитора Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|