1 / 58

Un ambiente XML -based per l’elaborazione di immagini digitali

Un ambiente XML -based per l’elaborazione di immagini digitali. Linguaggi e Modelli Computazionali LS Anno Accademico 2008/2009 Raimondo Vergottini. Introdurre un nuovo approccio al Digital Image Processing basato su una tecnologia di uso comune come quella XML .

rad
Download Presentation

Un ambiente XML -based per l’elaborazione di immagini digitali

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Un ambiente XML-based per l’elaborazione di immagini digitali Linguaggi e Modelli Computazionali LS Anno Accademico 2008/2009 Raimondo Vergottini

  2. Introdurre un nuovo approccio al DigitalImage Processing basato su una tecnologia di uso comune come quella XML. • Dimostrare come tale linguaggio si presti anche alla descrizione di algoritmi. • Permettere di sfruttare tutti i vantaggi ad esso legati (come la generazione automatica di codice). Motivazioni ed obiettivi

  3. Definire un linguaggio di alto livello XML-based (XIPL - XML Image Processing Language) per codificare gli algoritmi. • Creare un linguaggio di basso livello, denominato XASM - XML Assembly(anch’esso XML), per una virtualmachine a stackche implementi le funzioni elementari sulle immagini digitali. • Creare il compilatore sfruttando la tecnologia XSLT. Soluzione proposta

  4. 4 Notazione Prefissa Polacca !! Un esempio di codice XIPL

  5. Definizione dell’elemento radice: 5 Sequenza qualsiasi di statement Analisi della grammatica XIPL (1)

  6. Convenzione sui nomi dei tag: 6 • Definizione dei possibili statements. Uno statements può essere uno qualsiasi di questi elementi Analisi della grammatica XIPL (2)

  7. 7 Espressioni riguardanti immagini Analisi della grammatica XIPL (3)

  8. 8 Operatori aritmetici Analisi della grammatica XIPL (4)

  9. 9 Filtraggio tramite convoluzione con una maschera Array di double Filtraggio Gaussiano Analisi della grammatica XIPL (5)

  10. 10 Filtro mediano Filtro di sharpening Resizing Analisi della grammatica XIPL (6) Rotazione

  11. 11 Scalatura And logico tra due immagini Or logico tra due immagini Or esclusivo tra due immagini Analisi della grammatica XIPL (7)

  12. 12 Not logico di un’immagine Trasformazione esponenziale Trasformazione logaritmica Trasformazione quadratica Trasformazione con radice quadrata Analisi della grammatica XIPL (8)

  13. 13 Assegnamento di un’immagine ad una variabile Salvataggio su file di un’immagine Codifiche possibili Forloop Analisi della grammatica XIPL (9)

  14. 14 Visualizzazione di un’immagine Tag per una variabile Lettura di un’immagine Analisi della grammatica XIPL (10)

  15. Esprimendo una versione semplificata in notazione formale: 15 La stringa vuota non fa parte del linguaggio!!! Classificazione secondo Chomsky

  16. Come si nota, nella produzione IMSUM(ma anche IMMUL), operando una sostituzione: 16 IMSUM::=<im.sum> IMEXPRESSIONIMEXPRESSION</im.sum> (sostituendo) IMSUM::=<im.sum> IMSUMIMEXPRESSION</im.sum> Classificazione secondo Chomsky (2) • Trattandosi di evidente Self-Embedding, la grammatica è, dunque, Context-free.

  17. Esaminiamo gli Starter Symbolsdei metasimboli che compaiono nella parte sinistra di più produzioni: • Per il metasimbloSTATEMENT: 17 Tutti disgiunti • Per il metasimbloIMEXPRESSION: E’ LL(1)? Tutti disgiunti • La grammatica è anche LL(1).

  18. 18 Notazione Postfissa Polacca !! Un esempio di codice XASM

  19. Definizione dell’elemento radice: 19 Sequenza qualsiasi di statement Analisi della grammatica XASM (1)

  20. Convenzione sui nomi dei tag: • Definizione dei possibili statements. 20 Push di un’immagine Analisi della grammatica XASM (2)

  21. 21 Push di una stringa Push di un intero Somma di una costante ad una variabile Inizio di un ciclo for etichetta Analisi della grammatica XASM (3) Istruzione di salto condizionato

  22. 22 Istruzioni per il Binding Analisi della grammatica XASM (4)

  23. 23 Analisi della grammatica XASM (5)

  24. 24 Analisi della grammatica XASM (6)

  25. 25 Analisi della grammatica XASM (6)

  26. 26 Analisi della grammatica XASM (7)

  27. 27 Analisi della grammatica XASM (8)

  28. 28 Analisi della grammatica XASM (9)

  29. 29 Analisi della grammatica XASM (10)

  30. 30 Analisi della grammatica XASM (11)

  31. 31 Analisi della grammatica XASM (12)

  32. 32 Analisi della grammatica XASM (13)

  33. Occorre la trasposizione in notazione formale: 33 La stringa vuota non fa parte del linguaggio!!! Classificazione secondo Chomsky

  34. Nessuna produzione presenta Self-Embedding. 34 • La grammatica è Regolare (tipo 3). Classificazione secondo Chomsky (2)

  35. 35 Un esempio di traduzione

  36. 36 Vengono “matchati” tutti i nodi figli e infine aggiunta l’istruzione di halt Analisi del traduttore XSLT (1)

  37. 37 Vengono prima passati i parametri della funzione, infine chiamata la funzione stessa Analisi del traduttore XSLT (2)

  38. 38 Analisi del traduttore XSLT (3)

  39. 39 Analisi del traduttore XSLT (4)

  40. 40 Analisi del traduttore XSLT (5)

  41. 41 Analisi del traduttore XSLT (6)

  42. 42 Analisi del traduttore XSLT (7)

  43. 43 Aggiunta etichetta per il salto Push del contatore Push di una unità Incremento del contatore Salto se il valore del contatore è minore di quello dell’attributo to Analisi del traduttore XSLT (8)

  44. Linguaggio di programmazione: Java. • Piattaforma di sviluppo: JDK 1.6. • XSLT tecnology: JAXP. • XML-Java Bindingtecnology: JAXB. • IDE: Netbeans 6.1. Implementazione

  45. 45 JAXP XSLT tecnology compilatore Visitor Design Pattern Approccio utilizzato JAXB unmarshallingtecnology Interprete

  46. GUI Implementazione XML-based ImplementazioneXML-based Image Processing Diagramma dei componenti Prototipi per la VirtualMachine Prototipi per il Compilatore

  47. Modello del compilatore Il parser verifica la correttezza sintattica Il traduttore converte le frasi sintatticamente corrette Implementazione per il linguaggio XIPL Wrapping per le API della standard JDK Diagramma delle classi (1) Wrapping per le API SAX (più performanti rispetto alle DOM)

  48. Interfaccia del Visitor Design Pattern Modello della VirtualMachine Implementazione XASM Il generico parser restituisce un Object (magari un APT….) Diagramma delle classi (2) Wrapping per la tecnologia JAXB

  49. Esecuzione: la virtualmachine esegue (in un loop) sempre l’istruzione corrente. 49 Il parser restituisce l’oggetto che rappresenta l’albero Interpretazione

  50. Assegnazione di una variabile: si cerca (partendo dall’env. Globale) se la variabile esiste. • In caso contrario viene creata nell’env. corrente. 50 Interpretazione: Politiche (1)

More Related