Guest |
Отправлено: 10.03.2005, 18:10 |
|
Не зарегистрирован
|
Как зная яркость пикселя разложить ее на R, G, B, составляющие? |
|
AVC |
Отправлено: 10.03.2005, 18:24 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Яркость не является характеристикой пикселя, а является функцией RGB. Когда-то применял формулу
оттенок_серого = 0.55*G + 0.3*R + 0.15B
|
|
Bond |
Отправлено: 10.03.2005, 18:25 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 142
|
Если под выражением "яркость пикселя" подразумевается его цвет, то:CODE | char R = Color & 0xFF, G = (Color >> 8 ) & 0xFF, B = (Color >> 16 ) & 0xFF; |
|
|
Rius |
Отправлено: 10.03.2005, 18:27 |
|
Мастер участка
Группа: Участник
Сообщений: 321
|
В винде задается цвет пикселов, а не их яркость. Цвет раскладывается так:
CODE | DWORD color = clNavy;//или TColor color = clNavy;
BYTE r, g, b;
b = (color & 0x00ff0000) >> 32;
g = (color & 0x0000ff00) >> 16;
r = (color & 0x000000ff); |
Обратно собирается так:
CODE | TColor color = RGB(r, g, b); |
Отредактировано Rius — 10/03/2005, 20:31
|
|
Guest |
Отправлено: 10.03.2005, 18:47 |
|
Не зарегистрирован
|
Я имел ввиду что если я получил яркость пикселя следующим образом (R*.257 + G*.504+B*.098+16.) то из той яркости можно ли восстановить значение R G и B
|
|
Bond |
Отправлено: 10.03.2005, 18:52 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 142
|
Это уже уравнение с тремя переменными: R, G, B
|
|