Sunteți pe pagina 1din 61

FORMATE DE FISIERE

PENTRU IMAGINI
Continut

DOMENIUL PRELUCRARILOR DE IMAGINI

CLASE DE IMAGINI

FORMATE DE FISIERE PENTRU IMAGINI

STRUCTURI DE DATE PENTRU ANALIZA IMAGINILOR

PERCEPTIA UMANA A IMAGINILOR


DOMENIUL PRELUCRARILOR DE IMAGINI

Tehnicile de prelucrare a imaginilor digitale: inceputul anilor 1920 (s‑au


transmis pentru prima oara imagini digitizate ale agentiilor de stiri prin
cablu submarin intre New York si Londra).

Aplicatiile conceptelor de prelucrare a imaginilor digitale: larga raspandire


de la mijlocul anilor 1960 (a treia generatie de calculatoare).

Prelucrarea imaginilor: obiect de studiu interdisciplinar (aplicatii


ingineresti, fizica, chimie, biologie, medicina, geografie, meteorologie,
studiul spatiului cosmic etc).

Prelucrarea datelor reprezentand imagini  trei arii: grafica ("graphics"),


prelucrarea imaginilor ("image processing") si recunoasterea formelor din
Grafica: generarea imaginilor din informatii nonimagini. Aplicatii:
reprezentarea grafica a unei functii sau set de date experimentale,
generarea de imagini pentru programe jocuri, producerea de scene din
programele simulatoare de zbor, arta pe calculator, animatia
computerizata.

Prelucrarea imaginilor: atat intrarea cat si iesirea (rezultatul) sunt imagini.


Aplicatii: sisteme de transmisie a imaginilor (cu tehnici de inlaturare a
zgomotelor si compactare a datelor), imbunatatirea imaginilor subexpuse
sau neclare (cu tehnici de imbunatatire a contrastului), modificarea
drastica a imaginilor (schimbarea iluminarii, modificarea contururilor unor
obiecte), crearea unei imagini noi dintr‑un set de imagini existente
(exemplu: in medicina, obtinerea reprezentarii unor organe interne din
imagini cu raze x sau scintigrafice).
Cele trei domenii de aplicaţii ale tehnicii de calcul care
operează cu imagini:
Cateva aplicatii !

Restaurarea unei imagini:


Imbunatatirea culorilor unei imagini:
Reducerea zgomotului intr-o imagine:
Halftoning:
Detectarea fetelor:
Recunoasterea amprentelor digitale:
Componentele unui sistem pentru prelucrari de imagini de scop general:
Clase de imagini

Clasa 1: imagini color si cu niveluri de gri (reprezentare fidela a realitatii) 


