Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » referate » informatica » grafica design
Prelucrarea imaginilor

Prelucrarea imaginilor




Prelucrarea imaginilor

Imaginile fie ca sunt bidimensionale, fie tridimensionale pot fi prelucrate cu scopul de a aduce imbunatatiri asupra calitatii lor, sau de a obtine diverse modificari in forma si structura.

Prin prelucrare imaginile pot fi ajustate sau chiar transformate total cu ajutorul unor efecte. Pentru imaginile realizate intr-un simplu program de grafica sau mai ales pentru fotografii care nu intotdeauna reprezinta exact ce si-a dorit utilizatorul, s-a facut simtita nevoia producerii unor transformari care sa aduca produsul mai aproape de realitate sau mai aproape de dorinta fiecaruia. Prelucrarea imaginilor a fost creata pe de o parte din nevoia de perfectionare a imaginilor si pe de alta parte din dorinta de a crea ceva nou, deosebit.

Cu ajutorul acestor transformari se pot:

■ inlatura fara efort zgarieturile, firele de praf si alte imperfectiuni ale imaginii in acelasi timp pastrandu-se automat nuanta, luminozitatea si textura fotografiei originale;



■ corecta expunerea si saturatia (utilizand unelte profesionale tip camera obscura) si ajusta curbele tonale, punctele de control si gama dinamica a unei imagini;

■ realiza elemente transparente ale imaginii prin simpla eliminare a uneia sau mai multor culori, care se pot restaura rapid la setarile lor originale sau se poate aplica transparenta totala sau partiala pentru margini care se potrivesc oricarui fundal;

■ suprapune imagini, text si alte elemente in foarte multe straturi; pot fi adaugate diverse texturi;

■ pot fi realizate diferite tipuri de distorsiuni ale formelor imaginii sau alterari ale structurii sale.

Cele mai interesante prelucrari de imagini raman totusi animatiile. In zilele noastre prelucrarile imaginilor sunt uneltele de baza a nenumarate domenii precum: arta, fotografie, grafica web, chiar si domenii mai serioase ca medicina, dar sunt folosite mai ales in industria jocurilor si a filmelor unde poate fi observata o gama foarte bogata si diversa; de fapt, prelucrarile de imagini pot fi utilizate in orice fel de domeniu.

1. Efecte aplicate

Efectele in sine sunt bucati de cod care contin diversi algoritmi ce actioneaza asupra unei imagini, sau a mai multora schimbandu-le caracteristicile originale, sau realizand un ansamblu (precum animatia si morphingul).

Exista foarte multe efecte posibil de aplicat pe imagini si ele pot fi clasificate dupa modul in care actioneaza; astfel putem considera clase de efecte care actioneaza la nivel de pixel, transformand fiecare pixel individual, clase de efecte care se ocupa cu distorsionarea formelor originale ale imaginii, efecte care actioneaza asupra conturului formelor imaginii, efecte care actioneaza pe blocuri de pixeli, etc.

Totusi, efectele pot fi clasificate in doua mari grupe: efecte bidimensionale si efecte tridimensionale.

1.1. Efectele bidimensionale

Sunt cu adevarat fascinante indiferent daca sunt privite sau create. Urmatoarea parte exploreaza matematica din spatele a diferite efecte, precum blurring sau schimbarea conditiilor de luminozitate, in acest fel apropiindu-se de programarea lor.

Dintre efectele bidimensionale amintim urmatoarele: neclaritate (blurring), editarea de harti colorate (Editing colormaps), dithering, efecte de luminare (lighting), zgomotul de imagine, sferizarea, transformarea, valurile si undele.

a)Neclaritate (blurring)

Efectul de neclaritate (blurring) este un efect bidimensional care actioneaza asupra pixelilor imaginii si care are ca rezultat o imagine mai putin clara cu aspect de ceata. Efectul detine mai multe filtre, fiecare alterand imaginea in felul sau. Aceste filtre sunt: Blur, Blur More, Motion Blur, Gaussian Blur, etc.

Filtrele de Blur si Blur More isi obtin distorsiunea in acelasi fel. Ele altereaza pixelul, sursa pentru detaliul vizual si culoare intr-o imagine bitmap. Cand pixelii (care sunt ca niste puncte mici pe o panza) sunt aranjati dupa forma unui grilaj, pixelii formeaza o imagine sau o fotografie pe care observatorul o poate recunoaste. Filtrele Blur si Blur More fac media intre valoarea culorii unui pixel cu pixelii care il inconjoara, pentru a obtine acel efect distinct incetosat. Singura diferenta intre filtrele Blur si Blur More este aceea ca Blur More face media valorilor culorii unui pixel la o rata de aproape patru ori mai mare decat filtrul Blur. Filtrele Blur si Blur More pot fi utilizate pentru "a imblanzi" o imagine, fara a distruge continutul, si sunt foarte folositoare pentru neutralizarea efectului Sharp Edge dat unui obiect.

imagine originala imagine neclara

