Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Evolutia procesarii de imagini in Java

java


Evolutia procesarii de imagini în Java

Procesarile de imagini în Java au fost suportate înca de la prima aparitie, prin intermediul pachetelor java.awt si java.awt.image.

Primele versiuni ale Java AWT API au fost constituite dintr-un pachet de clase utile care urmareau afisarea de imagini aflate în Internet, dar fara nici o functie necesara pentru procesarile de imagini mai complexe. Acest pachet permitea generarea de imagini simple prin desenarea de linii si forme. De asemenea se putea citi un numar foarte mic de formate de fisiere de imagine (doar formatele GIF si JPEG), prin intermediul unui obiect de tip Toolkit din pachetul java.awt. Odata citita, imaginea putea fi doar afisata, deoarece nu prea existau operatori pentru procesarea ei.



Java 2D API extinde pachetul de început AWT prin adaugarea unui suport mai ridicat pentru operatii generale de grafica si afisare de imagini. Java 2D a adaugat clase speciale pentru definirea de primitive geometrice, formatarea textelor, definirea fonturilor, spatii de culoare si reprezentare de imagini. Noile clase suporta un set limitat de operatori de procesare de imagini cum ar fi blurr, sharpen, transformari geometrice, îmbunatatire de contrast si binarizare. Extensiile Java 2D au fost adaugate la nucleul Java AWT odata cu lansarea platformei J2SE (Java 2 Standard Edition) versiunea 1.2.

Aplicatiile mai pretentioase au nevoie însa de un API de procesare a imaginilor cu facilitati mult mai dezvoltate. Astfel au fost create de catre diverse companii o serie de API-uri de procesare de imagini care au avut un succes destul de remarcabil, dar nici unul dintre acestea nu au fost universal acceptate deoarece au esuat în a se adresa unui segment specific al domeniului procesarilor de imagini sau nu aveau putere în a îndeplini anumite nevoi. Astfel multe companii au trebuit sa-si elaboreze propria implementare în încercarea de a îndeplinii aceste nevoi.

Experienta acumulata de catre industrie si mediile universitare în crearea unor biblioteci de procesare de imagini, utilitatea acestor biblioteci peste o mare varietate de domenii de aplicabilitate si reactia utilizatorilor la aceste biblioteci a condus la crearea JAI (Java Advanced Imaging) API.

JAI este conceput pentru a suporta procesari de imagini folosind limbajul de programare Java într-un mod cât mai general posibil, adresându-se unui domeniu cât mai larg al aplicatiilor de procesare de imagini. În acelasi timp, JAI prezinta un model de programare simplu care poate fi folosit cu usurinta în aplicatii fara a fi nevoie sa se cunoasca toate fazele din constructia API-ului.

JAI extinde mai departe platforma Java (incluzând Java 2D API) permitând astfel ca procesarile de imagini de mare performanta sa fie încorporate în applet-uri si aplicatii Java. JAI este un set de clase care furnizeaza functionalitati legate de procesarea de imagini dincolo de cele obtinute la Java 2D si Java Foundation Classes, dar fiind în acelasi timp compatibil cu aceste API-uri.

JAI implementeaza un set de resurse de baza în procesarea de imagini care includ lucrul cu sectiuni de imagine, regiuni de interes si executie amânata. JAI ofera de asemenea operatori de baza în procesarea de imagini care includ multi operatori punctuali si spatiali obisnuiti, precum si operatori în domeniul frecventa. JAI încapsuleaza formate de date imagine si invocare de metode distanta printr-un obiect imagine reutilizabil, permitând unui fisier imagine, unui obiect imagine de retea, sau unui flux de date în timp real sa poata fi procesate în mod identic.

JAI este proiectat sa satisfaca cerintele oricarei aplicatii de procesare de imagini, acest API fiind foarte extensibil, permitând ca noi operatii sa fie adaugate.

JAI suporta trei modele de procesare de imagini:

Modelul producer/consumer (producator/consumator) de împingere, care este modelul de baza AWT.

Modelul de mod imediat (Java 2D), care este un model AWT mai avansat.

Model de tip pipeline de tragere, care este un model specific JAI.

Urmatorul tabel (Tabelul 7.1) contureaza câteva trasaturi pentru fiecare dintre aceste modele de procesare a imaginilor.

Modelul de împingere

Modelul de mod imediat

Modelul de tragere

Interfete/clase importante

Image

ImageProducer

ImageConsumer

ImageObserver

(JDK 1.0.X, 1.1.X)

BufferedImage

Raster

BufferedImageOp

RasterOp

(Java 2D API)

RenderableImage

RenderableImageOp

(Java 2D API)

RenderedOp

RenderableOp

TiledImage

(Java Advanced Imaging)

Avantaje

Procesare condusa de disponibilitatea imaginii (de exemplu în retea)

Imagini procesate incremental

Interfata de programare mai simpla

Modelul cel mai des utilizat

Stocheaza/proceseaza doar datele necesare

Permite evaluarea amânata

Dezavantaje

Necesita transferul (dar nu procesarea) imaginilor complete

Interfata de programare complexa

Necesita alocare de memorie a întregii imagini

Necesita procesarea de imagini întregi

Interfata de programare mai complexa

Implementare mai complexa

Tabelul 7.1. Modele de procesare a imaginilor în Java


Document Info


Accesari: 1545
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )