Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » referate » informatica » grafica design

Transformari ale scarii de gri - Operatori punctuali spatial variabili, Operatori punctuali spatial invarianti


Transformari ale scarii de gri

Transformarile scarii de gri reprezinta una din cele mai simple si mai frecvent utilizate metode de prelucrare a imaginii. Din aceasta categorie de prelucrari fac parte, de exemplu, tehnicile pentru modificarea iluminarii si a contrastului sau cele pentru modificarea paletei cromatice.


1. Operatori punctuali spatial variabili


Un operator punctual spatial variabil este de forma:

gx,y = Ox,y(fx,y),



(4.1)


 



unde f reprezinta imaginea de intrare si g imaginea de iesire. Se remarca faptul ca rezultatul prelucrarii la coordonalele (x,y) depinde numai de valoarea imaginii de intrare la coordonatele respective (Fig. 4.1).




Fig. 4.1. Operatorul punctual

In cazul cel mai general, operatorul punctual defineste o transformare neliniara si este spatial variabil, ceea ce inseamna ca transformarea se modifica in raport cu coordonatele spatiale, (x,y). 

Operatorul punctual spatial variabil poate fi utilizat, de exemplu, pentru corectia neuniformitatii spatiale a sensibilitatii senzorului de imagine si/sau a dispozitivului pentru redarea imaginii. De asemenea, pentru corectia iluminarii neuniforme a scenei captate. Un exemplu de operator spatial variabil este cel multiplicativ:


gx,y = ox,yfx,y.

(4.2)


 



In cazul corectiei neuniformitatii de camp a senzorului de imagine, operatorul necesar pentru corectie, ox,y, poate fi identificat in urmatorul mod:

Se capteaza imaginea unui ecran alb imaculat, iluminat uniform;

Se memoreaza imaginea (neuniforma) obtinuta, f;

Se compara cu valoarea ideala constanta, t, obtinuta prin calcul (in absenta unui model fizic precis, se poate utiliza media nivelurilor de gri pentru imaginea f).

Se defineste operatorul de corectie:

ox,y = t/fx,y.

(4.3)


 



Observatie: in ecuatia (4.3), operatorul spatial variabil, ox,y, poate fi interpretat si ca o imagine In aceasta idee, ecuatia (4.3) defineste o operatie intre doua imagini: multiplicarea lor. Multiplicarea imaginilor face parte din categoria operatorilor diadici. Alte exemple de operatori diadici sunt suma imaginilor, substractia imaginilor, operatiile logice intre imagini bitonale etc.


De retinut faptul ca "imaginea" operatorului folosind numere intregi este inadecvata.

Intrebare: din ce motiv ?



2. Operatori punctuali spatial invarianti


O transformare a scarii de gri poate fi descrisa cu ajutorul unui operator punctual spatial invariant:


gx,y = O(fx,y).

(4.4)


 




Transformarea definita de un asemenea operator nu se modifica in functie de pozitia pixelului prelucrat in imagine. In consecinta, coordonatele spatiale pot fi omise:


g = O(f).

(4.5)


 



Vom analiza in continuare cateva cazuri particulare mai frecvent utilizate ale operatiei descrise de ecuatia (4.5).



2.1. Modificarea liniara a luminantei si a contrastului

Modificarea luminantei sau a contrastului pot fi necesare in situatii diverse. De exemplu, cresterea contrastului poate fi necesara la imagini achizitionate in conditii de iluminare precare sau cu un reglaj al camerei necorespunzator. Prelucrarea liniara a luminantei si contrastului se poate exprima in forma:

g = cf+l

(4.6)


 



In ecuatia de mai sus, c este coeficientul de multiplicare a contrastului, iar l parametrul aditiv pentru modificarea luminantei. In planul f-g, ecuatia reprezinta o dreapta (Fig. 4.2). Pentru cresterea contrastului, este necesar sa se utilizeze un coeficient c >1.





Fig. 4.2. Transformare pentru modificarea contrastului

Exemplu de implementare a transformarii pentru modificarea contrastului

O posibila implementare C a transformarii este prezentata in continuare.



#define byte unsigned char

#define lim(x) (x<0?0:x>255?255:x)

void contrast(BYTE * ptin, // pointer la imaginea de intrare

BYTE * ptout, // pointer la imaginea de iesire

int linii,

int coloane,

float C, // coeficient contrast

int L // luminanta

)