Filtrul Motion Blur se foloseste atunci cand se doreste efectul de blur numai pentru o parte din imagine, fara a distorsiona restul imaginii sau backgroundul sau. Este mai bine realizat atunci cand se selecteaza partea dorita de imagine, se copiaza intr-un layer si apoi se aplica filtrul. Filtrul de Motion Blur este destinat pentru a crea efectul asupra obiectelor care se afla in aer, sau pentru a da impresia de miscare. Acest efect simuleaza efectul produs cand o camera cu un timp de expunere lung este miscata intr-o directie arbitrara. Algoritmul care produce efectul de motion blur este foarte asemanator cu cel Gaussian blur. Diferenta consta in faptul ca pondereaza pixelii, de-a lungul unei fasii care contine raza cu distanta furnizata de utilizator si unghi, pentru fiecare pixel. De aceea acest efect este mult mai rapid.

Blurring-ul este folosit in numeroase aplicatii grafice din motive variate. De exemplu, efectul de motion blur dubleaza efectul dat de o camera fotografica unei fotografii facuta in viteza mare fata de obiectul focalizat.

imagine originala rotate blur

Alte tipuri de blur sunt similare, si folosesc o masca de convolutie (ca si motion blur). Un tip de masca este "pillbox" mask, in care convolutia este aplicata in mod egal la toti pixelii intr-o arie circulara in jurul pixelului a carui luminozitate este calculata. Aceasta metoda prezinta probleme totusi, in special daca un pixel intunecat este inconjurat de pixeli luminati si arata cumva nerealist cu marimi mai mari de masca. O reprezentare grafica a mastii pillbox se gaseste in figura 1.1.

figura 1.1

Cel mai bun si mai sofisticat tip de blur este cunoscut sub numele de Gaussian blur. Acesta simuleaza chiar bine vederea unei persoane care nu vede de aproape, fara ochelari. Cea mai mare dificultate in programarea acestui efect o reprezinta determinarea mastii de convolutie si pentru acest lucru este necesara o functie care da o imagine similara celei din figura 1.2.

figura 1.2

Functia din figura 1.2 realizeaza un blur foarte bun pentru ca pixelii imediat inconjuratori au un efect important cand sunt calculate mediile, in timp ce pixelii care se afla la mare distanta au foarte putin efect. Exemplul de functie folosita este:

Functia de mai sus, se poate observa, da doar o asezare bidimensionala in plan si pentru realizarea de Gaussian Blur este necesara o asezare tridimensionala. Pentru producerea asezarii tridimensionale, asezarea bidimensionala a fost rotita cu 360 in jurul unui tipar de cerc. Ponderea fiecarui pixel a fost determinata ca procent al intregului vector de convolutie si culoarea fiecarui pixel a fost determinata adaugand pixelii ponderati gasiti folosind vectorul. Considerand ca fiecare imagine contine 40000 de pixeli si vectorul de convolutie poate avea dimensiunea de 1600 de valori, ponderarea finala poate implica pana la 64 milioane de pixeli in aplicatie.

b) Editarea de harti colorate (Editing colormaps)

De ce oare s-ar face schimbari ale culorilor unei imagini? Exista cateva motive pentru care se face acest fel de modificare. Este foarte adevarat ca in mod obisnuit efectul este nepotrivit si reda imagini "deosebite", dar exista momente in care o schimbare este foarte necesara.

Exista doua modalitati diferite de a altera o harta de culori: prima este realizata prin schimbarea valorilor culorilor de mana; este foarte folositoare daca se vrea ca fiecare pixel care are o anumita culoare, sa aiba alta. De exemplu, daca se doreste schimbarea backgroundului unei pagini web, se poate modifica culoarea backgroundului in alta.

Este de observat ca aceasta prima metoda nu este folosita frecvent. A doua metoda, in schimb, reprezinta refacerea culorii prin schimbarea tuturor pixelilor, folosind o functie similara celei folosita in aplicatia efectului de fulger. Aceste functii pot fi apoi fie utilizate direct, fie salvate ca pallets, care reprezinta la baza fisiere de recolorare.

Efectul produs prin a doua metoda este chiar foarte des folosit in domenii precum medicina sau astronomie pentru generarea a ceea ce se cunoaste drept imagini care contin culori false. Nivelele de luminozitate diferita sunt impachetate in nuante (hues), ceea ce este facut foarte usor din punct de vedere al programarii. Rosu ar putea reprezenta semnale radio de intensitate ridicata, in timp ce albastru sau negru ar reprezenta semnale de intensitate scazuta. Cand imaginea este realizata doar din nivele de intensitate, redarea unei imagini din culori false imbunatateste in mod drastic perceptia sa, pentru ca nuantele diferite de culori sunt mult mai usor de vazut si de distins, decat umbrele diferite ale unei imagini alb-negru cu aceleasi intensitati.

imagine a functiei gaussiene cu culori false

c)Dithering

Dithering este metoda prin care o imagine este afisata prin mai multe culori decat disponibile unui computer datorita limitarilor hardware sau software. Din cauza faptului ca in multe aplicatii (aici se pot include browserele web) acest efect are loc in mod liber, de la sine, este foarte dificil sa se arate imagini ale acestui efect. Cand se foloseste acest efect, de fapt nu se afiseaza mai multe culori. Din fericire, ochiul uman poate fi usor pacalit sa vada culori care nu sunt prezente in realitate. De exemplu urmatoarea imagine:

