konwersje RGB

0

mam taki problem, powiedzmy ze chce zmienic przestrzen barw z sRGB na np: AdobeRGB,
przeliczam sRGB na CIEXYZ i pozniej CIEXYZ na AdobeRGB - spoko bo to dwa mnozenia macierzy
jednak podrodze chce zrobic jakies operacje na CIELab, wiec potrzebuje poprawnych wartosci CIEXYZ aby dokonac konwersji CIEXYZ na CIELab, i tutaj jest problem.

przykladowa konwersja sRGB na CIEXYZ (z easyrgb.com):

var_R = ( R / 255 )        //R from 0 to 255
var_G = ( G / 255 )        //G from 0 to 255
var_B = ( B / 255 )        //B from 0 to 255

// magiczna funkcja
if ( var_R > 0.04045 ) var_R = ( ( var_R + 0.055 ) / 1.055 ) ^ 2.4
else                   var_R = var_R / 12.92
if ( var_G > 0.04045 ) var_G = ( ( var_G + 0.055 ) / 1.055 ) ^ 2.4
else                   var_G = var_G / 12.92
if ( var_B > 0.04045 ) var_B = ( ( var_B + 0.055 ) / 1.055 ) ^ 2.4
else                   var_B = var_B / 12.92

var_R = var_R * 100
var_G = var_G * 100
var_B = var_B * 100

//Observer. = 2°, Illuminant = D65
X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805
Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722
Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505

przed mnozeniem macierzy dane z kanalow rgb, sa modyfikowane przez specjalna magiczna funkcje, problem w tym ze dla innych niz sRGB przestrzeni te funkcje moga byc inne (np: dla AdobeRGB ta funkcja to: kanal = kanal' ^ 2.199).
Czy ktos ma jakies zrodla w ktorym bylyby przedstawione owe magiczne funkcje (R'G'B' -> tristimulus RGB)?

0

ok juz po problemie, te "magiczne" funkcje to nic innego jak kompensacja gamma, ale mogli to k.rwa gdzies jasno napisac :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0