matrici de valori intregi (pixeli - "picture element”). Imaginile color
reprezentate prin trei matrici (RGB ‑ "red", "green", "blue") sau printr‑o
singura matrice (diferiti biti ai fiecarui element corespunzand la culori
diferite). Ochiul uman nu poate distinge diferente de iluminare sub 1%, deci
un octet /culoare / pixel este suficient.

Clasa 2: imagini binivel sau cu putine culori, exemplu: imagini alb‑negru 


matrici cu un singur bit / pixel. Alta solutie: descrierea de zone avand o
culoare constanta (imagini cu putine culori).
Clasa 3: linii si curbe continue  secvente de puncte reprezentate prin
coordonatele lor x,y sau prin diferentele succesive ∆x, ∆y. Solutii
ineficiente !

=> Coduri de inlantuire (vectorul care uneste doua puncte succesive - un


simbol dintr‑un set finit).

Exemplu: cod de inlantuire cu opt directii.


Solutie si mai eficienta: cod de inlantuire diferential (punct reprezentat prin
diferenta dintre doua coduri absolute succesive).

Exemplu: opt valori (0, ±1, ±2, ±3, 4), dar frecvente de aparitie diferite: la o
curba filtrata 0 si ±1 mai frecvente, 4 extrem de rar => cod de lungime variabila
pentru fiecare directie
Direcţie(in medie 2 biti / punct). Cod
0 0
+1 01
-1 011
+2 0111
-2 01111
+3 011111
-3 0111111
4 01111111

Clasa 4: puncte sau poligoane  seturi de puncte discrete la distanta, nu se


pot reprezenta prin coduri de inlantuire. Solutia: tablouri de coordonate x,y
eventual, prin hardware, aceste puncte pot fi unite prin linii drepte sau curbe
simple => poligoane.
Tipuri de operatii

imagine de intrare a[m,n]  imagine de iesire b[m,n]:

•Operatii punctuale (complexitate/pixel constanta): valoarea de iesire


pentru o anumita coordonata este dependenta numai de valoarea de
intrare din punctul respectiv ;

•Operatii locale (complexitate/pixel p2, unde vecinatatea punctului este


p*p) : valoarea de iesire depinde numai de valorile pixelilor dintr-o
vecinatate a punctului respectiv ;

•Operatii globale (complexitate/pixel N2, unde imaginea intreaga are


dimensiunea N*N) : valoarea de iesire pentru un pixel depinde de
valorile tuturor punctelor din imagine.
Tipuri de vecinatati

•Vecinatate (esantionare) rectangulara de conectare 4 : utilizeaza o


retea de esantionare rectangulara, iar vecinatatea fiecarui pixel este
reprezentata prin cei patru pixeli vecini din directiile N, S, E, V ;

•Vecinatate (esantionare) rectangulara de conectare 8 : este


asemanatoare solutiei precedente, cu diferenta ca vecinatatea fiecarui
pixel este formata din opt pixeli din imediata apropiere a acestuia ;

•Vecinatate (esantionare) hexagonala de conectare 6 : reteaua de


esantionare este hexagonala iar vecinatatea fiecarui pixel contine cei
sase pixeli adiacenti acestuia.
FORMATE DE FISIERE PENTRU IMAGINI

Memorarea imaginilor  doua categorii de tipuri de fisiere :


-fisiere de tip rastru (colectie de puncte de imagine);
-fisiere de tip vectorial (colectie de segmente sau vectori).

GIF (Graphics Interchange Format): la sfarsitul anilor 1980 pentru


transferuri de imagini prin retele.
-restrictii: limitarea numarului maxim de culori la 256;
-metoda de compresie a datelor: tehnica LZW (Lempel-Ziv-Welch),
bazat pe un tabel de coduri pentru sabloane (reprezentand blocuri de date).
-header cu dimensiunile imaginii, rezolutia de culoare, dimensiunea
hartii de culori (colormap);
-formatul PNG introdus mai recent pentru inlocuirea formatului GIF;
-GIF si PNG sunt formate fara pierderi, deci o imagine astfel codificata
poate fi refacuta in intregime !
JPEG utilizeaza standardul de compresie Joint Photographics Experts
Group (grupul infiintat in 1986, standardul emis in 1992, aprobat in 1994 ca
ISO-10918-1).

Codificarea JPEG a unei imagini:


1)imaginea RGB  imaginea in luminanta/crominanta (YCbCr – Y
componenta de luminanta, Cb si Cr componentele de crominanta, albastru si
rosu), conform standardului JFIF (JPEG File Interchange Format). Pornind de
la o imagine RGB pe 8 biti se pot calcula componentele YCbCr (256 niveluri):

Y = 0.299 R + 0.587 G + 0.114 B


Cb = - 0.1687 R - 0.3313 G + 0.498 B + 128
Cr = 0.498 R - 0.4187 G - 0.0813 B + 128

Nu toate formatele de imagine memoreaza esantioanele in ordinea R0, G0,


B0, ... Rn, Gn, Bn. Este necesar sa se verifice ordinea esantioanelor inainte de
conversie. Conversia inversa YCbCr (256 niveluri) la RGB :

R = Y + 1.402 (Cr-128)
G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)
B = Y + 1.772 (Cb-128)
2) Ochiul uman fiind mai sensibil la luminanta (componenta Y)
decat la crominanta (componentele Cb si Cr) => reducerea
rezolutiei spatiale a componentelor Cb si Cr („downsampling” sau
„chroma subsampling”).
Rapoartele de reducere 4:4:4 (fara reducere), 4:2:2 (reducere
printr-un factor de 2 in directia orizontala din imagine a frecventei de
esantionare pentru Cb si Cr fata de frecventa pentru Y: exemplu Y
esantionat la 10 MHz, iar Cb si Cr la 5 MHZ) si cel mai comun 4:2:0
(reducerea printr-un factor de 2 in directiile orizontala si verticala din
imagine).

