Як дізнатися яскравість пікселя

Як дізнатися яскравість пікселя?

Необхідно виконати фільтрацію зображення. Для цього потрібно знати яскравість кожного пікселя в зображенні

Var cMax, cMin # XA0 ;: integer;
begin
cMax: = max (max (R, G), B);
cMin: = min (min (R, G), B);
L: = round ((((cMax + cMin) * 240) + 255) / (2 * 255));
L - яскравість, RGB - канали tcolor (їх можна дізнатися через GetRValue () / GetGValue () / GetBValue () відповідно)
ось :)

У монітора теж яскравість тожно підлаштовувати.
Як бути?

А ще є alpha складова.


> У пікселя немає "яскравості".

У нього є Пікс льность.

240? Це, що постійна в системі СІ?

Я ось знаю, що колір характеризується трьома параметрами:
1. Тон (власне колір)
2.Чістота (відтінки, тобто домішка білим)
3. Яскравість.

Наскільки я розумію, яскравість характеризує ступінь відмінності від чорного.
Мені потрібно цю яскравість обчислити.

Яскравість = 0.59 * Зелений + 0.3 * Червоний + 0.11 * Синій

Коефіцієнти відрізняючись від 1/3 відображають нерівномірність чутливості ока до різних ділянок спектра.

Я б уточнив, людського ока.

для розумників, мерехтливих гранями і своєю мовою без поодержкі розумних доводів, раджу ознайомитися з такою штукою, як HLS (а саме Відтінок / Яскравість / Насиченість)


> У самого пікселя немає яскравості.

Якщо розглядати один єдиний піксель, то у нього ваще нічого немає.

> То у нього ваще нічого немає

тоді він битий :)

і навіть це не можна сказати, що не порівнявши з іншим.

ось і я кажу - буквоїдство.


> Ось і я кажу - буквоїдство.

+1. Аби повипендріваться.

Та НУ вас. Чого тут випендрюватися? У мене настрій з ранку хороше було,
радів всьому, здався смішним сабж - висловив свої емоції :))
Буквоїдство, блин ..

буква - той же піксель.

Дорогий друг.
Ваша реакція мені зрозуміла.

Для початку дуже рекомендую пояснити призначення 240, і звідки взялася ця цифра.

P.S.
Для того щоб стримати ваш запал і ваше тяфканье настійно рекомендую ознайомитися для початку Mathematics of Lighting.
Наприклад в DirectX SDK.

Битися об стіну?
Покажіть приклад.

Ну відкрийте Пайнтен, ну потикайте, відразу купа запитань відпаде.

Відкрив і що далі. Відкрийте MSDN

Device-Independent Bitmaps
A device-independent bitmap (DIB) contains a color table. A color table describes how pixel values ​​correspond to RGB color values, which describe colors that are produced by emitting light.

RGBQUAD
The RGBQUAD structure describes a color consisting of relative intensities of red, green, and blue.

typedef struct tagRGBQUAD # XA0; BYTE # XA0; # XA0; rgbBlue;
# XA0; BYTE # XA0; # XA0; rgbGreen;
# XA0; BYTE # XA0; # XA0; rgbRed;
# XA0; BYTE # XA0; # XA0; rgbReserved;
> RGBQUAD;

Коли зберігається растр. Те зберігається колір в форматі RGB (ARGB).
А 240 ну ніяк не може збільшити яскравість світіння пікселя на моніторі.

> WFS # XA0; (03.11.07 13:02) [9]
> 3. Яскравість.
> Мені потрібно цю яскравість обчислити.

The RGBQUAD structure describes a color consisting of relative intensities of red, green, and blue.

Необхідно виконати фільтрацію зображення. Для цього потрібно знати яскравість кожного пікселя в зображенні

А що це за фільтрація така? Зазвичай фільтрують прямо по колірних компонентів. Звідси, мабуть, і "LOL Пацталом".

у каналу RBG максимальне значення 255, у яскравості максимальне 240.

Максимальна насправді може бути будь-який. Hue (перший компонент HSV / HLS) часто обмежують до 240, тому що по-хорошому він повинен бути в діапазоні 0..360, але байта на 360 не вистачає; а 240 рівно в 1.5 рази менше (зменшуються помилки округлення). Можливо, L в деяких реалізаціях обмежують "за компанію", хоча це не обов'язково.

рекомендую ознайомитися для початку Mathematics of Lighting. Наприклад в DirectX SDK.

Може ти все ж пояснити звідки взялося значення 240?
У наведеній тобою формулою і твоєї посиланням про це нічого немає.


> Може ти все ж пояснити звідки взялося значення 240?


> Максимальна насправді може бути будь-який. Hue (перший
> Компонент HSV / HLS) часто обмежують до 240, тому що по хорошому
> Воно повинно бути в діапазоні 0..360, але байта на 360 не вистачає;
> # XA0; а 240 рівно в 1.5 рази менше

Часто обмежує хто?

Може тобі взлянуть в словник і перевести relative intensities

Один Антошка молодець :)

Ти так і не відповів на питання хто обмежує значення коефіцієнта в
240. # XA0;

У діалоговому вікні Колір (Color), насиченість і значення яскравості повинна бути в діапазоні 0 до 240, і значення відтінку має бути в діапазоні 0 до 239.

А приводиш посилання на діалогове вікно.
Тобі вже вище натякнули, що значення може бути довільним.
І я тобі теж натякаю на relative intensities.

Ну сюдя по тому, що твоїх реплік звучало в цій темі.
Я думаю модератору потрібно звернути увагу на твоє вираз.
По скільки ні доказів, ні обговорення.
Просто дешевий "геп".
Що вказує на твоє безкультур'я і юність. Ну і дурість звичайно ж.