imagine dithering

Daca privim mai aproape imaginea, se observa mici patrate rosii si albastre asezate ca pe o tabla de sah dreptunghiulara. Daca privim de la o distanta mai mare, imaginea arata violet, aceasta fiind a treia culoare vazuta. A obtine o nuanta diferita de violet, este o problema usoara si consta in schimbarea tiparului de asezare a patratelor colorate, tipar care ar contine mai multe patrate rosii, sau mai multe patrate albastre. Acest truc este deseori folosit in browserele web pentru a face cele 256 de culori sa arate ca mii de alte culori. Acesta este motivul pentru care patratele colorate au fost facute atat de mari; altfel browserul ar fi alterat imaginea si patratele individuale nu ar mai fi fost vizibile.

Alterarea, in general, este foarte buna, de aceea este utilizata atat de des. Singura problema este reprezentata de faptul ca la o analizare mai atenta culorile nu mai sunt clare, ceea ce la imaginile cu rezolutii mari reprezinta o alegere proasta. Cu cat numarul culorilor disponibile se mareste, cu atat devine mai putin necesar si deloc necesar cand se folosesc milioane de culori (24 de biti de culori).

d)Efecte de luminare (Lighting)

Efectele de luminare sunt unele dintre cele mai versatile si mai des folosite dintre efectele bidimensionale. Prin simpla ajustare a contrastului sau luminozitatii unei imagini, anumite aspecte sunt mai usor de vazut. Daca luam de exemplu o fotografie facuta prin telescop unor stele, care este scanata si introdusa pe calculator, ea poate arata bine cu exceptia faptului ca majoritatea obiectelor de intensitate scazuta nu sunt vizibile. In acest caz, tot ceea ce necesita fotografia este o simpla schimbare de contrast si putina ajustare a luminozitatii. Separand culorile prin contrast, astfel incat stelele luminate sa arate mai puternic luminate si cele intunecate sa arate mai intunecate, se pot observa stelele mici. Daca imaginea este prea intunecata sau dimpotriva prea luminata, trebuie doar alterata luminozitatea, si imaginea va arata numai potrivit.



In general, aceste efecte sunt mai importante pentru fotografii care de obicei sunt supraexpuse (cu contrast mic si luminozitate mare) sau subexpuse (cu contrast mare si luminozitate foarte putina).

Luminozitatea si contrastul functioneaza in moduri diferite, dar sunt similare in ceea ce priveste algoritmii: ambele sunt functii de transfer. Algoritmul de luminozitate folosit in cele ce urmeaza, transforma valorile canalelor de culori rosu, verde si albastru in maniera aratata in figura urmatoare.

In ecuatia urmatoare contrastul este 100 minus valoarea introdusa de utilizator impartita la 100.

Ecuatia se foloseste in urmatorul fel: ecuatia permite generarea unui map vector, care are 256 de elemente. Fiecare element din vector reprezinta valoarea pixelului transformat, astfel incat este usor ca mai tarziu sa se redea pixelilor valorile lor transformate. Folosirea unui algoritm de transformare cu ecuatii complicate sau consumatoare de timp din punct de vedere matematic, nu este benefica din punctul de vedere al usurintei folosirii, cat si al vitezei castigate. Daca ne-am inchipui un algoritm care foloseste o ecuatie cu efect foarte incet asupra unui milion de pixeli, performanta ar fi ingrozitoare. Daca se folosesc vectori, programul poate gasi raspunsurile doar cautand in acestia.

e)Zgomotul de imagine

Zgomotul de imagine se traduce prin faptul ca exista pixeli care variaza foarte mult fata de pixelii inconjuratori. Astfel se creeaza un aspect cu "purici" al imaginii care in mod normal este nedorit. Cateodata, chiar se doreste aplicarea acestui efect. Un motiv este acela ca zgomotul de imagine poate ajuta o imagine sa arate mai realist. Acest fapt este in special adevarat in cazul imaginilor generate pe computer, care de multe ori au aspecte suprarealiste din cauza perfectiunii matematice pe care o reprezinta. Intr-un asemenea tip de imagine, o cantitate redusa de zgomot de imagine poate face o diferenta profunda.

In cele mai multe dintre cazuri se doreste totusi indepartarea zgomotului de imagine si aceasta cerere este indeplinita astfel: initial se observa pixelii din interiorul unui dreptunghi dat, si se determina care dintre ei sunt mai diferiti fata de pixelii inconjuratori, si apoi se amesteca in multime. Algoritmul este similar blurring-ului pentru ca foloseste un vector de convolutie gaussian.

 

imagine fara zgomot imagine cu zgomot

Imaginea din prima figura reprezinta o imagine fara noise, si imaginea din figura a doua reprezinta o imagine careia i-a fost aplicat efectul de noise. Undele din a doua figura arata mai real, pentru ca sunt mai putin perfecte. Se poate ca diferenta de noise sa fie greu de distins daca browserul altereaza fiecare imagine.