3) O imagine este impartita in blocuri 8x8 sau 16x16.


4) Se aplica transformata cosinus discreta (DCT-II) pentru fiecare
bloc, indepartand valorile mici. Exemplu pentru un bloc 8x8:
Se trece de la matricea cu valori pozitive de pixeli (0->255) la matricea
avand valori cu semn, centrate in jurul lui 0 (se scade 128 din fiecare
valoare de pixel => plaja de valori –128 ->127):
Se aplica transformarea DCT dupa relatia:

unde u este frecventa spatiala orizontala, 0≤u<8, v este frecventa


spatiala verticala, 0≤v<8 si

este functia de normalizare.


Pentru matricea considerata ca exemplu:

Valoarea din pozitia 0,0 este coeficientul componentei continue (DC),


iar ceilalti sunt coeficientii componentelor alternative (AC).
5) Cuantizarea este operatia care produce cele mai mari
pierderi de informatie. Se utilizeaza o matrice de cuantizare, cum este:

Coeficientii DCT cuantificati sunt calculati cu formula:


Pentru exemplul considerat se obtine matricea:

Calculul elementului 0,0:


6) Codificarea entropiei este o schema de compresie de date fara
pierdere de informatie, independenta de caracteristicile mediului.
Componentele sunt aranjate intr-o ordine in zig-zag:
Se obtine:
−26
−3 0
−3 −2 −6
2 −4 1 −4
1 1 5 1 2
−1 1 −1 2 0 0
0 0 0 −1 −1 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0
0 0 0 0
0 0 0
0 0
0
Pentru codificare se aplica un algoritm Huffman (se utilizeaza un cuvant
special de cod „EOB” pentru incheierea prematura a unei secvente cand
ceilalti coeficienti sunt 0). Secventa devine astfel:

−26
−3 0
−3 −2 −6
2 −4 1 −4
1 1 5 1 2
−1 1 −1 2 0 0
0 0 0 −1 −1 EOB
Decodificarea imaginii pentru afisare: parcurgerea acestor
operatii in ordine inversa.

O imagine refacuta este foarte asemanatoare cu imaginea


initiala, diferentele fiind neglijabile => util pentru reprezentarea scenelor
naturale (fotografii), dar mai putin pretabil pentru imagini stiintifice
(pierderea de informatie poate sa fie inacceptabila).

JPEG: cel mai utilizat format pentru stocarea si transmiterea


fotografiilor pe World Wide Web (preferat fata de GIF - maxim 256 de
culori sau PNG - fisere mult mai mari, datorita compresiei mai putin
eficiente).

JPEG nu se preteaza la desene geometrice sau text, in aceste


cazuri fiind preferate formatele GIF si PNG.
BMP (Microsoft Windows Bitmap), format propriu Microsoft
Windows. Consta dintr-un header, urmat de informatiile de imagine.

Header-ul are doua parti:

-header de fisier: BITMAPFILEHEADER (14 octeti);

-header de informatii: BITMAPINFO (40 de octeti).

Header-ul de fisier (BITMAPFILEHEADER): informatii despre


tipul, dimensiunea si reprezentarea fisierului (DIB - Device Independent
Bitmap), conform structurii:
typedef struct tagBITMAPFILEHEADER{
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DW bfOffBits;
}BITMAPFILEHEADER;

unde:

-bfType (octetii 0-1): tip fisier, trebuie sa contina semnatura


caracterele “BM” in ASCII sau 42 4D in hexazecimal;
-bfSize (octetii 2-5): lungime fisier în DWORD;
-bfReserved1 (octetii 6-7): câmp rezervat, valoare 0;
-bfReserved2 (octetii 8-9): câmp rezervat, valoare 0;
-bfOffBits (octetii 10-13): deplasament în octeti de la sfârstul
structurii BITMAPFILEHEADER pâna la zona din fisier ce contine
pixelii codati.
Header-ul de informatii (BITMAPINFO) dimensiuea si culorile
imaginii; doua componente: antetul structurii de informatii
(BITMAPINFOHEADER) si tabelul de culoare (RGBQUAD).

