Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

цветное в черно-белое


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 - то белый, иначе - чёрный.


Наверх

Титульная страница Поиск, карта сайта Написать письмо