Войти
ПрограммированиеФорумГрафика

RGB -> Grayscale. какая формула пересчета?

Страницы: 1 2 Следующая »
#0
17:48, 27 апр 2008

сабж

#1
17:52, 27 апр 2008

color.rgb = color.r * 0.3 + color.g * 0.59 + color.b * 0.11;

#2
17:52, 27 апр 2008

Y = 0.299 R + 0.587 G + 0.114 B

#3
17:53, 27 апр 2008

oistalker
-)))))

#4
17:53, 27 апр 2008

Если я правильно понял, тебе надо сделать картинку черно-белой? тогда вот формула с шейдера от майкрософт:

float3 LuminanceConv = { 0.2125f, 0.7154f, 0.0721f };

float4 PostProcessPS( float2 Tex : TEXCOORD0 ) : COLOR0
{
    return dot( (float3)tex2D( g_samSrcColor, Tex ), LuminanceConv );
}

#5
18:14, 27 апр 2008

>Y = 0.299 R + 0.587 G + 0.114 B
Ноги растут отседова: http://en.wikipedia.org/wiki/YCbCr
По-хорошему надо еще учитывать переход от RGB в sRGB и смотреть на откалиброванном мониторе :)

#6
18:56, 27 апр 2008

спс. Y = 0.3*R + 0.59*G + 0.11*B упомянается чаще.

Che@ter
насчет шойдера спасибо, я пока тупо новую тестуру генерю и заполняю ее, видимо с шейдером будет элегантнее.

#7
19:07, 27 апр 2008

вообще для шойдра лучше так:

dot(color, float3(0.299,0.587,0.114))

#8
19:11, 27 апр 2008

В примере шейдера имеется ввиду, что значения можно из программы менять.

#9
19:30, 27 апр 2008

>вообще для шойдра лучше так:
>dot(color, float3(0.299,0.587,0.114))


а для шейдера так:
dot(color, vec3(0.299,0.587,0.114))

)))

#10
19:44, 27 апр 2008

HolyDel
жжошь ^_^

#11
10:46, 28 апр 2008

да бери макс компонент цвета и не парься

#12
11:39, 28 апр 2008

о_О
а откуда числа .299,0.587,0.114 ???

я всегда так делал:

result = (r+g+b)/3;

#13
11:50, 28 апр 2008

alex19921992
от туда что глаз по разному воспринимает интенсивность разных длин волн

#14
12:16, 28 апр 2008

alex19921992

>а откуда числа .299,0.587,0.114 ???

Из телевизионного стандарта CCIR-601.

и +1 к сказанному d.m.k

правка

А еще точнее, из рекомендации Rec. ITU-R BT.601-4 http://inst.eecs.berkeley.edu/~cs150/Documents/ITU601.PDF


2.1 Construction of luminance (EY¢ ) and colour-difference (ER¢ – EY¢ ) and (EB¢ – EY¢ ) signals
The construction of luminance and colour-difference signals is as follows:
EY ¢ = 0.299 ER ¢ + 0.587 EG ¢ + 0.114 EB ¢
whence:
(ER ¢ – EY ¢ ) = ER ¢ – 0.299 ER ¢ – 0.587 EG ¢ – 0.114 EB ¢
= 0.701 ER ¢ – 0.587 EG ¢ – 0.114 EB ¢
and:
(EB ¢ – EY ¢ ) = EB ¢ – 0.299 ER ¢ – 0.587 EG ¢ – 0.114 EB ¢
= – 0.299 ER ¢ – 0.587 EG ¢ + 0.886 E

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.