typedef struct tagBITMAPINFOHEADER{


DWORD biSize;
DWORD biWidth;
DWORD biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
DWORD biXPelsPerMeter;
DWORD biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
unde:
-biSize (octetii 14-17): dimensiunea header-ului de informatii
(BITMAPINFOHEADER), in octeti (40 de octeti);
-biWidth (octetii 18-21): latimea imaginii, în pixeli;
-biHeight (Octetii 22-25): inaltimea imaginii, în pixeli;
-biPlanes (octetii 26-27): numarul de plane de imagine ale dispozitivului de
afisaj (1);
-biBitCount (octetii 28-29): numarul de biti per pixel; poate fi 1, 4, 8 sau 24;
-biCompression (octetii 30-33): tipul de compresie utilizata: BI_RGB fara
compresie, BI_RLE8 sau BI_RLE4 pentru compresie de tip RLE cu cuvinte de
respectiv 8 sau 4 biti;
-biSizeImage (octetii 34-37): dimensiunea imaginii în octeti;
-biXPelsPerMeter (octetii 38-41): rezolutia pe orizontala a echipamentului (în
pixeli pe metru);
-biYPelsPerMeter (octetii 42-45): rezolutia pe verticala a echipamentului (în
pixeli pe metru);
-biClrUsed (octetii 46-49): numarul de culori utilizate în imagine (octetii 28-29
reprezinta numarul maxim posibil de culori, iar 46-49 numarul current utilizat);
daca acest camp este 0, imaginea foloseste toate culorile disponibile ale
paletei;
-biClrImportant (octetii 50-53): numarul culorilor importante din imagine; daca
acest camp este 0, toate culorile sunt luate în considerare.
Dupa header urmeaza tabela de culori, utilizata numai daca numarul de biti
per pixel este ≤8, iar numarul total de octeti utilizati in acest caz este
4x(numarul de culori din imagine). Ordonarea octetilor este de tip „little endian”
(primul octet este c.m.p.s.). Structura RGBQUAD descrie o culoare prin
componentele sale de rosu, verde si albastru si un câmp rezervat având
valoarea 0.
typedef struct tagRGBQUAD{
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
}RGBQUAD;
Fiecare pixel este codificat pe biBitCount biti; daca biBitCount este 1, 4 sau
8, fisierul contine tabela de culori asociata imaginii. Codurile pixelilor se
impacheteaza pe octeti (deci pentru 4 biti per pixel, fiecare octet reprezinta doi
pixeli succesivi). Daca biBitCount este 24, fiecare pixel este reprezentat pe trei
octeti, componentele de rosu, verde si albastru ale culorii pixelului respectiv
(True Color), fara tabela de culori. Codificarea pixelilor se face independent pe
fiecare linie orizontala a imaginii, de la stanga spre dreapta incepand cu ultima
linie, astfel incat sa rezulte un multiplu de 4 octeti, eventual prin completare cu
octeti neutilizati.
TIFF (Tagged Image File Format) format foarte flexibil. Poate salva mai
multe imagini intr-un fisier. Permite diferite rutine de compresie (LZW, JPEG,
Huffman, RLE sau nici o compresie), ordine „little endian” si „big endian” pentru
octeti, reprezentarea de imagini binare, cu niveluri de gri, RGB sau indexate.
=> software-ul pentru citirea imaginilor TIFF este complex.

Alte formate:

HDF (Hierarchical Data Format) utilizat pentru imagini stiintifice;

PCX utilizat initial pentru software-ul PC Paintbrush sub MS-DOS;

XWD (X Window Dump) utilizat la memorarea de imagini ecran sub


Xwindow (UNIX);

ICO pentru afisarea de icoane in sistemul de operare Microsoft Windows,


permitand imagini multiple intr-un fisier;

CUR format pentru afisarea cursorului mouse-ului in sistemul de operare


Microsoft Windows.
STRUCTURI DE DATE PENTRU ANALIZA IMAGINILOR

Imaginile pot fi reprezentate pe mai multe niveluri:

-imagine iconica („iconic images”) este imaginea initiala obtinuta


prin diferite tehnici, reprezentata printr-o matrice de valori intregi
corespunzatoare pixelilor;

-imagine segmentata, continand parti ale imaginii initiale, grupate


impreuna, apartinand acelorasi obiecte;

-reprezentare geometrica continand informatii despre forme 2D sau


3D;

-model relational care permite prelucrarea datelor la un nivel mai


inalt de abstractizare.

Pentru reprezentarea imaginilor: diverse structuri de date, cum sunt


matrici, lanturi, grafuri, liste de proprietati ale obiectelor, baze de date, etc.
Matrici

Matricile: structurile de date cele mai utilizate pentru reprezentarea


imaginilor la un nivel coborat. Elementele unei matrici = valori intregi
corespunzand nivelurilor de gri sau componentelor de culoare ale
pixelilor din imagine. Aceste valori se obtin direct de la un echipament de
achizitie de imagine (exemplu un scanner).
Lanturi
Lanturile („chains”) : pentru descrierea granitelor obiectelor dintr-o imagine.

Pixelul de referinta -> sageata. => cod de inlantuire:


0000776655555500000006444444442221111112234445652211.
Util cand se doreste determinarea unor puncte din imagine in care conturul
unui obiect isi modifica orientarea intr-un anumit fel (de exemplu se intoarce
spre stanga cu 90º), caci este necesar sa se caute in cadrul lantului o pereche
anumita de valori. Pentru gasirea unor informatii locale este deci necesar sa se
parcurga intregul lant. Problemele devin mult mai dificile in cazul in care sunt
necesare informatii globale (de exemplu, forma unui obiect). Lanturile se pot
reprezenta utilizand structuri statice, de exemplu vectori, de lungimea
corespunzatoare lantului cel mai lung, sau o solutie mai buna este reprezentata
de structuri dinamice.
Codificare „run length”
Este solutia utilizata la faxuri. Pentru o imagine binara se memoreaza
numai zonele apartinand unor obiecte, sub forma unei liste de subliste.
Fiecare rand din imagine continand informatie utila este descrisa printr-o
sublista, in care primul element este numarul randului (liniei) din imagine,
iar urmatoarele valori sunt perechi de coordonate, corespunzand
inceputului si sfarsitului unui segment continuu (succesiune continua de
pixeli).

Imaginea este codificata prin ((11144)(214)(52355)). Aceasta solutie se


poate utiliza la fel de bine si pentru imagini cu mai multe niveluri de gri
sau culori, prin memorarea suplimentara a nivelului stralucirii pixelilor.
Structuri de date topologice
Structurile de date topologice descriu imaginile prin seturi de elemente
si relatiile dintre acestea.
Grafuri de adiacente ale regiunilor reprezinta o categorie de astfel de
structuri. Exemplu:
Structuri relationale
Descriu relatii dintre obiectele imaginii, obtinute in urma segmentarii -> se
utilizeaza pentru analiza imaginilor la nivel inalt. Exemplu:

Nr. Obiect Culoare Rand min. Coloana min. In


1 cer albastru 0 0 -
deschis
2 soare galben 15 20 1
3 deal verde deschis 35 0 -
4 coroana verde inchis 10 80 -
5 trunchi maro 85 85 3
6 lac albastru inchis 82 5 3
Structuri de date ierarhice

Vederea cu ajutorul calculatorului („computer vision”)  volum mare de


calcule. Structurile de date ierarhice permit utilizarea de algoritmi care
determina o strategie a procesarii pe baza unui volum mic de date si numai in
portiunea de interes iau in considerare intreaga rezolutie.

Piramida M sau piramida matriciala („M-pyramid”): secventa {ML, ML-1 , ...,


M0} de imagini, unde ML este imaginea initiala, Mi-1 este obtinuta din Mi prin
reducerea rezolutiei la jumatate, etc, iar M0 este imaginea redusa la un singur
pixel. Evident ca este necesar ca imaginea sa fie patrata de dimensiune putere
a lui 2. Solutia este utila atunci cand se doreste sa se prelucreze imaginea
simultan la rezolutii diferite.
Numarul de pixeli necesari pentru reprezentarea in memorie a unei
piramide M (memorarea tuturor matricilor) este:
Piramida T („T-pyramid” sau „tree pyramid”) este un arbore in care fiecare
nod are patru fii. Radacina arborelui corespunde cu imaginea initiala, cei patru
fii ai radacinii corespund la patru cadrane egale in care se imparte imaginea,
etc.

Datorita regularitatii structurii adresele nodurilor arborelui se calculeaza usor,


daca se cunoaste adresa de inceput si dimensiunea imaginii.
Arborele 4D („quadtree”) este o modificare a piramidei T. Fiecare nod,
exceptand frunzele, are patru fii (0-NV, 1-NE, 2-SV si 3-SE) si similar cu
piramida T imaginea este impartita in patru cadrane egale, pe fiecare nivel.
Totusi nu este necesar sa se memoreze toate nodurile de pe un nivel, daca
acestea au aceleasi valori sau aceeasi stralucire.

Reprezentarile ierarhice ale imaginilor prezinta unele probleme, in special


dependenta de pozitiile, orientarile si dimensiunile obiectelor, iar doua imagini
foarte asemanatoare (de exemplu o imagine si copia acesteia foarte putin
deplasata) conduc la reprezentari mult diferite.
PERCEPTIA UMANA A IMAGINILOR

Lumina este o forma de radiatie electromagnetica ce poate


fi perceputa de ochiul uman daca este intr-un spectru restrans cu
lungimea de unda cuprinsa intre aproximativ 350-780 nm:
Se considera E(λ) distributia de energie spectrala a luminii emise de o
sursa de lumina, t(λ) si r(λ) transmisivitatea si reflectivitatea unui obiect (depind
de lungimea de unda). Pentru un obiect transmisiv distributia de energie
spectrala observata este:

C ( λ ) = t ( λ ) E (λ )
iar pentru un obiect reflectiv:

C ( λ ) = r (λ ) E (λ )
Exista trei descriptori (atribute) pentru perceptia luminii: stralucirea,
nuanta (culoarea) si saturatia.
1) In general, pentru doua surse avand aceeasi distributie spectrala
este perceputa ca fiind mai stralucitoare sursa avand intensitatea (energia) mai
mare. Totusi, stralucirea subiectiva (intensitatea perceputa de sistemul vizual
uman) este o functie logaritmica de intensitatea incidenta a luminii. Chiar daca
plaja de luminozitate este mare, aceasta nu poate fi perceputa simultan ci
numai pe anumite portiuni la un moment dat, in functie de adaptarea ochiului.
Exista o serie de experimente care demonstreaza ca stralucirea perceputa nu
este o simpla functie de intensitatea luminoasa:
a) o imagine avand benzi cu nuante de gri strict uniforme este perceputa ca
avand variatii de nuanta, mai ales in zonele de granita dintre dungile alaturate
(benzile lui Mach, dupa Ernst Mach care a descris fenomenul prima data in
1865);
b) fenomenul numit contrast simultan indica faptul ca stralucirea
perceputa a unei regiuni nu depinde exclusiv de intensitatea sa. Chiar daca
toate patratele centrale au aceeasi intensitate luminoasa, acestea sunt
percepute diferit (patratele sunt percepute tot mai intunecoase pe masura ce
fondul devine mai luminos).
Alte experimente care ilustreaza perceptia vizuala umana sunt iluziile optice.
Astfel: a) se poate distinge un patrat, chiar daca nu exista linii reprezentand
laturile sale; b) se poate distinge un cerc; c) segmentele orizontale sunt egale,
dar sunt percepute ca fiind inegale; d) chiar daca nu par, liniile oblice sunt
paralele si echidistante.
2) Un alt atribut care permite distingerea unei lumini rosii de alta verde
este nuanta („hue”). Se cunoaste experimentul prin care se obtine
descompunerea unei surse de lumina in componentele sale utilizand o prisma
de sticla (descompunerea luminii albe in componentele sale, obtinand
curcubeul).
3) Cel de-al treilea atribut este saturatia, care permite distingerea unei
lumini intense (spectrale) de o alta mai pastelata, avand aceeasi distributie
spectrala.
Aceste trei caracteristici pot fi reprezentate intr-un singur desen,
indicand perceptia umana a lumnii:
Raspunsul unui observator standard la informatia de culoare se poate
masura printr-un set de trei valori (valori tristimuli), direct proportionale
cu cantitatile de rosu, verde si albastru necesare pentru obtinerea
luminii color. Pentru un sistem arbitrar de coordonate RGB valorile
tristimuli instantanee sunt:

