![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
цветное в черно-белое
copron © (2007-09-10 20:46:00)Здравствуйте!
Подскажите какими формулами можно преобразовать цветное изображение в черно-белое. То есть как определить какой цвет из RGB мы преобразуем в черное, а какой в белое. А если мне например понадобиться преобразовать в оранжево-белое или 256 цветов, то как в данном случае поступить?
Jeer (2007-09-17 16:21:00) [1]
> DevilDevil © (17.09.07 15:05) [15]
Избыток голубого в системе 1/3 ? :))
DevilDevil (2007-09-17 15:05:00) [2]> WondeRu at work (17.09.07 09:39) [12]
мне вот тоже нтересно, что не понравилось
Jeer (2007-09-17 10:02:00) [3]
> WondeRu at work (17.09.07 09:39) [12]
>
>
А чего тут не ндравится ?
1/3 - это простейший способ перехода от RGB к яркости в линейной системе RGB.
> Человеческий глаз менее восприимчив к синему.
А глаз тут практически и не при чем.
Все эти формулы корреции предназначены в первую очередь для учета особенностей люминофора и косвенно уж - глаз.
Кроме того, для более точного учета свойств люминофоров для CRT используются формулы коррекции для нелинейной системы RGB (гамма-коррекция)
WondeRu at work (2007-09-17 09:44:00) [4]
> А чего синий так не любят? :)
Человеческий глаз менее восприимчив к синему.
http://physics.nad.ru/Physics/Cyrillic/rgb_txt.htm
WondeRu at work (2007-09-17 09:39:00) [5]
> Господа, Вы с какой планеты ?
>
> V := (integer(R) + G + B) div 3;
>
> R := V;
> G := V;
> B := V;
Откуда такую формулу взял?
Неуд! Давай зачетку!
Efir (2007-09-16 20:51:00) [6]Причём здесь оранжевый если V -
> это градации серого.
copron (2007-09-16 20:40:00) [7]А если мне надо преобразовать в оранжево-белый, то нужно варьировать переменную V для более правильного пребразования (ну или другую по другим ответам)?
DevilDevil (2007-09-15 15:55:00) [8]это градации серого.
а если чёрно-белый...
if V < 128 then V := 0 else V := 255;
DevilDevil (2007-09-15 15:53:00) [9]Господа, Вы с какой планеты ?
V := (integer(R) + G + B) div 3;
R := V;
G := V;
B := V;
homm (2007-09-12 15:02:00) [10]> [6] WondeRu at work (12.09.07 14:33)
А чего синий так не любят? :)
WondeRu at work (2007-09-12 14:33:00) [11]
> Если каждый из цветовых компонентов больше 127 - то белый,
> иначе - чёрный.
Мдяяя))
copron, выбирай
Y = K1*R + K2*G + K3*B
1. 0,360*R + 0.530*G + 0.110*B
2. Стандаpт CCIR 601-1 (как в стандаpтной VGA-ой функции):
0,299*R + 0,587*G + 0,114*B
3. Стандаpт CCIR 709:
0,213*R + 0,715*G + 0,072*B
4. Стандаpт ITU:
0,222*R + 0,707*G + 0,071*B
потом по Y ставишь условие: если больше какого-то значения, то белый, иначе - черный
Efir (2007-09-11 11:49:00) [12]Никто и не сомневается.
DVM (2007-09-11 11:11:00) [13]
> Efir © (10.09.07 21:36) [2]
черно-белое (монохромное) и градации серого это две большие разницы
homm (2007-09-10 22:12:00) [14]> [2] Efir © (10.09.07 21:36)
> pix:=Round(0.3*R+0.59*G+0.11*B) - это есть серый
Ну и трава :)
Efir (2007-09-10 21:36:00) [15]pix:=Round(0.3*R+0.59*G+0.11*B) - это есть серый
if pix>Const then pix:=255 else pix:=0;
R:=pix;
G:=pix;
B:=pix;
Dib@zol (2007-09-10 21:01:00) [16]Если каждый из цветовых компонентов больше 127 - то белый, иначе - чёрный.