Se presupune ca imaginea supusa prelucrarii este stocata cu incepere de la locatia de memorie indicata de pointerul ptin si ca imaginea ce rezulta se stocheaza incepand cu locatia indicata de pointerul ptout. De asemenea, se presupune ca au fost realizate in prealabil alocarile de memorie necesare. In afara celor doi pointeri mentionati, functia de prelucrare a contrasului si luminantei primeste ca parametri numarul de linii si de coloane, precum si c si l din ecuatia (4.6). De remarcat prezenta macroinstructiunii lim()in linia de program din interiorul buclei while. Cu ajutorul ei, rezultatele prelucrarii care depasesc gama valorilor de gri [0-255] sunt limitate la valorile extreme ale intervalului. In situatiile in care intervine limitarea, prelucrarea inceteaza de fapt a mai fi una liniara.

Bucla principala contine o singura linie de program. Cu toate acestea, programul nu este optimizat din punctul de vedere al vitezei de executie. In general, complexitatea prelucrarii nu are prea multa legatura cu lungimea codului de program. O solutie mai rapida, bazata pe tabele convertoare de cod (memorii LUT - "look-up table"), care poate fi aplicata si pentru prelucrarea liniara a luminantei si contrastului, se prezinta intr-un exemplu ulterior.


2.2. Transformari liniare pe portiuni a scarii de gri

O transformare a scarii de gri cu trei portiuni liniare este ilustrata in Fig.4.3, fiind descrisa de ecuatia:



(4.7)


 




Fig. 4.3. Transformare pentru modificarea selectiva a contrastului


Transformarea permite accentuarea sau atenuarea independenta a contrastului pentru trei domenii de valori ale intrarii, corespunzatoare regiunilor cu iluminare redusa, medie si ridicata. Coeficientii de contrast ai fiecarui domeniu sunt mi Dg D f = tgai. Contrastul este amplificat daca panta este supraunitara.       


2.3. Fereastra de gri

Un caz particular frecvent intilnit il constituie fereastra de gri (Fig. 4.4), definita prin ecuatia


(4.8)


 







Fig.4.4. Fereastra de gri

Parametrii B (de la "base line") si W (de la "window") sunt reglabili, pentru a se putea explora cu fereastra activa intreg domeniul de variatie a nivelului de gri. Intervalul de gri cuprins in fereastra de latime reglabila W este expandat pe intreaga gama de contrast disponibila sau in general la un alt interval de intensitati dorit. Uzual gmin = 0 si gmax= 255. Cu ajutorul prelucrarii de tip fereastra de gri, este posibila evidentierea unor regiuni ale imaginii ce se detaseaza de fundal cu diferente de intensitate imperceptibile sau abia perceptibile. Imaginile scintigrafice sau tomografice prezinta o gama dinamica de 8 pana la 12 biti, corespunzand unui numar de 256 pina la 4096 niveluri de gri in timp ce, in conditiile contrastului limitat, pe ecranul unui monitor distingem bine in jur de 20-25 de niveluri de gri. Un exemplu de utilizare a prelucrarii de tip fereastra de gri este ilustrat in Fig. 4.5. Vizibilitatea tumorii dupa aplicarea transformarii cu B = 110 si W = 10 este net ameliorata. Alte detalii neinteresante se pierd.




Fig. 4.5. a) -sus: imaginea neprelucrata si histograma ei; b) -jos: imaginea prelucrata cu fereastra de gri (B = 110, W = 10) si histograma ei.

Orice operator punctual spatial invariant se poate implementa eficient cu ajutorul unui tabel de memorie de tip LUT ("look-up table"). O implementare naiva a transformarii (4.4) sau (4.5) pentru o imagine 512 512 presupune evaluarea expresiei in cauza de 262144 ori. Presupunand o imagine monocroma pe 8 biti, este mai eficient sa evaluam expresia (4.4) sau (4.5) pentru toate cele 256 de valori posibile ale intrarii f, valorile obtinute fiind memorate intr-un tabel cu 256 elemente, tab[256]. Dupa calculul tabelului, transformarea se efectueaza prin citirea tabelului de 262144 ori, operatie mult mai rapida decat calculul. Redam codul C++ al unei functii ce calculeaza fereastra de gri definita prin (4.8) folosind o tehnica de tabelare.


#define byte unsigned char


void feGri(BYTE * ptin, // pointer la imaginea de intrare

BYTE * ptout, // pointer la imaginea de iesire

int linii,

int coloane,

int B, // nivel de baza

int W latime fereastra

)



2.4. Binarizarea imaginilor

Un caz particular de interes larg al ferestrei de gri este fereastra cu W = 0. Transformarea este exprimabila in forma:



(4.9)


 



Uzual gmax = 1 si gmin = 0, astfel ca imaginea rezultata se poate memora pe un singur bit. O asemenea imagine este denumita imagine binara. Ecuatia (4.9) reprezinta o forma simpla de detectie de prag, utila in segmentarea imaginilor.