unde RS(λ), GS(λ) si BS(λ) sunt valorile tristimuli spectrale pentru setul de
culori primare rosu, verde si albastru, iar C(x,y,t, λ) reprezinta distributia
de energie spatiala a unei surse de imagine de energie radianta in
punctul de coordonate (x,y) la momentul t si lungime de unda λ.
Reprezentarea valorilor tristimuli necesare pentru obtinerea unitatii
de energie in cadrul spectrului:

(valorile negative au semnificatia ca anumite culori primare se aduna cu


valori negative).
Cele trei valori tristimuli T1, T2 si T3 pot forma axele unui spatiu
de culori. O culoare particulara poate fi reprezentata ca un vector in
acest spatiu, dar este necesar sa se memoreze coordonatele varfului si
nu lungimea vectorului. Prin unirea varfurilor tristimulilor se obtine
triunghiul lui Maxwell. Intersectia unui vector de culoare cu planul
triunghiului furnizeaza o masura a nuantei si saturatiei culorii in termeni
de distanta a punctului fata de varfurile triunghiului.
Uneori luminanta nu este de interes pentru reprezentarea unei culori. In
acest caz nuanta si saturatia de culoare se pot descrie prin coordonate
de cromacitate (valori tristimuli normalizate), definite astfel:

Evident, t3 = 1 – t1 – t2, deci sunt necesare numai doua coordonate