Pentru a adauga zgomot de imagine se foloseste un algoritm care alege aleator valori de rosu, verde si albastru si apoi le adauga la valorile existente. Pentru o cantitate mai mare de noise se mareste varianta, adica se multiplica valorile aleatoare cu un numar mai mare.

f)Filtre de noise

Filtrul Add Noise (adaugare de zgomot de imagine) prezinta doua optiuni: Gaussian sau Uniform. Cea mai buna metoda de a folosi filtrul Add Noise este atunci cand se doreste mascarea sau acoperirea unor parti de imagine care au fost adaugate sau modificate. Acest filtru este folositor si atunci cand imaginea este prea clara.

Filtrul Add Noise Uniform se foloseste la imagini alb-negru sau grafice cu tonuri de gri si da un aspect difuz imaginilor.

Filtrul Add Noise Gaussian nu trebuie confundat cu filtrul Gaussian Blur. Acest filtru produce un efect de noise cu particule mai mari si se foloseste cel mai bine la imaginile texturate.

Filtrul Despeckle Noise se foloseste la imblanzirea ariilor de contrast foarte ascutit. Este similar cu unele filtre de blur din acest punct de vedere. Singura diferenta este aceea ca filtrul Despeckle Noise nu distruge continutul imaginii.

Dust and Scratches adica praf si zgarieturi este un efect care scapa (sau incearca sa scape) imaginea de defecte. Totusi nu este de asteptat sa faca miracole pentru defecte majore.

Filtrul Median Noise reduce dimensiunea de noise aleator dintr-o imagine. Efectul este realizat luand valorile luminozitatii medii a pixelilor inconjuratori. Aria de luminozitate este determinata de utilizator, cu valori de la 1 la 16 acestea reprezentand raza ariei. Este recomandat a nu se folosi prea mult acest filtru, pentru ca deterioreaza serios structura initiala a imaginii.

Filtrele Sharpen produc exact opusul efectului realizat de filtrele Blur si al unora din filtrele Noise. Efectul dat este folositor pentru a clarifica imaginea, care fie a fost supusa efectului blur, fie este neclara din cauza focalizarii gresite.

Filtrele Sharpen si Sharpen More produc in sine acelasi efect, dar Sharpen More aplica efectul la un nivel mai ridicat. Efectele sporesc si clarifica ariile de contrast de pe o imagine. Acestea sunt doua dintre cele mai simple si mai usor de utilizat filtre.

Filtrul Sharpen Edges reprezinta inversul filtrului Despeckle Noise, adica in loc de a rotunji contrastul si marginile ascutite dintr-o imagine, le scoate si mai puternic in evidenta.

Filtrul Unsharp Mask sporeste zonele de contrast in cel mai usor, insesizabil mod cu putinta. Filtrul construieste o linie intunecata pe o parte a zonei si pe cealalta parte construieste o linie mai luminoasa.

g)Sferizarea

Pentru a sferiza o imagine, ea trebuie inclusa pe suprafata unei sfere. Aceasta metoda, precum si efectul de wave, necesita o cantitate mai mare de calcule folosind trigonometria. La inceput, imaginea trebuie sa fie incadrata in exact jumatate din sfera. Apoi luam distanta y ca jumatate din distanta dintre baza semisferei si varful ei. Folosind putina trigonometrie, se ajunge la urmatoarea ecuatie a lungimii unei sectiuni transversale centrale (o parte dintr-un cerc).

Gasirea lungimii segmentului de cerc reprezinta partea cea mai grea.

Odata gasit cercul ajuta la aflarea lungimii segmentului fata de lungimea si latimea ariei de sferizat. Apoi se afla distanta de la centrul imaginii la un pixel oarecare dupa formula:

Distanta=, unde x si y sunt coordonatele centrului imaginii.

Daca distanta de la un pixel la centrul imaginii este mai mare decat raza, atunci pixelul nu este afectat. Altfel, daca distanta este mai mica decat raza, coordonatele pixelului vor fi modificate la distanta potrivita de centru.

h)Transformarea

Transformarea nu reprezinta chiar un efect special, mai degraba este o metoda de rearanjare a pixelilor intr-un altfel de tipar. In acest mod, imaginile pot fi intoarse in orice directie sau rotate dupa un unghi arbitrar. Aplicatiile folosite in continuare au doua modalitati de abordare, in functie de felul transformarii dorite: rotatie sau intoarcere (flip). Modalitatea de intoarcere a imaginii se realizeaza prin inversarea fiecarei linii de pixeli din imagine si aceasta se numeste intoarcere orizontala (horizontal flip), sau prin inversarea fiecarei coloane de pixeli, si atunci se numeste intoarcere verticala (vertical flip).

O imagine este rotita dupa algoritmul descris in cele ce urmeaza. Cand se reprezinta coordonatele, exista cateva sisteme in care pot fi redate. Unul dintre sisteme, cunoscut drept sistemul cartezian de coordonate, reprezinta valorile cordonatelor (x,y) fata de originea sistemului, aceasta fiind de obicei (0,0). Alt sistem este cunoscut sub numele de sistem de coordonate polare. Acest sistem utilizeaza distanta dintre punctul de centru si unghiul creat de raza. Astfel, pentru a roti o imagine este necesara folosirea coordonatelor polare.