Un exemplu de binarizare a imaginii este dat in Fig. 4.6. Pentru conveniente legate de afisare, regiunea luminoasa a fost redata cu nivelul de gri 128, iar fundalul a fost stabilit mai luminos. Pragul th a fost stabilit automat printr-un algoritm de segmentare adecvat.




Fig.4.6. Binarizarea imaginii


4.2.5. Inversarea contrastului (negativarea)

Transformarea este definita cu ajutorul ecuatiei:

g = Lmax f

(4.10)


 



unde Lmax este nivelul maxim posibil la intrare (255 pentru o imagine pe 8 biti). Un exemplu de negativare a imaginii este redat in Fig. 4.7.


       

       


Fig. 4.7. Negativarea imaginii.

2.6. Corectia scarii de gri

Modificarea scarii de gri poate fi utila pentru corectia neliniaritatii procesului de achizitie sau de formare a imaginii. De exemplu, procesul fotografic este neliniar si conduce la o logaritmare a intensitatii. Absorbtia radiatiei in imagini radiologice depinde tot aproximativ logaritmic de densitatea tesuturilor. La randul sau, senzorul de imagine (vidicon, tub CCD etc.) nu are un raspuns liniar. Neliniaritatea raspunsului este adesea aproximata printr-o lege exponentiala de forma , compensarea necesara fiind denumita corectie gamma. Nici tubul cinescopic folosit pentru redarea imaginilor nu produce o stralucire strict proportionala cu amplitudinea semnalului video aplicat. Efectul combinat al unor neliniaritati de acest tip poate fi corectat cu ajutorul unei singure transformari de tipul celei definite prin ecuatia (4.5).


Observatie: Datorita cuantizarii imaginii de intrare, corectia nu este perfecta, chiar daca dispunem de un model perfect al neliniaritatii si redam iesirea pe un numar de biti oricat de mare.


2.7. Normalizarea contrastului

O alta prelucrare de tip fereastra folosita curent urmareste aducerea imaginilor la contrastul maxim. Fie fmax si fmin intensitatile maxima si minima in imaginea de intrare si Lmax si Lmin nivelurile de intensitate maxim si minim dorite la iesire. Transformarea corespunde ferestrei de gri (3.8) cu B = fmin , W = fmax fmin , gmax = Lmax si gmin = Lmin. Uzual Lmax = 255 si Lmin = 0. O asemenea transformare este denumita extindere a contrastului ("contrast stretching"). Extinderea se face uneori cu taiere ("clipping"). In acest caz, B si W se aleg astfel incat un anumit procent minim (tipic 5%) din pixelii cei mai intunecati si din cei mai luminosi sa fie redati la fel (cu gmin, respectiv cu gmax). Prin acest procedeu se poate evita efectul advers al unui numar mic de pixeli "extremisti" capabili, in anumite situatii, de a diminua drastic extinderea scarii.


Exemplu

Sa presupunem ca avem imagini redate pe 12 niveluri de gri si dorim sa normalizam fara taiere mini-imaginea cu histograma:


.


Datorita unui singur pixel cu nivel 0 si a unui singur pixel cu nivel 11, normalizarea nu va modifica nimic, desi era mult mai utila transformarea cu B = 3 si W = 4.


2.8. Transformari de modificare a histogramei

Cu exceptia negativarii imaginii, transformarile scarii de gri prezentate pana acum presupun specificarea de catre utilizator a unuia sau mai multor parametri, respectiv interactivitate. Folosind informatii de natura statistica despre imagine, se pot defini prelucrari ale scarii de gri ce nu necesita interventia operatorului uman. Astfel, histograma nivelurilor de gri permite extragerea unei categorii largi de parametri ai imaginii, de tipul intensitatii maxime si minime, a contrastului, luminantei medii etc. Prezentam in continuare cateva posibilitati de transformare a scarii de gri ce pot fi definite pe baza histogramei.

Tehnicile de modificare a histogramei sunt transformari ale scarii de gri ce aduc histograma la o forma dorita. Motivele pentru care o asemenea transformare poate fi dorita sunt diverse si dependente de aplicatie. Pentru edificare, vom considera cazul mai frecvent al egalizarii histogramei. Imaginea neprelucrata din Fig. 4.5a are o histograma puternic neuniforma. Structuri de interes medical sunt concentrate pe o gama dinamica redusa si nu pot fi distinse, in timp ce numeroase niveluri de gri sunt practic nefolosite sau foarte rar folosite. In Fig. 4.8, este redat rezultatul transformarii scarii de gri cu egalizarea histogramei.



Fig. 4.8. Imaginea din Fig. 4.5a cu histograma egalizata

Remarcam ca:

imaginea permite observarea unui numar mai mare de entitati,

imaginea contine numai 16 niveluri de gri,