pentru descrierea unei culori.
In cadrul studiului perceptiei culorilor, unul dintre primele spatii
de culoare definite matematic a fost spatiul CIE 1931 XYZ
(Commission Internationale de l’Éclairage). Ochiul uman dispune de
receptori (celule conice) pentru lungimi de unda scurte (S), medii (M)
si lungi (L). Valorile tristimuli pentru o culoare sunt cantitatile celor trei
culori primare intr-un model color aditiv necesare sa reprezinte
culoarea respectiva. Valorile tristimuli sunt reprezentate in spatiul de
culori CIE 1931, fiind notate X, Y si Z, sunt aproximativ (dar nu identic)
culorile de baza rosu, verde si albastru (sunt derivate din acestea).
Observatorul standard este caracterizat prin trei functii de identificare
a culorii („color matching functions”).
Functiile de identificare a culorii reprezinta descrierea numerica a
raspunsului cromatic al observatorului x (λ) y (λ) z (λ )

:
Valorile tristimuli pentru o culoare cu o distributie de putere spectrala I(λ)
sunt date pentru un observator standard de:


X = ∫ I ( λ ) x ( λ ) dλ
0


Y = ∫ I (λ ) y (λ )dλ
0


Z = ∫ I ( λ ) z ( λ ) dλ
0

unde λ este lungimea de unda a luminii monocromatice echivalente


(masurata in nm).
Deoarece ochiul uman are trei tipuri de senzori de culoare raspunzand la
diferite lungimi de unda, reprezentarea tuturor culorilor vizibile este un
grafic 3D. Conceptul de culoare se poate imparti in doua componente:
stralucire si cromacitate (exemplu: culoarea gri este tot o culoare alba,
dar cu alta stralucire). Astfel cromacitatea poate fi specificata de numai
doi parametrii derivati, x si y (valori normalizate):
X
x=
X +Y + Z
Y
y=
X +Y + Z
Z
z=
X +Y + Z
si deci z = 1 – x –y.