Initial se iau toate coordonatele imaginii si se convertesc in coordonate polare, se adauga valoarea unghiului si apoi se reconvertesc la coordonatele carteziene si introduse intr-o matrice potrivita cu locatia data de coordonate. Aceasta metoda suna bine in teorie dar in practica imaginea apare cu locuri goale si cu cat se fac mai multe rotatii cu atat mai multi pixeli se pierd din imagine. Metoda este gresita din cauza preciziei numerice, care aproape tot timpul duce la pierderea unor pixeli.

Solutia este data de refacerea procedurii dar in ordine inversa. Adica in loc sa se incadreze pixelii in matrice, ei sunt luati din matrice. Acest lucru inseamna ca fiecare pixel fie a avut un pixel corespondent in date, fie a fost colorat cu negru pentru a fi introdus in background.

i)Valurile (Waves)

Efectul wave, adica efectul de valuri, este unul dintre cele mai interesante efecte, daca nu cel mai interesant.

imagine originala imagine cu efectul de valuri

Ceea ce pare pe suprafata imaginii un cod de rutina simplu, este de fapt un algoritm destul de complicat fata de celelalte. Pentru intelegerea algoritmului de construire a valurilor, este necesara o recapitulare a catorva principii de baza din optica.

Astfel: toate substantele clare au proprietatea fizica cunoscuta drept indice de refractie.

Legea refractiei spune urmatoarele: unde si dunt indicii de refractie ai celor doua materiale. Dar cum se aplica refractia asupra efectului de valuri? Cand utilizatorul vede tiparul de valuri, vede de fapt raze de lumina care vin dintr-un anumit loc la imaginea de dedesubtul valurilor. Refractia va face lumina sa se rasfranga in diferite cantitati care depind de panta fiecarui val din spatele fiecarui pixel. Aceasta inseamna ca pentru fiecare pixel, trebuie intai determinata inclinatia valului. Cel mai usor si mai de incredere mod de a face asa ceva este de a lua valoarea absoluta a tangentei arcsinusului facut de inaltimea valului cu pixelul impartit la amplitudinea valului. Odata ce panta a fost calculata, este necesar sa se determine diferenta orizontala si verticala dintre pixelul curent si pixelul care reprezinta sursa de lumina. Ecuatia care rezulta este:

Odata ce ecuatia a fost calculata, se iau valorile culorii pixelului plus diferentele verticale si orizontale si se inlocuiesc in pixelul original.

j)Distorsiunea

In general, efectul de distorsiune asa cum se si numeste distorsioneaza anumite parti din imagine sub diferite aspecte: de valuri, de dungi, de bucle. In continuare sunt prezentate cele mai cunoscute filtre de distorsiune.

Filtrul Pinch Distort da impresia de adancitura in imagine sau de efect de iesire din imagine. Pentru a obtine un efect de adancire filtrul se seteaza pozitiv, altfel pentru obtinerea unui efect de ridicare filtrul se seteaza negativ, pe o scara de la 1 la 100. Deci daca se vrea un "cucui" in imagine acesta este filtrul care trebuie folosit.

Filtrul Ripple Distort creeaza valuri in directia sud-est, directie care nu se poate schimba. Singurele optiuni avute la dispozitie sunt alegerea marimii valurilor si intensitatea acestora.

Filtrul Twirl creeaza un efect de rotire, mai degraba fiind asemanator cu un vartej de apa. Acest efect este folositor pentru logo-uri foarte interesante.



Distorsiunea sculptata (distorsion carve) este un filtru care genereaza imagini cu texturi valurite.

imagine originala distorsion carve

De fapt, valurile produc forma imaginii si ele pot fi combinate in mai multe feluri plecand de la forma initiala a imaginii. Efectul depinde foarte mult de culori, care pot fi controlate pe cele trei canale rosu, verde si albastru. El poate fi aplicat pe culorile originale ale imaginii, sau se poate alege o culoare compacta distincta care sa dea nuanta intregii imagini.

Astfel, sunt pastrate formele initiale ale imaginii si peste acestea efectul altereaza pixelii din anumite zone date prin distorsiune. Interesant este faptul ca efectul depinde de numerosi factori ceea ce permite realizarea unei multimi de imagini diferite, plecand de la aceeasi imagine.

Distorsion swirl adauga un efect de swirl imaginii.

imagine originala distorsion swirl

Efectul de warping distorsioneaza imaginea sub forma unor valuri care pot diferi ca dimensiune si intensitate.

warp

1.2. Efectele tridimensionale

Pe computer pot fi complexe din punct de vedere matematic, dar de cele mai multe ori sunt incredibil de fascinante. Desi matematica din spatele efectelor tridimensionale poate parea pentru multi descurajatoare, in prezent exista foarte multe biblioteci software care permit realizarea acestor efecte fara cunostinte aprofundate de matematica.

Din efectele tridimensionale fac parte: acoperirea cu texturi (texture mapping), perspectiva, alpha blending, MIP mapping, Umbrirea Gouraud (Gouraud shading), Z-Buffering, polygon rendering.