histograma este mai uniforma, dar nu perfect uniforma.

Ultimele observatii sunt legate de faptul ca imaginea supusa transformarii este digitizata. Imaginile cu histograme mai uniforme utilizeaza mai armonios nivelurile de gri disponibile, fiind adesea mai utile pentru analiza imaginii decat imaginea originala.

Pentru imagini digitizate, exista un algoritm de egalizare simplu, pe care il prezentam in continuare. Metoda presupune ca imaginea transformata sa fie reprezentata pe un numar de niveluri mai mic decat imaginea supusa transformarii. Se obtine o imagine cu histograma ce aproximeaza orice forma se doreste. Egalizarea histogramei este un caz particular al acestei transformari. 


Algoritm de modificare a histogramei

Notam cu h(n) coloanele histogramei de intrare, n = 0,1,, L 1 si cu hd(n) pe cele ale histogramei dorite, n = 0,1,,Q 1. Definim histogramele cumulative ale imaginii de intrare si ale imaginii dorite prin ecuatiile:


(4.11)


 


(4.12)


 







De remarcat, faptul ca daca se folosesc histograme normalizate, histograma cumulativa c(k) semnifica probabilitatea ca nivelul de gri sa fie mai mic sau egal cu k.


Consemnam, de asemenea, ca pentru implementare, este avantajos un calcul recursiv al histogramei cumulative:

(4.13)


 





Presupunem aceste histograme cumulative calculate. Algoritmul se deruleaza in urmatorii pasi:


1. Se cauta un numar intreg, k1, astfel incat:

.

Toate nivelurile de gri fk cu 0 < k < k1 se transforma in nivelul de iesire g0


2. Se cauta un numar intreg, k2 > k1, astfel incat:

.

Toate nivelurile de gri fk cu k1 < k < k2 se transforma in nivelul de iesire g1


3. Se continua ca la pasul 2, pana la epuizarea nivelurilor de gri de la intrare. Nu raman niveluri nedistribuite, pentru ca c(L-1) cd(Q-1) = numar de pixeli in imagine.


Exemplu


Fie imaginea


Histograma imaginii este



Imaginea transformata pentru egalizarea histogramei cu 5 niveluri de iesire are histograma dorita



Transformarea obtinuta este definita prin tabelul de mai jos:



Histograma imaginii transformate prin algoritmul de egalizare este



Este indicata o renormalizare a scarii, pentru a se compensa reducerea numarului de niveluri. Transformarea este


g' = 2 g


Imaginea finala este:




2.9. Transformarea pseudocolor

O generalizare a transformarilor scarii de gri prezentate pana acum este transformarea pseudocolor:

c=O,

(4.14)


 




prin care fiecare nivel de gri, f, este transformat intr-o culoare,


.



(4.15)


 









(2.14)

Transformarea exploateaza capacitatea sistemului vizual uman de a distinge simultan intr-o imagine un numar mult mai mare de nuante de culori decat niveluri de gri. Transformarea poate fi utila, de exemplu, in analiza imaginilor "termice" folosite la detectia defectiunilor in circuite integrate sau a pierderilor de caldura la cladiri. Pe de alta parte, colorarea regiunilor rezultate in urma unui proces de segmentare a imaginii poate fi convenabila pentru analiza vizuala a rezultatelor. Alegerea unei corespondente intuitive in raport cu specificul aplicatiei este problema ce trebuie solutionata prin stabilirea paletei cromatice si a legii de transformare. Mentionam ca procesul de colorare a filmelor alb/negru vechi este mai complicat, legea de transformare nefiind unic definita nici macar la un cadru de imagine singular. Metodele de prelucrare numerica interactive pot facilita insa enorm sarcina prin procedee de segmentare si estimare a miscarii, ce permit propagarea rezultatelor valide de la un cadru la altul.


2.10. Prelucrarea culorilor

Mai generala decat transformarea pseudocolor este transformarea de modificare a culorilor, numita adesea culori false:


c' = O,

(4.16)


 




sau mai explicit,



(4.17)


 



Transformarea modifica orice culoare intr-o alta culoare, conform legii de transformare selectate. Scopul poate fi corectia procesului fotografic, obtinerea unor efecte artistice in cinematografie etc. In primul caz, culorile dupa transformare sunt mai apropiate de cele reale. In cel de-al doilea, dimpotriva, culorile sunt modificate pentru a se accentua anumite aspecte ale mesajului vizual, uneori chiar pentru a soca.

Modificarea contrastului unei imagini color se poate obtine cu o prelucrare de forma:

,



(4.18)


 



unde k este un coeficient ce ia valori supraunitare pentru cresterea contrastului si subunitare in cazul contrar.



Politica de confidentialitate


.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.