Metodi di interpolazione di alto ordine per lo zooming di immagini: ENO e WENO Seminario di Metodi...

Post on 02-May-2015

222 views 3 download

Transcript of Metodi di interpolazione di alto ordine per lo zooming di immagini: ENO e WENO Seminario di Metodi...

Metodi di interpolazione di alto ordine per lo zooming di immagini: ENO e

WENO

Seminario di Metodi Matematici per l’ottimizzazione A.A. 2011/2012

Prof.ssa Rosa Maria PidatellaValeria BorzìAndrea Francesco FornaiaDavide Stefano Sardina

2

Sommario

•Trattazione dell’operazione di zooming come problema di tipo interpolatorio

•Metodi tradizionali non adattivi (basso ordine)▫Efficienti in termini di tempo di esecuzione▫Non preservano le alte frequenze nelle

immagini •Metodi adattivi (alto ordine): ENO e

WENO▫Maggior ordine di accuratezza▫Minore efficienza

3

Interpolazione sulle immagini (1)

• Il problema dell’interpolazione in generale consiste nell’approssimazione di una funzione o di un insieme di dati con una funzione che sia più semplice e che abbia buone proprietà di regolarità.

• Nel caso particolare delle immagini, si tratta di un metodo software grazie al quale si riesce a raggiungere una dimensione maggiore dell’immagine originale.

• L'ingrandimento digitale utilizza l'immagine originale per generare una nuova immagine che contiene un numero maggiore di punti.

4

Interpolazione sulle immagini (2)

Il processo di interpolazione consiste nel disporre i pixel dell’immagine originale su una matrice come in figura e stimare il valore dei pixel mancanti utilizzando quelli noti.

5

Alta e bassa frequenza

• Nel dominio delle frequenze un’immagine digitale è costituita da componenti ad alta e bassa frequenza. Di notevole importanza per la nostra trattazione sono le prime perché rappresentano i particolari dell’immagine.

• Dato che i metodi di interpolazione tradizionali non sono in grado di preservare le alte frequenze, si ricorre ad altri metodi di interpolazione (detti adattivi). Questi sono caratterizzati per la nitidezza dei risultati e per la riduzione degli artefatti che, in un’immagine, costituiscono due fattori critici nella percezione visiva della qualità di un’immagine.

6

Artefatti

•I metodi di interpolazione tipicamente introducono artefatti del tipo:‒ Aliasing‒ Blurring‒ Blocking‒ Fenomeni di Gibbs (ringing)

7

Artefatti (2)1. Aliasing (scalettatura): le linee che

definiscono gli edge appaiono frastagliate

8

Artefatti (3)2. Blurring (sfocatura): a causa

dell’ingrandimento dell’immagine, essa può risultare sfocata

9

Artefatti (4)3. Blocking (quadrettatura): i contorni del

soggetto non sono più percepiti come uniformi ma come una serie di quadrati accostati l'un l'altro

10

Artefatti (5)4. Fenomeni di Gibbs (ringing): oscillazioni

nei pressi di discontinuità che provocano effetti ad anelli vicino gli edge

11

Metodi di interpolazione•Metodi non adattivi: utilizzano gli stessi

filtri lineari spazialmente invarianti su ogni regione dell’immagine. Fanno parte di questa categoria i metodi nearest neighbour, bilineare, bicubico.

Si basano su interpolazione polinomiale:

Grado = 1 (lineare)

Grado > 1

basso ordine di accuratezza

alto ordine di accuratezza ma

oscilla nelle discontinuità

12

Metodi non adattivi• Nearest neighbor: metodo semplice e rapido perché si

limita a porre il valore di ogni pixel sconosciuto uguale al valore del pixel noto più vicino. Svantaggi: scalettature e seghettature specie sui contorni.

• Bilineare: il valore del pixel da interpolare è ottenuto facendo la media dei valori dei quattro pixel noti diagonalmente adiacenti. Svantaggio: immagine sfocata.

• Bicubico: sulla base dello stesso principio del metodo bilineare ma considerando un numero maggiore di pixel vicini, viene utilizzato un polinomio interpolante bicubico vincolato ai valori dei pixel noti che circondano il pixel da interpolare.

13

Nearest Neighbor (NN)

Bilinear Bicubic

14

Metodi di interpolazione