In ceea ce urmeaza vor fi prezentate unele dintre cele mai interesante si mai utilizate efecte grafice.

a)Alpha blending

Se cunoaste faptul ca o imagine este reprezentata printr-o multime de puncte numite pixeli. Culoarea fiecarui pixel este data de valori ale culorilor de baza rosu, verde si albastru(RGB).

Cand obiectele sunt pictate, ele sunt normal definite avand valori pentru culorile rosu, verde si albastru. Totusi mai exista o valoare care poate fi asociata cu pixelii, cunoscuta sub numele de canal alpha (alpha channel). Valoarea alpha pentru un pixel este o masura a trasparentei pixelului. Acest fapt permite obiectelor precum sticla, apa, sau fumul sa fie usor de realizat. Pentru a intelege mai bine acest efect, ar trebui doar sa ne imaginam ca privim un turture de gheata, intr-o dimineata rece de iarna. Se observa ca lumina trece prin turture, dar nu are aceeasi intensitate ca restul luminii pentru ca turturele este usor incetosat. Utilizarea acestui efect permite desenarea unui obiect in mod realist, astfel ca efectul aplicat asupra obiectului este acelasi cu efectul optic care are loc in natura.

b)Umbrirea Gouraud (Gouraud shading)

Umbrirea Gouraud reprezinta o metoda de a picta sau de a acoperi fatete poligonale intr-o maniera reala. Metoda este mai putin realista decat acoperirea cu texturi, dar da rezultate mai bune decat simpla colorare a fatetelor cu o culoare uniforma. Pentru a utiliza Gouraud shading, trebuie intai determinat unghiul fatetei poligonale. Apoi, bazat pe directia luminii, un tipar de culoare, in panta este aplicat pe fateta. Daca o fateta nu este asezata spre lumina, este colorata cu o nuanta mai inchisa; daca lumina cade exact pe acea suprafata, atunci culoarea trebuie sa fie mai deschisa.

c)Acoperirea cu texturi (Texture mapping)

Texture mapping este o metoda de a crea realism prin desenarea de texturi naturale pe obiecte artificiale precum poligoanele tridimensionale. Nu este surprinzator faptul ca rezultatele obtinute arata remarcabil.

Sa consideram de exemplu, o poiana cu multe fire de iarba. Fiecare fir de iarba ar putea fi desenat separat, folosind o cantitate de memorie si timp de procesare considerabile, pe cand o textura asemanatoare unei portiuni de iarba poate fi foarte usor de desenat pe aria respectiva. De asemenea, utilizarea texturilor scuteste foarte mult timp din timpul de procesare. Exista si cateva dezavantaje ale acestei tehnici, dar care sunt depasite de numeroasele avantaje. Marele dezavantaj este calitatea imaginii. In exemplul dat mai sus, desenarea firelor de iarba cu ajutorul texturii poate fi mai rapida dar imaginea nu va arata la fel de frumos ca atunci cand iarba este desenata fir cu fir. Pentru imaginile de calitate ridicata, se foloseste de obicei tehnica ray-tracing.

Ray-tracing-ul ofera acuratete totala imaginilor pentru ca foloseste reguli din optica la obtinerea rezultatului. Pentru jocurile video totusi texture mapping este o solutie buna, pentru ca imaginile nu raman de obicei prea mult pe ecran ca sa conteze.

d)MIP mapping

MIP mapping este o variatie a texture mapping (acoperirii cu texturi). Aceasta are avantajul de a mari viteza texturarii si nivelul detaliilor si nu are dezavantaje reale. MIP mapping lucreaza prin utilizarea a mai mult de o versiune din fiecare textura. Cand obiectele sunt pozitionate departe fata de raza vizuala, este utilizata o textura cu rezolutie mica. Cand obiectul intra in raza vizuala mult mai aproape, se aplica o textura diferita. Exista asadar multiple nivele de detaliere a texturii, astfel incat atunci cand obiectul care trebuie texturat se afla mai aproape, poate fi folosit un nivel de detaliu mai ridicat si in acest mod rezultand o imagine mult mai realista. Efectul reprezinta o variatie importanta a texturarii normale si este folosit in numeroase jocuri tridimensionale.

e)Perspectiva

Corectarea perspectivei este o metoda de a face obiectele sa para mai mici cand sunt asezate mult mai departe de punctul vizual. In viata reala, perspectiva se afla pretutindeni, astfel incat atunci cand lipseste din grafica computerizata, acest fapt este evident pentru orice observator. Corectarea perspectivei este de fapt foarte usor de realizat. Pentru fiecare punct, tot ceea ce este de facut este impartirea prin coordonata data de axa Oz, tinand seama de faptul ca punctului vizual ii este atribuita valoarea 0 pe axa Oz. Aceasta inseamna ca obiectele care se afla mai departe vor fi impartite (pe ambele directii orizontala si verticala) prin numere mai mari, facandu-le sa apara mai mici decat ar fi fost potrivit.

f)Filtrele pixelate