А ти доведи обмеження коефіцієнта в 240.
А саме магічний сенс цього 240.

> По скільки ні доказів, ні обговорення.
> Просто дешевий "геп".

Ти сам за мене все сказав, приклад і пояснення я привів вище.

> А ти доведи обмеження коефіцієнта в 240.

> Максимальна насправді може бути будь-який. Hue (перший
> Компонент HSV / HLS) часто обмежують до 240, тому що по хорошому
> Воно повинно бути в діапазоні 0..360, але байта на 360 не вистачає;
> А 240 рівно в 1.5 рази менше (зменшуються помилки округлення)
>. Можливо, L в деяких реалізаціях обмежують "за компанію",
> Хоча це не обов'язково.

Те, що ти обмежуєш канал червоного до 255 який має магічний сенс? Пішішь і не замислюєшся ...
А магічний сенс в відм, що-б вміститися в задані рамки, а у випадку з яскравістю, еше і накладивавется сенс простого переказу в інші системи представлення кольору.

Якщо ти подивишся посилання,

то складові кольору представлені в інтервалі [0,1].
А про 240 там немає і натяку. Це обмеження вигадано.
І до яскравості ні HLS, ні RGB відношення не має.
Те що в одних системах виділяють базовий рівень і називають це яскравістю не має жодного відношення до яскравості.

У зв'язку з тим, що у всіх форматах яскравість величина відносна, вважай коефіцієнт посилення яскравості.

Так ти так і не відповів на питання теми. Як дізнатися яскравість пікселя?

та ще й не враховують сприйняття кольорів очі у якого також є цветомаскі.

Я думаю тобі б не завадило вибачитися за свої так і не обгрунтовані слова. Я не погрожую, поки просто попереджаю.


> Те що в одних системах виділяють базовий рівень і називають
> Це яскравістю не має жодного відношення до яскравості.

а то, що називається RGB теж не існує, немає такого в кольорі, це хтось придумав, та ще обмеження ввели 0-255. Є тільки матриця і ложка.

в [9] досить зрозуміло про що йде мова, і в це самій "мови" є параметр "яскравість", за яким можна разфільтровать зображення уздовж і поперек.

Тему вже можна в Потрепаца перенести%)


> В [9] досить зрозуміло про що йде мова, і в це самій "мови"
> Є параметр "яскравість", за яким можна разфільтровать
> Зображення уздовж і поперек.

Це не яскравість.
Це усереднений базовий відносний рівень.


> Це усереднений базовий відносний рівень.

а ось всіх редекторах зображень це Яскравість

Яскравість чого?
Тільки точне визначення.

І окремо визначення, що таке яскравість.

Про 360 там натяк є. У HSV / HLS використовується циліндрична система координат, Hue вимірюється в градусах, тому і 0..360 -> 0..240.

Щодо "частого" обмеження я, можливо, перебільшив. Бачив дві реалізації з обмеженням (у Кетмара і в MS-вских діалогах) і дві без (на efg2.com і в книзі Шикина / Борескова). 50% на "часто" не тягне, хоча це явно більше, ніж "іноді" :)

в [9] досить зрозуміло про що йде мова, і в це самій "мови" є параметр "яскравість", за яким можна разфільтровать зображення уздовж і поперек.

Color values ​​for light sources represent the amount of a particular light component it emits. Because lights don "t use an alpha component, only the red, green, and blue components of the color are relevant. You can visualize the three components as the red, green, and blue lenses on a projection television. Each lens might be off (a 0.0 value in the appropriate member), it might be as bright as possible (a 1.0 value), or it might be some level in between. The colors coming through the lenses combine to make the light "s final color. A combination like R: 1.0, G: 1.0, B: 1.0 creates a white light, where R: 0.0, G: 0.0, B: 0.0 doesn "t emit light at all. You can make a light that emits only one component, resulting in a pure red, green, or blue light, or, the light could use combinations to emit colors like yellow or purple. You can even set negative color component values ​​to create a "dark light" that actually removes light from a scene. Or, you might set the components to some value larger than 1.0 to create an extremely bright light.

та що пристав зі своїм RGB, мова йде про інші кольори моделі.

Ну чисто технічно saturation і brightness це всього лише коефіцієнти, які видозмінюють Hue. Один в сторону чорного кольору (MIN), інший в сторону білого (MAX).

АЛЕ. Це тільки коефіцієнти.

Та така різниця. Це ті ж яйця тільки з іншого боку.


> АЛЕ. Це тільки коефіцієнти.

-->

> Так така різниця. Це ті ж яйця тільки з іншого боку.

Це все-таки з іншої опери (хоча теж цікавою - мене свого часу сильно вразив "dark light", "джерело темряви", сорри за оффтоп :)).

а ось і ілюстрація%)

До речі, в Шикін / Борескова написано - "шестигранний конус". І судячи з того, як у функціях перетворення воно ділиться на 60-градусні сектора - я схильний цьому вірити.
У HLS - "два шестигранні конуса, поставлених один на одного".
Хоча дивні "циліндричні координати" (з тієї ж книжки) виходять. Циліндричні шестигранні, хм. )

Не думав, що моє запитання викличе таку бурхливу дискусію :)))
Коротше, я взяв яскравість для кожного каналу через GetR (B, G) value і все три обробив за однаковим алгоритмом і все працює)))

Алгоритм заснований на тому, що вводиться матриця ядра, яка як би згортається із зображенням, в результаті чого воно ніби розмазується

Пам'ять: 0.88 MB
Час: 0.108 c