• Metodi adattivi: fanno uso di tecniche diverse a seconda del tipo di regione che si provvede ad interpolare (edge o aree uniformi).

Caratteristiche: evitano le discontinuità risolvono il problema delle oscillazioni nei

punti di discontinuità, raggiungendo ordini di accuratezza maggiori

viene selezionato un intorno ad alta regolarità del pixel da interpolare

15

Metodi adattivi

•A differenza dei non adattivi, questi metodi determinano i pixel da utilizzare all’interno di uno stencil (insieme di punti da usare per l’interpolazione) e tengono conto del tipo di regione che si sta interpolando escludendo i pixel che apportano una discontinuità

•I metodi adattivi che tratteremo sono i metodi ENO (Essentially Non-Oscillatory) e WENO (Weighted-ENO)

16

Ma cosa si intende per…

•discontinuità•alta frequenza •regolarità

17

Discontinuità

Analiticamente, si dice punto di discontinuità di una funzione a valori reali f un punto appartenente al dominio di f nel quale la funzione non risulti continua. La tipologia di discontinuità che riscontriamo nella teoria delle immagini è quella di prima specie, anche detta ‘salto’.

18

Discontinuità•Nella teoria delle immagini digitali

Le discontinuità in un’immagine si

riscontrano principalmente nei

contorni

19

Alta frequenza

Il concetto di alta frequenza si riallaccia al concetto di discontinuità. Le componenti ad alta frequenza di un’immagine digitale, infatti, rappresentano i particolari dell'immagine e i disturbi di quantizzazione. In generale, ciò avviene in presenza di bordi (edge).

20

Regolarità

• Una funzione regolare è una funzione che non presenta "criticità", quali cuspidi, punti angolosi, flessi, asintoti verticali

• Dal punto di vista quantitativo, bisogna studiare le derivate della funzione e la loro continuità

• Quindi un’area di un’immagine ha un livello di regolarità che è inversamente proporzionale al numero di discontinuità che presenta al suo interno. Se questo livello è alto allora i valori dei pixel sono tutti pressoché uniformi

• Zone ad alta regolarità sono anche dette a bassa frequenza

21

Concetto del burrone

Mentre i metodi non adattivi andrebbero avanti, non curanti della discontinuità incontrata…

… i metodi adattivi tornerebbero indietro!

22

Metodi di interpolazione

METODI ADATTIVI METODI NON ADATTIVI

PRO PrecisioneAttenti alle alte frequenzeMigliore risoluzione

nelle discontinuità No aliasing

Efficienza SemplicitàUsati

principalmente in dispositivi mobile, o in applicazioni real-time

CONTRO LentezzaComplessità

Poco adatti a immagini irregolari e discontinue

Artefatti

ENO e WENO

Passaggio dalla teoria alle immagini• ENO e WENO furono creati come

metodi numerici per la risoluzione delle PDE (Partial differential equations) nell’ambito della fluidodinamica

• Il passaggio dalla teoria delle PDE alle immagini è dovuto al Anil K. Jain, professore alla Michigan State University che ne parla nel suo articolo “Partial differential equations and finite-difference methods in image processing, part 1: Image representation”

Campi di applicazione

•Metodi vengono utilizzati in molti ambiti scientifici: ▫fluido dinamica computazionale (CFD) ▫astronomia e astrofisica computazionale (i

modelli sono simili alla CFD)▫simulazioni di dispositivi semiconduttori▫modelli di flusso di traffico▫ biologia

•Metodi WENO sono i più usati, poiché a parità di ordine di accuratezza, sono più efficienti dei metodi ENO

Distinzione tra ENO e WENO

• ENO– Per ogni punto da interpolare si definisce un intorno

di valori noti, detto cella– Costruisce uno stencil (insieme di celle) partendo

dalla cella base e aggiungendo ad ogni passo di estensione o la celle di destra o quella di sinistra.

– Tra le due celle, verrà scelta quella che, aggiunta allo stencil, permette di ottenere un grado di regolarità maggiore, che verrà stabilita attraverso il metodo delle differenze divise di Newton.

– Quindi si effettua l’interpolazione– Costruzione adattiva dello stencil

ENO

Quando ENO si accorge di aver incontrato una discontinuità, torna indietro

stencil generato

Distinzione tra ENO e WENO