Filtrul Color Halftone realizeaza o separare a culorilor dintr-o imagine; converteste reducerea exagerata a informatiei culorilor in puncte care reprezinta jumatate din tonul pixelului, astfel creandu-se un efect foarte placut. Acest efect poate fi folosit deasemenea pentru o imagine care contine numai tonuri de gri.

Cristalizarea (crystallize) este un filtru care isi obtine efectul aplicand pete iregulare de culori solide si astfel va face imaginea sa arate ca si cum suprafata sa ar fi acoperita cu sticla bombata. Efectul are ca optiune specificarea dimensiunii petelor de culoare.

Filtrul Facet altereaza si distorsioneaza valorile culorilor pixelilor dintr-o imagine, pentru a crea pixeli grupati care sa oglindeasca culoarea cea mai raspandita din acea imagine; produce un efect foarte usor.

Filtrul Fragment preia imaginea originala si creeaza patru copii fiecare alterata fata de cealalta la distanta de unu sau doi pixeli cu aproximativ jumatate din opacitate, pe care le aliniaza.

Filtru Mezzotint realizeaza un tipar in partea de sus a imaginii cu ceea ce sugereaza utilizatorul. Optiunile tiparului sunt curbe libere, linii si puncte. Efectul creat poate fi foarte interesant simuland doua imagini care se suprapun, cu partea de sus a uneia la opacitate partiala.

Asa cum indica si numele, filtrul Pointilize, creeaza pe imagine un efect asemanator cu pictura pointilista. In acest gen de pictura, trasaturile pensulei nu mai sunt linii, ci numai puncte. Filtrul prezentat are optiunea de a schimba forma punctelor (care sunt de fapt forme geometrice diferite care aproximeaza forma cercului).

g)Feedback

Efectul de feedback realizeaza imagini care sunt reflectate in patrate sau cercuri concentrice si care dispar in distanta.

imagine originala feedback

Z-buffering este o metoda de desenare a obiectelor tridimensionale la modul potrivit. Fara aceasta metoda exista pericolul de a desena un obiect in fata altuia, cand in realitate el se afla mult mai departe. Un z-buffer este un vector cu elemente care corespund pixelilor de pe ecran. Fiecare element contine valoarea z pentru pixelul care se afla cel mai aproape de punctul vizual. Cand fiecare punct este considerat in desen, coordonata z este comparata cu cea aflata deja in buffer. Daca se afla prea departe nu se face nici o actiune. Daca se afla mai aproape, valoarea z-buffer este updatata si culoarea de pe ecran este schimbata astfel incat sa reflecte cel mai apropiat pixel din situatia curenta.

h)Dilatarea (Dilate)

Dilatarea (dilate) este un efect prin care se mareste sau se scade suprafata aparenta a unui obiect - in alte cuvinte poate face obiectele sa para ca se maresc sau se micsoreaza prin expandarea marginilor. Cand intensitatea efectului de dilatare este negativa, se produce efectul opus, si in cazuri numeroase poate face imaginea sa arate ca si cum i-ar fi fost aplicat efectul sharpen. Atunci cand marginile sunt contractate efectul este unul de erodare.

 



imagine originala imagine dilatata

i)Emboss

Efectul emboss ofera o alterare a pixelilor imaginii astfel incat imaginea rezultata are un aspect stantat. Fiecare filtru poate controla grosimea si directia stantarii. Efectul Blend emboss permite adaugarea unui aspect stantat imaginii si in acelasi timp pastreaza nuantele originale ale imaginii.

imagine originala blend emboss

Metallic Emboss permite redarea unui efect de stantare metalica asupra imaginii. Utilizatorul poate controla intensitatea efectului emboss, directia stantarii si luminozitatea imaginii rezultate.

Metallic Emboss lucreaza cel mai bine pe imaginile usor incetosate, astfel incat aplicarea unui efect de blurring inainte de efectul de stantare poate imbunatati rezultatele.

imagine originala metallic emboss

Saturation Emboss este un efect care adauga un aspect stantat imaginii, folosind nivelele de saturatie pentru a atenua nivelul de emboss.

Wrinkle Emboss adauga un aspect de stantare rotunjit unei imagini.

saturation emboss wrinkle emboss

j)Edge glow

Edge glow este un efect care adauga margini luminoase unei imagini. Marginile luminoase sunt adaugate numai pe contururile contrastante ale formelor imaginii. Luminozitatea marginilor poate fi mai intensa sau mai putin intensa dupa alegerea utilizatorului.

edge glow

Din aceasta categorie de efecte face parte si efectul Neon Glow care deasemenea lumineaza contururile imaginii dar intuneca backgroundul si restul imaginii. In acest caz, contururile sunt mult mai puternic luminate si pot fi de culori diferite in functie de culorile originale.

k)Seamless Tile

Seamless Tile este un efect care combina marginea dreapta cu marginea stanga a unei imagini, rezultatul fiind o imagine care are marginile armonizate fara a se observa legaturile. Efectul reprezinta o unealta foarte intalnita si utilizata in realizarea backgroundurilor paginilor web. Exista posibilitatea de a se schimba marginile care vor fi combinate si de a mentiona latimea benzii in care actioneaza transformarea.

imagine originala seamless tile

l)Animatia

A anima ceva inseamna, literal, a il aduce la viata, a-i da viata. Animatia, in acceptiunea uzuala, cuprinde toate modificarile care au un efect vizual. Efectele vizuale pot fi de diferite feluri: pozitii care variaza in timp (motion dynamics - dinamica miscarii), modificari ale formei, culorilor, transparentei, structurii si a texturii suprafetelor unui obiect (update dynamics - dinamica infatisarii) si modificari ale iluminarii scenei, ale pozitiei observatorului (camerei de filmat) si a focalizarii.

Utilizarea calculatorului la producerea animatiei usureaza foarte mult munca de animare propriu-zisa si scurteaza semnificativ timpul de lucru. De la cea mai simpla forma de animare, constand din desenarea pe ecran a unui obiect si miscarea lui cu ajutorul mouse-ului pe o traiectorie data - actiuni care dupa aceea sunt memorate si redate identic in clipul de animatie dorit - si pana la pachetele hardware si software specializate pentru animatie complexa, multitudinea de variante si facilitati recomanda de la sine asistenta calificata a calculatorului in acest domeniu. Vom prezenta cateva concepte de baza legate de procesul de producere a animatiei in general si de utilizare a calculatorului la animare, in particular.

l).1. Procesul de introducere initiala(Input Process)

La inceput este nevoie de introducerea in sistem a unor cadre cu obiectul de animat, denumite cadre cheie (key frames). Acestea sunt cadrele de inceput si sfarsit ale animatiei, cat si cadrele intermediare ce corespund pozitiilor esentiale ale animatiei. Introducerea acestor cadre (imagini) se poate face in diferite moduri: scanarea imaginilor deja realizate pe hartie, fotocopierea lor cu ajutorul unei camere foto digitale, sau construirea lor direct pe calculator cu ajutorul unor pachete soft specializate in desenare, concomitent cu utilizarea unor dispozitive ca mouse-ul sau, mai bine, tableta grafica.

l).2. Procesul intermediar (Inbetween Process)

Construirea cadrelor intermediare ale animatiei, cuprinse intre cadrele cheie prezentate mai sus, se realizeaza de catre calculator prin operatia numita 'interpolare'. Cea mai simpla varianta de interpolare este cea liniara, denumita si 'LERP' - Linear intERPolation. Interpolarea liniara prezinta grave limitari. De exemplu, daca este folosita la determinarea pozitiilor intermediare ale unei mingi aruncate in aer, avand ca baza trei pozitii-cheie, traiectoria rezultata este complet nerealista.

Din aceasta cauza se prefera de cele mai multe ori o serie de algoritmi mai complicati dar mai realisti de interpolare, cum ar fi curbele spline.

Tot in cadrul procesului intermediar are loc interpolarea formei, texturii si aspectului suprafetelor obiectului animat.

l). Metode de control a animatiei

controlul explicit integral: este cel mai simplu tip de control al animatiei. Animatorul furnizeaza cate o descriere pentru orice eveniment din animatie. Astfel, se vor specifica modificari simple cum ar fi scalarea, translatia sau rotatia, sau se va furniza informatia legata de cadrele-cheie implicate, impreuna cu metodele de interpolare necesare generarii cadrelor intermediare. 

controlul procedural: se bazeaza pe comunicarea dintre diverse obiecte pentru a le determina proprietatile. De exemplu, pozitia unui obiect poate influenta miscarea altuia ('mingile nu pot trece prin perete', etc.).

sisteme bazate pe constrangeri: miscarea la foarte multe obiecte din mediul fizic real au o traiectorie foarte dificil de descris in mod explicit. Totusi miscarea lor se supune la anumite constrangeri. Gasirea si specificarea acestora este obiectul acestui tip de control al animatiei.

urmarirea si inregistrarea miscarilor din realitate (live action tracking): presupune preluarea miscarilor direct de la subiectii reali care le executa. O varianta traditionala este asa-zisa 'rotoscopie' (rotoscoping): se creaza un film in care diferiti actori reali (oameni sau animale) joaca rolurile caracterelor din animatie. Apoi animatorii modifica filmul obtinut, dezvoltand fundalurile si inlocuind actorii reali cu personajele de animatie corespunzatoare. O alta varianta utilizeaza o serie de senzori de pozitie amplasati in punctele-cheie ale corpului uman, de exemplu. Din urmarirea si inregistrarea miscarii acestora, se poate construi pe calculator animatia completa a obiectelor asemanatoare celui real.

cinematica si dinamica: exprima diversele evenimente din animatie prin legile fizice ce le guverneaza. De exemplu, afirmatiile urmatoare reprezinta o descriere cinematica a unei scene: 'Cubul este in origine la momentul t=0. El se va deplasa apoi cu o acceleratie constanta in directia [1,1,5].'

Stocarea animatiilor in sistemele de calcul se poate face in formate 'standard' de film digital cum ar fi 'AVI' si 'Quicktime', sau in formate de fisiere proiectate special pentru stocarea animatiei: 'FLI' si 'FLC' - lansate de firma 'Animator Pro'.







Politica de confidentialitate







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