• WENOUtilizza tutti gli stencil possibili senza porre condizioni di estensione, ed assegna un peso diverso ad ognuno di essi in base alla loro regolarità; quindi effettua l’interpolazione • Questo approccio “brute force” si

dimostra sperimentalmente migliore di ENO grazie all’eliminazione dei costrutti condizionali che non sono molto efficienti su alcuni computer vettoriali

WENOWENO considererà tutti gli stencil, dando peso differente ad ognuno in base alla loro regolarità.

alta regolarità

bassa regolarità

30

Ricostruzione ad una dimensione

• Vediamo i metodi di interpolazione ENO/WENO applicato ad una generica

•Data un’insieme di punti nell’intervallo [a,b] con

si definisce cella Ii :

dove la dimensione di ogni cella è:

per i=1,2,…,N

2

1

2

1 ,......,N

xx

bxxxxaNN

2

1

2

1

2

3

2

1 ...

2

1

2

1 ,ii

i xxI

2

1

2

1

ii

i xxxΔxi

2

1ix

2

1ix

],[:)( baxv

31

Δxi

v

Medie di cellaData la cella Ii, definiamo la media di cella :

i=1,2,…,N

2

1

2

1

)(1

i

i

x

xi

i dvx

v

v

Nella tecnica ENO/WENO, queste medie di cella verranno usate come vincoli del polinomio interpolante.

i=1,2,…,N

32

Polinomio interpolante

• Per ogni cella Ii cerchiamo un polinomio interpolante pi(x) che abbia le seguenti caratteristiche:▫Sia di grado al più k-1▫L’ordine di accuratezza dell’approssimazione

della funzione v(x) nella cella Ii sia k)()()( k

i xOxvxp NiIx i ,...,1,

• In particolare, questo polinomio fornirà l’approssimazione della funzione v(x) ai bordi della cella Ii con un ordine di accuratezza k

)()(2

1

2

1k

ii

ixOxpv

)()(

2

1

2

1k

ii

ixOxpv

33

Costruzione dello stencil

• Fissato un ordine di accuratezza k, per individuare il polinomio pi(x) interpolante la funzione v(x) nella cella Ii, si sceglie uno stencil di k celle, composto dalla cella di base Ii, da r celle a sinistra e s celle a destra, con il vincolo:

r+s+1=k con r,s>=0

• Denotiamo tale stencil nel seguente modo:

S(i)={Ii-r,…, Ii+s}

• In ENO lo stencil verrà costruito in maniera adattiva▫ Se la funzione è regolare a tratti, usando uno stencil fissato (non

adattivo) si rischierebbe di includere delle discontinuità che darebbero luogo ad oscillazioni del polinomio interpolante, abbassandone l’accuratezza

• In WENO, per ogni cella Ii verranno considerati tutti i possibili stencil, combinando poi i risultati ottenuti

34

Costruzione del polinomio

Dato S(i), esiste un unico polinomio di grado k-1=r+s interpolante che soddisfi la seguente condizione di interpolazione:

Ovvero, che per ogni cella dello stencil creato, le medie di cella per il polinomio interpolante coincidano con le medie di cella della funzione da interpolare

Questo polinomio è l’approssimazione di ordine k che stiamo cercando, nella parte della regione ricoperta dallo stencil in cui la funzione si mantiene sufficientemente regolare .

)()( xvxp jj

j

x

xj

x

xjj vdv

xdp

xp

j

j

j

j

2

1

2

1

2

1

2

1

)(1

)(1 sirij ,....,

35

Approssimazione ai bordi di cella

• Il polinomio generato fornisce in particolare l’approssimazione dei valori di v(x) ai bordi della cella Ii

• La dipendenza di tali valori dalle medie delle celle contenute nello stencil è espressa da delle costanti che sono ricavate dai polinomi di Lagrange

)(1

02

1k

jri

k

jrj

ixOvcv

)(~

1

02

1k

jri

k

jrj

ixOvcv

• Poiché ovviamente per ogni cella possiamo considerare solo una delle approssimazioni ai bordi

• In maniera analoga, useremo questo metodo di interpolazione per ricavare il valore dei pixel non noti durante l’operazione di zooming

2

1)1(

2

1iivv

36

ENO per le immagini

•I concetti appena esposti si possono applicare al problema di zooming delle immagini, le quali possono essere rappresentate tramite funzioni a due dimensioni.

• Il problema da sviluppare sarà unidimensionale: si agisce prima sulle righe e in seguito sulle colonne

37

Definizione di cella

• Dato un pixel da interpolare all’interno di un’immagine, è possibile costruire un intorno di 2 pixel lungo una sola direzione così formato

sx ? dx

questa cella è detta cella di base

38

Definizione di stencil•Accanto alla cella di base saranno presenti

altre celle. Uno stencil è un insieme di celle contigue, contenenti la cella base

• I pixel noti contenuti all’interno di uno stencil, verranno utilizzati per poter interpolare il valore del pixel non noto all’interno della cella base: maggiore è il numero di punti considerati, maggiore sarà l’ordine di accuratezza raggiunto

? ?? ??

cella di base

39

In generale:

Per un grado di accuratezza k, sono necessari k+1 punti per interpolare un pixel; partendo da una cella di base (2 punti), si estende lo stencil considerando tutte le possibilità. Verrà scelto quello in cui V(x) abbia la più alta regolarità in confronto agli altri potenziali stencil.

Ciò viene realizzato suddividendo il compito in più step, in ognuno dei quali si aggiunge un punto allo stencil; effettuando quindi le differenze non divise, verrà scelto lo stencil con valore assoluto minore.

40

Scelta dello stencil

•L’idea di base è evitare di includere nello stencil le celle discontinue. Per fare ciò usiamo le differenze divise di Newton che forniscono una misura di regolarità della cella nello stencil. Per una griglia uniforme , e non occorre calcolare le differenze divise ma quelle non divise.

•Le differenze non divise di grado j, per j>=1, sono definite per induzione da:

xxi

2

1

2

1

2

3

2

1

2

1

2

1 ,...,,...,,...,jiijiijii

xxVxxVxxV

41

42

Metodo ENO: esempio

1. Sia k=2, lo stencil avrà k+1=3 punti. La cella di base è:

2. Al successivo step, si hanno solamente due possibili scelte per espandere lo stencil:

2

1

2

1 ,ii

i xxI

2

1

2

1

2

3 ,,)(iiixxxiS

2

3

2

1

2

1 ,,)(iiixxxiSoppure

43

Metodo ENO: esempio

3. Si effettua quindi il calcolo delle differenze non divise scegliendo lo stencil con il valore minore.

4. Definito lo stencil, è possibile determinare il valore del pixel da interpolare secondo la formula:

1

02)12(,, *

k

llrjirlji vCv

44

Metodo ENO: esempioPasso 1.Cella di base

… 212

0 213

0 196

0 139

Pixel da interpolare

18,,2

1

2

1

2

3

iiixxxV

40,,2

3

2

1

2

1

iiixxxV

2

1ix

2

1ix

2

3ix

2

3ix ix

Passo 2.2a. Espansione stencil a sinistra e calcolo differenze

non divise.

2b. Espansione a destra e calcolo differenze non divise.

45

Metodo ENO

• Scelto lo stencil, si calcola il valore del pixel da interpolare, secondo la formula:

- l scorre gli elementi all’interno dello stencil - k è l’ordine di accuratezza fissato (i punti nello

stencil sono k+1, ma verranno usati solo i primi k)- r è il numero di celle dello stencil a sinistra della

cella base- C sono dei coefficienti ricavati tramite il processo di

interpolazione di Lagrange

1

02)12(,, *

k

llrjirlji vCv

46

47

Miglioriamo ENO: WENO

•Svantaggi di ENO1. Limita l’ordine di accuratezza scegliendo

solo uno stencil tra k stencil candidati. In totale questi ricoprono 2k-1 celle

2. Lento nelle operazioni vettoriali perché deve scegliere ad ogni passo una differenza non divisa, introducendo istruzioni condizionali

48

WENO

•WENO usa una combinazione convessa degli stencil permettendo di raggiungere un ordine di accuratezza 2k-1.

•Ad ogni stencil viene associato un peso , direttamente proporzionale alla sua regolarità permettendo di migliorare la stabilità e la consistenza

49

Metodo WENO

• Dati k stencil

dove , WENO trova k differenti ricostruzioni del valore , uno per ogni stencil. Per calcolare il valore approssimato considera la formula:

50

Calcolo dei pesi

Le formule per il calcolo dei pesi sono una conseguenza delle proprietà che vogliamo ottenere, riportate di seguito:i pesi dovrebbero dipendere dalle medie

di cella coinvolteil calcolo dei pesi dovrebbe essere

efficiente dal punto di vista computazionale

quando la funzione v(x) ha una discontinuità in uno o più stencil i corrispondenti pesi dovrebbero tendere a zero

51

Formule per il calcolo dei pesi

dove i valori sono valori sempre positivi che soddisfano la condizione

Per il calcolo di sommiamo al denominatore per evitare che si annulli

52

Smoothness indicators (parte 1)

•Questi valori, come dice il nome stesso, indicano la regolarità dello stencil. Per il calcolo utilizziamo la formula:

53

Smoothness indicators (parte 2)

La precedente formula permette di ricavare i valori degli smoothness indicators. Se k=2:

Se k=3 abbiamo i seguenti valori:

54

Implementazione di WENO

•Il metodo WENO è stato sviluppato in diverse versioni che differiscono per dimensione dello stencil e calcolo degli smoothness indicators

•Noi non prenderemo in considerazione queste versioni, tuttavia può essere interessante sapere che Russo-Ferretti e Bryson-Levy risultano essere le migliori

Esempio di WENO

Risultati Sperimentali

57

Introduzione

•Per valutare la qualità di un algoritmo di zooming adotteremo tre approcci differenti, ognuno dei quali permette di osservare diversi aspetti sull’efficacia dei metodi studiati▫Analisi qualitativa▫Analisi quantitativa▫Analisi spettrale dell’immagine

58

Il PSNR

Il Peack Signal-to-Noise Ratio è una misura adottata per valutare la differenza tra due immagini, che useremo per determinare la qualità dello zooming

Dove:• MSE è l’errore quadratico medio tra le due immagini• I è l’immagine originale• K è l’immagine che vogliamo comparare• MAX{I} = valore massimo raggiunto da I• M è l’altezza dell’immagine• N è la larghezza dell’immagine

59

Utilizzo del PSNR

60

Analisi spettrale delle immagini (1)

• Un’immagine può essere vista come una funzione discreta a due dimensioni in cui i valori rappresentano i livelli di grigio di un determinato pixel

• La funzione “immagine” può essere vista come un segnale, cioè una funzione variabile in un dominio con una propria frequenza (costante o variabile)

• I metodi adattivi cercano di preservare quanto più possibile le alte frequenze di un’immagine▫ Zone ad alta frequenza: parti ricche di dettagli o

contenenti disturbi. In generale, ciò avviene in presenza di bordi (edge)

▫ Zone a bassa frequenza: zone di colore uniforme

61

Analisi spettrale delle immagini (2)

•È possibile adottare la Discrete Fourier Transform (DFT) per osservare l’immagine nel dominio della frequenza e non più nel dominio spaziale

•Un noto algoritmo degli anni ‘60 per il calcolo della DFT è la Fast Fourier Transform, già presente anche nella sua versione 2D tra le funzionalità di Matlab

62

Interpretazione dello spettro di un’immagine

63

Analisi spettrale delle immagini (3)

• Visualizzeremo e confronteremo gli spettri delle immagini per osservare in che modo agiscono i metodi di zooming sulle loro frequenze

• Una delle maggiori cause della perdita di dettagli in un’immagine zoomata è l’effetto blur (sfocatura) che tipicamente affligge i metodi non adattivi, soprattutto per immagini a bassa risoluzione

• Questo fenomeno causa una perdita sostanziale delle alte frequenze presenti in un’immagine

• Vediamo come un’esplicita operazione di smoothing modifichi lo spettro di un’immagine

64

Effetto dello smoothing sullo spettro (2)

Lo smoothing altera chiaramente le alte

frequenze dell’immagine,

rendendo “nere” le aree periferiche

nell’immagine dello spettro

65

Test affrontati (1)

•comparazione dei metodi all’aumentare della dimensione dell’immagine

•comparazione dei metodi variando la tipologia di immagine▫ricca di edge ▫in presenza di strutture regolari▫immagini con testo▫immagini mediche

66

Test affrontati (2)

• Per evitare di alterare i risultati visivi con un eccessivo rimpicciolimento delle immagini, in questa presentazione verranno mostrati i risultati qualitativi solo per immagini di dimensione 256x256. Per immagini di dimensioni maggiori, verranno riportati dei dettagli delle immagini o solo i risultati quantitativi.

• Ricordiamo che ENO3 e WENO2 hanno lo stesso ordine di accuratezza, e quindi sono confrontabili

• Lo stesso vale con ENO5 e WENO3• Per lo zooming con metodi non adattivi, è stata

utilizzata la imresize di Matlab▫ imresize(I, 2, ‘nearest’)▫ imresize(I, 2, ‘blinear’)▫ imresize(I, 2, ‘bicubic’)

67

Test 1: Variazione della dimensioneanalisi qualitativa 256x256 - ENO

ENO sembra introdurre dei disturbi proprio sui bordi, ma questo effetto scompare aumentando

la risoluzione di partenza

68

Test 1: Variazione della dimensioneanalisi qualitativa 256x256 - WENO

WENO non introduce i disturbi visti con ENO,

già con immagini a bassa risoluzione. I

risultati sono sicuramente

paragonabili con il bicubico

69

Test 1: Variazione della dimensioneanalisi quantitativa

I metodi adattivi danno quasi sempre risultati migliori, in particolare

WENO2

I metodi adattivi sono però anche notevolmente

onerosi rispetto ai non adattivi

Discordanti i risultati con risoluzione 1024x1024,

dove i non adattivi si comportano meglio, forse è il caso di provare su di

un altro volto …

70

Test 1: Variazione della dimensioneanalisi quantitativa per 1024x1024 con altro volto..

Dimensione: 1024x1024

WENO2 da ancora risultati migliori

71

Test 2: Immagini con molti edge analisi qualitativa

Dimensione: 512x512

72

Test 2: Immagini con molti edgeanalisi quantitativa

Dimensione: 512x512

Il nearest da dei buoni risultati quantitativi,

ma osservando i risultati qualitativi si notano chiaramente i

problemi di seghettatura ai bordi, presenti in maniera

maggiore che in qualsiasi altro caso

73

Test 2: Immagini con molti edge analisi dello spettro

ORIGINALE

NEAREST BILINEARE

BICUBICO

ENO3 ENO5 WENO2 WENO5

74

Test 3: Immagini ad alta regolaritàanalisi qualitativa e quantitativa

Dimensione: 256x256

75

ORIGINALE

NEAREST BILINEARE

BICUBICO

ENO3 ENO5 WENO2 WENO5

Test 3: Immagini ad alta regolarità: analisi dello spettro

76

Test 4: Immagini con testoanalisi quantitativa e qualitativa

Dimensione: 1024X1024

Anche se il PSNR più alto è stato ottenuto per ENO3, i risultati qualitativi migliori

sono stati ottenuti da WENO2

77

Test 5: Immagini medicheanalisi quantitativa e qualitativa

Dimensione: 1024x1024

Le immagini mediche sono tipicamente a risoluzione molto alta, permettendo un esecuzione

ottimale dei metodi adattivi. Preservare i dettagli in immagini di questo tipo è, per ovvie ragioni,

fondamentale

78

Riepilogo risultati ottenuti

• Per i metodi adattivi, all’aumentare della dimensione dell’immagine di partenza danno risultati migliori, potendo beneficiare di maggiori informazioni in prossimità dei bordi per costituire degli stencil con alta regolarità

• ENO applicato ad immagini di piccole dimensioni introduce delle informazioni fittizie che abbassano la qualità visiva dello zooming. L’effetto si attenua all’aumentare della dimensione

• Sia ENO che WENO, in presenza di edge, preservano le alte frequenze, diminuendo il fenomeno di smoothing

• ENO e WENO si dimostrano particolarmente efficaci con immagini mediche e contenenti testo

• A parità di ordine di accuratezza, WENO risulta essere più efficiente di ENO

• In generale, i metodi adattivi danno risultati migliori, ma a discapito dell’efficienza

• Il giusto compromesso tra qualità e efficienza è sempre WENO2

79

Implementazione di ENO e WENO

•MATLAB come ambiente di sviluppo•Traduzione della teoria in codice•Esecuzione dei test su diverse immagini•Analisi dei risultati per evidenziare pro e

contro dei metodi

Verranno descritte in dettaglio le operazioni principali dei due metodi ENO e WENO.

80

Convertire l’immagine

• I metodi che abbiamo visto sono onerosi dal punto di vista dell’esecuzione e prendono in input una matrice bidimensionale. Eseguirli sui singoli canali R, G, B non sarebbe efficiente

• Come soluzione a questo problema scegliamo di convertire l’immagine nello spazio di colori YCbCr. Il canale della luminanza è quello che detiene le informazioni più importanti visibili all’occhio. Il metodo sarà applicato solo ad esso

• Per gli altri due canali utilizzeremo metodi di basso ordine

81

Zooming e interpolazione

Il procedimento è riassunto nelle immagini successive:PASSO 1

I Z

82

Procedimento

PASSO 2

• L’immagine è scandita prima per righe e quindi per colonne

• Calcolo degli stencil e dei pesi per effettuare l’interpolazione

(2)

83

Passaggi intermedi

Calcolo dei pixel delle colonne

Calcolo dei pixel delle righe

Pseudo codice

85

ENO(IMAGE, k)C = CONVERT-TO-YCBCR(IMAGE)P = PADDING(C)[Y, Cb, Cr] = CHANNEL-SEPARATION(P)[m,n] = IMAGE-SIZE(Y)Z = INITIALIZE-ZERO-IMAGE(m*2, n*2)L = LAGRANGE-CONSTANTS(k)

// applichiamo ENO alle righeFOR i = 1 TO m*2-1 WITH STEP 2

FOR j = 2 TO n*2 WITH STEP 2I = CELL(i,j)STENCIL = {I}FOR l = 1 TO k-1

STENCIL-Sx = EXTEND-STENCIL-LEFT(STENCIL) STENCIL-Dx = EXTEND-STENCIL-RIGHT(STENCIL) STENCIL = NEWTON-COMPARISON(STENCIL-Sx, STENCIL-Dx) //restituisce lo stencil che in valore assoluto risulta minore

Z[i, j] = PIXEL-INTERPOLATION(STENCIL, L)

// applichiamo ENO alle colonneFOR j = 1 TO n*2

FOR i = 2 TO 2*m WITH STEP 2// analogo al calcolo per riga[...]

M = CHANNEL-MERGE(Y, NEAREST(Cb), NEAREST(Cr)) ZOOMED-IMAGE = CONVERT-TO-RGB(IMCROP(M))

RETURN ZOOMED-IMAGE

rgb2ycbcr(image)

padarray(C,padsize,padval)

1

02)12(,, *

k

llrjirlji vCv

ycbcr2rgb(uint8(M))

imcrop(M,[1+padsize, 1+padsize, m-1, n-1])

86

WENO(IMAGE, k)C = CONVERT-TO-YCBCR(IMAGE)P = PADDING(C)[Y, Cb, Cr] = CHANNEL-SEPARATION(P)[m,n] = IMAGE-SIZE(Y)Z = INITIALIZE-ZERO-IMAGE(m*2, n*2)L = LAGRANGE-CONSTANTS(k)

// applichiamo WENO alle righeFOR i = 1 TO m*2-1 WITH STEP 2

FOR j = 2*k TO 2*(n-k)+1 WITH STEP 2I = CELL(i,j)FOR r = 0 TO k-1 DO

STENCIL = GET-STENCIL(I, r)V[r] = PIXEL-INTERPOLATION(STENCIL, L) //per

ogni stencil calcolo del pixel da interpolare

W = GET-WEIGHTS(I,k) // calcoliamo i k pesi necessari

FOR r = 0 TO k-1 DO

Z[i,j] = Z[i,j] + V[r]*W[r] // valore del pixel da interpolare (combinazione tra i pesi e gli stencil)

// applichiamo WENO alle colonneFOR j = 1 TO m*2-1

FOR i = 2*k TO 2*(n-k)+1 WITH STEP 2// analogo al calcolo per riga[...]

M = CHANNEL-MERGE(Y, NEAREST(Cb), NEAREST(Cr))ZOOMED-IMAGE = CONVERT-TO-RGB(IMCROP(M))

RETURN ZOOMED-IMAGE

1

0

)(

2

1

k

r

r

irvw

87

Grazie!