digital image processing - some exercises

162
TIC - Esercizi esame [email protected]

Upload: riccardo-vincenzo-vincelli

Post on 25-Jul-2015

335 views

Category:

Documents


0 download

DESCRIPTION

Slides describing some exerises for a DIP course (italian)

TRANSCRIPT

Page 1: Digital Image Processing - some exercises

TIC - Esercizi [email protected]

Page 2: Digital Image Processing - some exercises

Esercizio 1 - Elaborazione di un set d’immagini critiche

Page 3: Digital Image Processing - some exercises

underexposed.jpg

Page 4: Digital Image Processing - some exercises

E’ stata adoperata un’implementazione MATLAB dell’algoritmo diMoroney leggermente modificato:

1. dopo avere portato l’immagine in double e convertitala inYCbCr, salvare il canale Y

2. riscalare i valori di Y perche siano effettivamente nel range[0, 1]

3. calcolare la maschera negando Y ed applicandoci l’operatorebilaterale

4. filtrare il canale Y eseguendo Y (i , j)a.5−bfmask(i,j)/.5

dove bfmaske la maschera appena calcolata e a e un parametro utente(nella versione originale e a = 2, in Schettini et al. e stimatain modo piu complesso)

5. riscalare la Y filtrata e ritornare in RGB

6. passare in HSV ed aumentare la saturazione scalando ilrelativo canale per un parametro utente k

Page 5: Digital Image Processing - some exercises

L’operatore gamma (gamma correction) corrisponde alla funzionef (I (i , j)) = cI (i , j)γ , per c e γ reali

Per c = 1 se γ = 1 e ovviamente l’identita, se γ < 1 l’immagine eschiarita, se γ > 1 scurita; per γ = 1, c < 1 scurisce mentre c > 1schiarisce, con c = 1 identita

Page 6: Digital Image Processing - some exercises

L’operatore bilaterale (bilateral filter) e un’evoluzionedell’operatore gaussiano che permette di sfocare preservandomeglio i bordi

L’idea e tenere in considerazione non solo l’informazione spazialeattraverso la distanza tra pixel ma anche quella radiometrica, conle intensita

Assumendo un’immagine a valori scalari, la formula e:

f (I (i , j)) = wi+m∑

k=i−m

j+n∑l=j−n

Ws(k, l)Wr (I (i , j)− I (k , l))I (k , l)

Page 7: Digital Image Processing - some exercises

Nella formula:

I Ws e il kernel della funzione gaussiana

G (x , y) = 12πσ2

se− x2+y2

2σ2s , per la componente spaziale

I Wr della G (x) = 1√2πσ2

r

e− x2

2σ2r per quella d’intensita

I w costante di normalizzazione

Page 8: Digital Image Processing - some exercises

moroney(underexposed, 1.25, 2)

Page 9: Digital Image Processing - some exercises

gruppocontroluce.jpg

Page 10: Digital Image Processing - some exercises

moroney(gruppocontroluce*.9,1.5,1)

Page 11: Digital Image Processing - some exercises

indoorflash.jpg

Page 12: Digital Image Processing - some exercises

Histogram stretching/shrinking : espansione/compressione delrange dinamico

Formula (immagine valori di grigio):

f (I (i , j)) = (I (i , j)− lowIn)(hiOut − lowOut

hiIn − lowIn) + lowOut

ed il risultato e tale per cui i valori nell’immagine di inputnell’intervallo [lowIn, hiIn] sono rimappati nell’intervallo[lowOut, hiOut] in quella di output

Per correggere l’immagine, in cui il volto della bimba ha valoritroppo elevati e costituisce l’unica area ad elevata luminosita,penalizziamo le alte intensita

Page 13: Digital Image Processing - some exercises

imadjust(indoorflash, [0,1], [0,.8])

Page 14: Digital Image Processing - some exercises

fintemodelle.jpg

Page 15: Digital Image Processing - some exercises

Una semplice gamma per scurire, imadjust(fintemodelle, [], [],

5)

Page 16: Digital Image Processing - some exercises

ritrattoindoor.jpg

Page 17: Digital Image Processing - some exercises

L’immagine pre-senta una forte dominante blu, che cerchiamo di attenuare con una gamma;ritrattoindoor(:,:,3)=imadjust(ritrattoindoor(:,:,3),[],[],3);

Page 18: Digital Image Processing - some exercises

summerBBQ.jpg

Page 19: Digital Image Processing - some exercises

moroney(summerBBQ, 1.25, 1) (se non fossero presenti artefatti ablocco nero, risultato ottimale si avrebbe con a = 2)

Page 20: Digital Image Processing - some exercises

nightshot.jpg

Page 21: Digital Image Processing - some exercises

ImageAdjust[nightshot, {0, 2}] (Mathematica, lascia invariato ilcontrasto ed aggiusta la luminosita di una quantita 2)

Page 22: Digital Image Processing - some exercises

blocchetti.png

Page 23: Digital Image Processing - some exercises

L’immagine presenta essenzialmente due problemi:

I forti artefatti di blocchettizzazione JPEG

I bande cromatiche orizzontali

La prima cosa che viene in mente e il blurring, ma subito ciricordiamo che si rischia di perdere i contorni, trasformandoun’immagine molto rumorosa in una poco informativa

Osservazione: le bande sono bluastre, e quindi sono contribuiteprincipalmente dal canale blu, e dal verde

Idea: filtro bilaterale solo su questi due canali

Page 24: Digital Image Processing - some exercises

ColorCombine[RGB[[1]], BilateralFilter[RGB[[2]], 7, .1],

BilateralFilter[RGB[[3]], 14, .2]] (Mathematica, filtraggiobilaterali sui canali G e B in diversa misura e ricomposizione)

Page 25: Digital Image Processing - some exercises

ritrattooutdoor.jpg

Page 26: Digital Image Processing - some exercises

Total variation filtering (TV filtering)

Page 27: Digital Image Processing - some exercises

La variazione totale di una funzione ci dice, informalmente, quantosiano diversi i valori che assume in successivi punti del dominio

Per un’immagine I di dimensioni mxn un esempio di TV puo essereV (I ) =

∑mi=1

∑nj=1

√|I (i + 1, j)− I (i , j)|2 + |I (i , j + 1)− I (i , j)|2

Tendenzialmente piu un’immagine e rumorosa piu alto sara V (I ), equesto e vero particolarmente per alcuni tipi di rumore (es. saltand pepper)

Data un’immagine in input corrotta I una strategia per pulirla eminimizzare la funzione f (J) = g(I , J) + λV (J)

Page 28: Digital Image Processing - some exercises

Nella formula:

I I e l’immagine input

I J la versione restaurata

I g(I , J) e una metrica oggettiva di valutazione (es. meansquare error)

I λ ∈ (0, 1) e da fissarsi, concettualmente, direttamenteproporzionale all’intensita del rumore

Quel che chiediamo all’immagine di output, rispetto a quella diinput, e che sia il piu possibile uguale ad essa ma allo stesso tempoabbia la TV minima possibile

In letteratura: possibilita di modellare il rumore, procedure siadirette sia iterative

Page 29: Digital Image Processing - some exercises

TotalVariationFilter[ritrattooutdoor.jpg, 1,

MaxIterations->3] (Mathematica)

Page 30: Digital Image Processing - some exercises

Esercizio 2 - Autoritratto creativo

Page 31: Digital Image Processing - some exercises

Immagini in gioco:

I base image - l’immagine su cui vogliamo inserire un oggetto

I overlay/object - l’oggetto da aggiungere

I bitmask - maschera che regola come aggiungerlo

Struttura dati principale e la piramide immagine (Burt et Adelson,’83), composta da due pile di immagini calcolate a partiredall’immagine I di partenza, la pila gaussiana Γ e la laplaciana Λ:

I G0 = I (base della piramide);Gi = downsample(G(Gi−1, r), scale) dove G e l’operatore diblur gaussiano e downsample(I , scale) sottocampional’immagine di un fattore scale ∈ (0, 1)

I Li = Gi−1 − G(upsample(Gi , scale)) ossia calcoliamol’immagine differenza tra un piano gaussiano ed il successivoche, essendo piu piccolo, dev’essere sovracampionato

L’operatore G ha lo scopo di attenuare possibili artefatticonseguenti al ricampionamento

Page 32: Digital Image Processing - some exercises

Γ rappresenta l’immagine I sottoposta a successivi filtraggi passabasso, e contiene il grosso dell’informazione immagine, mentre Λ efrutto di successivi passa alto e porta con se i dettagli, le altefrequenze

Λ e basata sull’operatore DoG (Difference of Gaussians) che eun’approssimazione dell’operatore laplaciano

Perche non usare direttamente il laplaciano quindi?

I computazionalmente piu oneroso

I piu potente e quindi, anche a raggi piccoli, solleva piu rumore!

Page 33: Digital Image Processing - some exercises

Algoritmo:

1. costruire le piramidi gaussiane ΓA, ΓB e ΓR rispettivamenteper l’immagine base, l’oggetto e la maschera

2. costruire le piramidi laplaciane ΛA, ΛB ed ΛR a partire dalleprecedenti

3. per ogni livello k delle piramidi ΛA ed ΛB calcolare avendo ΓR

la nuova piramide laplaciana ΛS con la seguente formula:LSk (i , j) = GRk

(i , j)LBk(i , j) + (1− GRk

(i , j))LAk(i , j)

4. formare il core blending eseguendoCB(i , j) = GRtop(i , j)GBtop(i , j) + (1− GRtop(i , j))GAtop(i , j)

5. assemblare l’immagine finale a partire da CB sulla piramideΛS (pyramid collapsing)

Page 34: Digital Image Processing - some exercises

Ricostruzione dell’immagine: dato l’ultimo livello di Γ cioe Gtop e Λe possibile ricostruire l’intera immagine I di partenza, algoritmo:

1. calcolare im = upsample(Gtop, scale) + Ltop

2. ripetere il punto sostituendo Gtop con im e Ltop con Ltop−1

La procedura ricostruisce effettivamente l’immagine I di partenzaosservando che ad ogni iterazione otteniamo un livello inferioredella piramide gaussiana e per definizione il livello base e posto ad I

Page 35: Digital Image Processing - some exercises

Circuito dell’algoritmo: + e − somma e differenza d’immagini, ∗ el’operatore di convoluzione, g il kernel gaussiano, ↓ e ↑sottocampionamento e sovracampionamento

.

Page 36: Digital Image Processing - some exercises

Immagine base

Page 37: Digital Image Processing - some exercises

Immagine da sovrapporre

Page 38: Digital Image Processing - some exercises

Maschera

Page 39: Digital Image Processing - some exercises

Funzioni MATLAB:

I pyramids(im, scale, r) - costruisce Γ e Λ per l’immagineim usando come fattore di scala scale e per raggio dellagaussiana r

I lapblend(LA, LB, GR) - calcola la piramide laplacianacombinata ΛS

I blending(LS, GA0, GB0, GR) - collassa la piramide LS apartire dai livelli gaussiani di cima GA0 e GB0 con la mascheradi cima GR

I laplacianblending(image, overlay, mask, scale, r)

- utilizza le tre funzioni precedenti per creare l’immaginecomposta

Page 40: Digital Image Processing - some exercises

Risultati

Page 41: Digital Image Processing - some exercises

scale=.5, r=1

Page 42: Digital Image Processing - some exercises

scale=.25, r=3

Page 43: Digital Image Processing - some exercises

scale=.5, r=3

Page 44: Digital Image Processing - some exercises

Esercizio 3 - caratterizzazione colorimetrica

Page 45: Digital Image Processing - some exercises

Obiettivo: partendo da un’immagine .tiff mosaicata (raw camerapicture) trasformarla in una sRGB avendo bilanciato il bianco

Page 46: Digital Image Processing - some exercises

Descrizione dei dati d’ingresso

Page 47: Digital Image Processing - some exercises

Dati d’input:

1. color chart da bilanciare - patch.png

2. campione di pixel per ognuno dei 24 principali colori in essa -quadratini - posizioni.mat

3. riflettanza di ogni quadratino - quadratini -

riflettanze.mat

4. RSPD dell’illuminante d’arrivo - D65 RSPD.mat

5. XYZ CMF - XYZ CMF.mat

6. immagine raw - IMG1295.tiff

Page 48: Digital Image Processing - some exercises

La color chart da bilanciare appare basata sulla ColorChecker ColorRendition Chart

Patch d’input

Patch obiettivo

Page 49: Digital Image Processing - some exercises

Una tabella colore puo essere utilizzata per confrontare la fedelta distrumenti di acquisizione rispetto al nostro sistema visivo, oppureper la profilazione di strumenti di riproduzione, tra le altre cose

Ogni quadratino colore e composto da vari pixel ed ovviamente,pure se in uno stesso, non hanno tutti lo stesso identico colore RGB

Non e quindi ben definito il concetto di pixel per un singoloquadratino, il riferimento spaziale per ognuno di essi e una ventinadi coppie (i , j) che scegliamo direttamente dall’immagineattraverso il comando ginput

Page 50: Digital Image Processing - some exercises

Un’illuminante e una sorgente di luce visibile

Esso si dice standard se e teorico, cioe prescinde da una particolareilluminazione, ed accompagnato da una distribuzione di potenzaspettrale (power spectral distribution - PSD)

Una PSD e la tabulazione del contributo per lunghezza d’onda intermini di potenza (= lavoro su unita di tempo) su unita di area, inpratica quanta energia convoglia l’illuminante rispetto ad ognifrequenza considerata

La PSD relativa (RPSD) e la PSD normalizzata rispetto ad uncerto valore; per esempio possiamo volere normalizzare all’unita incorrispondenza del picco della funzione di luminosita dell’ occhio(scotopica 500nm, fotopica 555nm)

Page 51: Digital Image Processing - some exercises

Il D65 e un illuminante standard CIE (Commission Internationalede l’Eclairage); la serie D raccoglie illuminanti pensati perriprodurre condizioni d’illuminazioni all’aria aperta tipiche didifferenti parti del mondo

RSPD (555→100) di tre illuminanti D

Page 52: Digital Image Processing - some exercises

Grafico di D65 - RSPD.mat (con massimo ad 1); D65 rappresental’illuminazione in una bella giornata nell’Europa nordoccidentale, amezzogiorno

Page 53: Digital Image Processing - some exercises

Ogni oggetto e caratterizzabile da una curva di riflettanza, che perogni lunghezza d’onda indica in che percentuale l’energia luminosaincidente e riflessa

Se di un oggetto e nota la riflettanza e conosciamo la PSDdell’illuminante che lo colpisce, possiamo calcolare lo stimololuminoso proveniente dall’oggetto rispetto ad ogni lunghezzad’onda considerata

In un contesto semplificato discreto esso e dato da:

S(l) = L(l)R(l)

cioe, molto semplicemente, per una data lunghezza d’onda l ,quanto arriva con L e quanto e restituito con R

Page 54: Digital Image Processing - some exercises

Una color matching function e la descrizione numerica dellarisposta dell’osservatore standard rispetto ad una componente CIEXYZ

Sia x(l) la CMF della componente X; il valore di X per lo stimoloS(l) e dato, nel caso discreto, da:

l=lf∑l=li

S(l)x(l)

Page 55: Digital Image Processing - some exercises

Il percorso d’elaborazione

Page 56: Digital Image Processing - some exercises

Strategia. Date le sue dimensioni ristrette ci e stato consigliato perpraticita di sperimentare e bilanciare prima il file patch.png, perpoi passare a modificare l’immagine target IMG1295.tiff unavolta sicuri

Passi:

1. costruire il a partire dai dati colorimetrici dati

2. applicare il risultato ottenuto

Page 57: Digital Image Processing - some exercises

Passi - fase 1:

1. calcolo dello stimolo di ogni tinta della tabella colore sottol’illuminante D65 RSPD.mat avendo a disposizionequadratini - riflettanze.mat

2. calcolo delle relative triplette XYZ a partire dagli stimoliappena calcolati e da XYZ CMF.mat

3. Wrong von Kries transform - bilanciamento del biancodirettamente in XYZ senza passare in LMS (spazio dei coni)

4. conversione ad sRGB

5. generazione di una tabella colore per verificare la bonta dellacorrezione

Page 58: Digital Image Processing - some exercises

Il bilanciamento colore prevede l’applicazione della seguenteformula X

YZ

=

Xw/X ′w 0 00 Yw/Y ′w 00 0 Zw/Z ′w

X ′

Y ′

Z ′

dove (Xw ,Yw ,Zw ) e il bianco dell’illuminante target, (X ′w ,Y

′w ,Z

′w )

il neutro della tabella colore data, stimato a partire da quadratini

- posizioni.mat prendendo solo l’ultima riga, quella dei neutri

Page 59: Digital Image Processing - some exercises

sRGB e uno spazio colore assoluto e quindi il passaggioXYZ→sRGB e standard; esso e stato fornito nella funzionexyz2srgb.m

A questo punto abbiamo in mano 24 colori nello spazio sRGB, unoper ogni colore nella tabella data, e ci aspettiamo che dopo ilbilanciamento essi siano quanto piu vicini possibili a quelli dellatabella originale

Page 60: Digital Image Processing - some exercises

Confronto tra la color chart di riferimento e quella ottenuta

Page 61: Digital Image Processing - some exercises

Passi - fase 2:

1. estrazione dei valori nativi di ogni componente della tabellacolore non bilanciata

2. stima ai minimi quadrati lineari attraverso pseudoinversa

3. bilanciamento bianco sulla tabella

4. sua trasformazione da XYZ ad sRGB

Page 62: Digital Image Processing - some exercises

Per ogni patch, il suo valore e media dei valori all’interno di essapresi dai pixel presenti in quadratini - posizioni.mat

Conosciamo, ed abbiamo verificato che e visivamentesoddisfacente, il valore XYZ bilanciato, ossia corretto sottol’illuminante dato, di ogni quadratino

Per ogni tripletta RGB estratta sappiamo quindi a che precisatripletta XYZ vogliamo farla corrispondere e la trasformazione piusemplice e, per il quadratino i : Xi

Yi

Zi

=

ki1,1 ki1,2 ki1,3ki2,1 ki2,2 ki2,3ki3,1 ki3,2 ki3,3

Ri

Gi

Bi

Problema: la trasformazione richiede una Ki particolare, comeottenere un’unica matrice K con cui correggere agevolmentel’immagine a partire dalle matrici K1, . . . ,K24?

Risposta: minimi quadrati lineari (linear least squares)

Page 63: Digital Image Processing - some exercises

Esplicitando la formula di sopra per ogni i fissando kia,b = ka,b citroviamo davanti ad un sistema lineare sovradeterminato (9incognite e 72 equazioni)

k1,1r1 + k1,2g1 + k1,3b1 = x1k2,1r1 + k2,2g1 + k2,3b1 = y1k3,1r1 + k3,2g1 + k3,3b1 = z1

...k1,1r24 + k1,2g24 + k1,3b24 = x24k2,1r24 + k2,2g24 + k2,3b24 = y24k3,1r24 + k3,2g24 + k3,3b24 = z24

La soluzione che il metodo restituisce minimizza l’errore alquadrato tra i membri di ciascuna equazione, ossia richiede diminimizzare la funzione

f (k1,1, k1,2, . . . , k3,3) =24∑i=1

(k1,1ri+k1,2gi+k1,3bi−xi )2+(k2,1ri+k2,2gi+k2,3bi−yi )

2+(k3,1ri+k3,2gi+k3,3bi−zi )2

Page 64: Digital Image Processing - some exercises

Un metodo di risoluzione e il seguente:I in forma matriciale il sistema e di forma XB = Y dove:

X =

r1 g1 b1r2 g2 b2...

......

r24 g24 b24

B =

k1,1 k2,1 k3,1k1,2 k2,2 k3,2k1,3 k2,3 k3,3

Y =

x1 y1 z1x2 y2 z2...

......

x24 y24 z24

I soluzione e B = X+Y dove

X+ = (XTX)−1XTY

e la pseudoinversa di Moore-Penrose

Page 65: Digital Image Processing - some exercises

Una volta trovata la matrice di conversione K = B, si e pronti perbilanciare l’immagine, bisogna semplicemente moltiplicare ognipixel per essa

L’ idea e che, avendo fornito ai minimi quadrati un numerosufficiente di coppie uniformemente distribuite(colore nativo, colore obiettivo) un qualsiasi colore input e vicinoad un certo colore mappato con la K stimata

L’ultimo passo e la conversione dell’intera immagine da XYZ adsRGB

Page 66: Digital Image Processing - some exercises

Risultato

Page 67: Digital Image Processing - some exercises

Sull’immagine target

Page 68: Digital Image Processing - some exercises

La trasformazione dell’immagine IMG1295.tiff si articola in:

I demosaicatura

I bilanciamento bianco

I passaggio ad sRGB

Il bilanciamento del bianco si effettua con la matrice B trovatasopra e quindi e solo la demosaicatura che dobbiamo descrivere

Page 69: Digital Image Processing - some exercises

In una fotocamera l’informazione luminosa e acquisita dalla grigliadei fotosensori

E’ possibile per ognuno di essi quantificare la luce che lo colpisce,ma cio da informazione solo sull’intensita e quindi permette digenerare solo un’immagine a livelli di grigio

La griglia e quindi coperta da un mosaico di filtraggio colore (colorfilter array, CFA) cui scopo e far sı che si possa localizzare rispettoad una certa lunghezza i fotoni in ingresso

Il CFA dell’immagine, Bayer pattern/RGGB

Page 70: Digital Image Processing - some exercises

Ricevuta l’informazione filtrata quel che abbiamo e un’immagine incui i pixel hanno effettivamente una sola componente, cioe sonosul rosso, sul verde o sul blu

Il demosaicing e la procedura con cui assegnamo un’intensita aicanali vuoti di ogni pixel, in base all’informazione che abbiamo, perlo stesso canale, nei pixel vicini

La procedura consiste in un’interpolazione lineare guidata dalgradiente immagine (gradient-corrected linear interpolation); neesistono molte varianti (e brevetti!), consideriamo LaRoche etPrescott

Page 71: Digital Image Processing - some exercises

Passi:

1. calcolare la luminosita (brightness) del pixel

2. interpolazione delle differenze colore tra R e G, B e G

Tipicamente la luminosita di un pixel RGB e media dellecomponenti ma ovviamente in questo caso non puo essere

Se il pixel e verde, la sua luminosita e posta pari al suo valore,altrimenti calcoliamo i coefficienti

α(i , j) = |G (i − 2, j) + G (i + 2, j)

2− G (i , j)|

β(i , j) = |G (i , j − 2) + G (i , j + 2)

2− G (i , j)|

Page 72: Digital Image Processing - some exercises

α e β rappresentano due indicatori che permettono di stimare seun pixel e di bordo (da cui il nome dell’algoritmo):

I se α < β allora (i , j) e una posizione di bordo verticale

I se α > β orizzontale

I altrimenti non e in un bordo

Individuato il tipo di pixel vogliamo assegnargli un valore di G, equindi di luminosita, interpolando in modo da attraversare il bordo,il che aiuta nell’evitare artefatti sui contorni; rispettivamente:

I G (i , j) = G(i−1,j)+G(i+1,j)2

I G (i , j) = G(i ,j−1)+G(i ,j+1)2

I G (i , j) = G(i−1,j)+G(i+1,j)+G(i ,j−1)+G(i ,j+1)4

Page 73: Digital Image Processing - some exercises

Ora ogni pixel ha un valore di luminosita/verde ma alcuni hannosolo G, altri sia G sia B (R); poniamo di volere aggiungere il canaleR ad un pixel (i , j) cui manca; il sistema e il seguente:

I se type(i , j) = G alloraI se i pari (es. G23) allora

R(i , j) =D(i − 1, j) + D(i + 1, j)

2+ G (i , j)

I altrimenti (es. G32)

R(i , j) =D(i , j − 1) + D(i , j + 1)

2+ G (i , j)

I se type(i , j) = GB (es. B44) allora

R(i , j) =D(i − 1, j − 1) + D(i − 1, j + 1)

4+D(i + 1, j − 1) + D(i + 1, j + 1)

4+G(i , j)

dove D(i , j) = R(i , j)− G (i , j)

In modo del tutto analogo e l’aggiunta di B ai pixel di tipo G e GR

Page 74: Digital Image Processing - some exercises
Page 75: Digital Image Processing - some exercises

Risultato

Page 76: Digital Image Processing - some exercises

Prima del bilanciamento

Page 77: Digital Image Processing - some exercises

Dopo il bilanciamento (ground)

Page 78: Digital Image Processing - some exercises

Dopo il bilanciamento (risultato)

Page 79: Digital Image Processing - some exercises

Alternative di bilanciamento del bianco

Page 80: Digital Image Processing - some exercises

A partire dall’immagine demosaicata, abbiamo bilanciato il biancograzie all’informazione colorimetrica, avendo associato ad una seriedi colori nativi le loro controparti corrette nello spazio XYZ

Sperimentiamo ora tre alternative algoritmiche di bilanciamento:

I gray world

I white world

I scale-by-max

Page 81: Digital Image Processing - some exercises

L’algoritmo gray world si basa sull’assunzione che il colore mediodell’immagine sia un grigio

Questa assunzione e statisticamente valida per immagini di grossedimensioni e molto colorate

Algoritmo:

I il colore medio avgRGB e calcolato facendo la media canaleper canale

I il grigio medio grayValue facendola sulle componenti diavgRGB

I il valore di scala scaleValue si ottiene dividendo grayValue perle componenti di avgRGB

I ogni canale e scalato per la rispettiva componente discaleValue

Page 82: Digital Image Processing - some exercises

Cosı facendo, in ogni canale, piu le intensita si avvicinano a quelledel grigioavgRGB piu sono forzate a grayValue, ottenendo che ilgrigio stimato avgRGB emerga nell’immagine come(grayValue, grayValue, grayValue)

Page 83: Digital Image Processing - some exercises

L’algoritmo white world prende a bianco dell’immagine nonbilanciata il pixel presente piu vicino al bianco del modello colore(il bianco tipicamente e un vettore costante a valore maxval , es.(255, 255, 255))

Trovato questo valore, l’immagine e scalata in modo che essoassuma bianco nell’immagine bilanciata

Algoritmo:

I si trova il valore piu vicino al bianco nell’immagine, refwhite

I si scala ogni canale i per il coefficiente maxval/refwhite(i)

Page 84: Digital Image Processing - some exercises

Per l’algoritmo scale-by-max possiamo dire che e sostanzialmentecome il precedente, ma refwhite e calcolato prendendo il massimodi ogni canale

E’ quindi computazionalmente piu semplice ma meno robusto aglioutlier (es. in un’immagine RGB a valore costante (127, 127, 127)ho tre pixel diversi (255, 0, 0), (0, 255, 0) e (0, 0, 255))

Page 85: Digital Image Processing - some exercises

Risultati

Page 86: Digital Image Processing - some exercises

Prima del bilanciamento

Page 87: Digital Image Processing - some exercises

Ground

Page 88: Digital Image Processing - some exercises

Colorimetrico

Page 89: Digital Image Processing - some exercises

Gray world

Page 90: Digital Image Processing - some exercises

White world

Page 91: Digital Image Processing - some exercises

Scale-by-max

Page 92: Digital Image Processing - some exercises

Valutazione comparativa dei risultati

Page 93: Digital Image Processing - some exercises

Visivamente osserviamo che il bilanciamento colorimetrico da unrisultato soddisfacente, mentre le tre procedure danno un certomiglioramento ma lasciano una dominante blu-verde

Salta anche all’occhio il fatto che white world e scale-by-maxdanno risultati identici, vuol dire che le due implementazioni,seppur in modo diverso, determinano il medesimo candidato bianco

Per avere un quadro quantitativo di queste impressioni,adoperiamo la metrica full-reference SSIM (Structural SIMilarity)

Page 94: Digital Image Processing - some exercises

SSIM si differenzia da metriche come MSE (mean squared error) ePSNR (peak signal-to-noise ratio) nell’essere abbastanzaconsistente con la nostra percezione visiva

La principale intuizione e valutare la differenza tra immagini intermini di:

I luminosita

I contrasto

I struttura

Page 95: Digital Image Processing - some exercises

La struttura generale della metrica separa queste caratteristiche,gia relativamente indipendenti, e permette di attribuire arbitrariaimportanza a ciascuna di esse (per esempio una scelta e privilegiarela struttura)

Una forma che da la stessa importanza a tutte e tre le componentie richiede solo due costanti arbitrarie e

SSIM(A,B) =(2µAµB + C1)(2σAB + C2)

(µ2A + µ2B + C1)(σ2A + σ2B + C2)

dove C1 = (k1L)2, C2 = (k2L)2 con k1, k2 << 1 ed L rangedinamico delle immagini (es. 8 bit → L = 256)

A e B sono sottoimmagini di uguali dimensioni delle due immaginiI e J da comparare, dove I e la ground reference e J l’immagine inesame

Gli autori suggeriscono finestre quadrate di dimensione 8, ed eanche consigliato di operare non su I e J direttamente ma sullaloro luminanza (trasformando in HSV o YCbCr)

Page 96: Digital Image Processing - some exercises

−1 < SSIM(A,B) < 1, con SSIM(A,B) = 1 se e solo se A = B

I risultati ottenuti sono i seguenti:

I col.: .8832

I gw: .5894

I ww, sbm: .6866

Page 97: Digital Image Processing - some exercises

Costruendo un’immagine di forma M(i , j) = SSIM(Aij ,Bij)abbiamo uno strumento visivo per individuare le aree in cui leimmagini differiscono particolarmente

Nelle immagini seguenti visualizziamo queste mappe caso per caso,canale per canale; l’intensita M(i , j) e inversamente proporzionaleallo score SSIM(Aij ,Bij) (cio si puo dedurre provando con dueimmagini uguali)

Page 98: Digital Image Processing - some exercises

target vs colorimetrico

Page 99: Digital Image Processing - some exercises

target vs gw

Page 100: Digital Image Processing - some exercises

target vs ww/sbm

Page 101: Digital Image Processing - some exercises

Codice MATLAB

I lo script ES3.m esegue il bilanciamento del colore sia sullatabella colore sia sull’immagine raw, ed e ampiamentecommentato

I per la demosaicatura e utilizzato il comando MATLABdemosaic, mentre gli algoritmi di bilanciamento del biancosono stati messi in singole funzioni

I per SSIM e stata adoperata l’implementazione fornita

Page 102: Digital Image Processing - some exercises

Esercizio 4 - Image stitiching

Page 103: Digital Image Processing - some exercises

Data una serie di immagini ci e richiesto di affiancarle in modo daottenere un’unica panoramica

Il programma utilizzato e Autostitch e la teoria brevementedescritta di seguito (Brown et Lowe) e quindi quella applicata dalprogramma

Page 104: Digital Image Processing - some exercises

Passi principali:

I estrazione di punti salienti dell’immagine attraverso SIFT,Scale-invariant feature transform (feature detection)

I loro allineamento tra tutte le immagini (feature matching)

I formulazione di un modello geometrico di allineamentoimmagini tramite una particolare mappa proiettiva,l’omografia (image alignment)

I sua costruzione attraverso RANSAC (RANdom SAmpleConsensum)

I image multi-band blending

Page 105: Digital Image Processing - some exercises

SIFT

Page 106: Digital Image Processing - some exercises

Concetto base: individuare nel piano immagine punti di particolareimportanza che, presi a particolari gruppi, rappresentanoinformazione che:

I sopravvive a diverse scale (es. in ogni piano di una piramidegaussiana)

I e invariante a trasformazioni di luminosita, scala, rotazione ecc

La procedura consiste in:

1. individuazione dei space-scale extrema

2. scrematura dei punti chiave trovati

3. assegnamento delle orientazioni

4. formulazione dei descrittori

Page 107: Digital Image Processing - some exercises

Gaussian rescaling :

I all’immagine di partenza e applicato l’operatore gaussiano kdistinte volte con deviazione standard kσ0 ad ogni iterazione;

I k e scelto in modo che il numero di immagini per ogni ottava(= multiplo di 2 di σ0) sia costante

I ogni ottava e suddivisa in s intervalli in modo che k = 21/s ebisogna che ci siano s + 3 immagini per ottava

I ad ogni iterazione si calcola la DoG tra il piano corrente ed ilprecedente

I arrivati all’immagine filtrata con 2σ0, la si sottocampiona diun fattore 2 e si ripete questa procedura ripartendo da σ0

Page 108: Digital Image Processing - some exercises

Point detection:

I per ogni scala/ottava, per ogni piano in essa tranne il primo el’ultimo e per ogni pixel si individua il suo intorno di Moore edi corrispondenti ai piani inferiore e superiore

I se il pixel in esame e un minimo o un massimo di questi 26vicini, p = (x , y , kσ0) e considerato candidate keypoint

Page 109: Digital Image Processing - some exercises

Scrematura offset e contrasto:

I ogni DoG e rappresentabile in formaD(x , y , kσ) = G (x , y , (k − 1)σ)− G (x , y , kσ), immaginedifferenza tra due filtraggi gaussiani a successiva deviazionestandard; D(x , y , σ) e una funzione, di cui si possono cercaremassimi e minimi locali

I costruiamo l’espansione

D(x) = D +∂DT

∂xx +

1

2xT∂2D

∂x2x

con centro il candidato p (quindi in p valutiamo D e le suederivate) e x = (δx , δy , δσ) offset incognito

I il valore dell’estremo z in termini di offset dal candidato p siha ponendo D ′(x) = 0

Page 110: Digital Image Processing - some exercises

I se in una qualsiasi dimensione z e maggiore di .5 si ripetecentrando in p + z; altrimenti il candidato e valutato rispettoal contrasto

I se p non converge dopo poche iterazioni, e scartato

I se |D(z)| < .03 p e scartato (contrast discard), altrimenti lasua posizione e aggiornata, p′ = p + z

Page 111: Digital Image Processing - some exercises

Scrematura edge (richiede geometria differenziale non banale!):

I per loro natura, i punti di bordo sono i candidati tipici chearrivano alla selezione, ma determinano ridondanza

I calcoliamo l’hessiana di D(x), H =

[Dxx Dxy

Dxy Dyy

]I se uno dei due autovalori di H e molto piu grande dell’altro,

siamo in presenza di un bordo, mentre se sono simili il punto ed’angolo se sono grandi

I per selezionare possiamo allora richiedere che sia

tr2(H)

det(H)<

(r + 1)2

r

con r soglia arbitraria

Page 112: Digital Image Processing - some exercises

Esempio di come possono diminuire i punti candidati dopo scrematuraoffset-contrasto (centro) ed edge (fondo)

Page 113: Digital Image Processing - some exercises

L’invarianza per scala deriva dal gaussiano e dalsottocampionamento; rispetto alla rotazione si ottiene aggiungendouna componente d’orientamento ai punti scelti p = (xn, yn, kσ0):

I si seleziona il piano laplaciano kσ0 e si calcola il modulo el’angolo del gradiente immagine in ogni punto di un intornoscelto di (xn, yn)

|∇Lσ(xi , yi )| =√

(Lσ(xi + 1, yi )− Lσ(xi − 1, yi ))2 + (Lσ(xi , yi + 1)− Lσ(xi , yi − 1))2

arg(∇Lσ(xi , yi )) =Lσ(xi , yi + 1)− Lσ(xi , yi − 1)

Lσ(xi + 1, yi )− Lσ(xi − 1, yi )

Page 114: Digital Image Processing - some exercises

I le intensita sono pesate (es. gaussiana centrata in (xn, yn)) edil range di angoli e partizionato

I si costruisce un istogramma con un bin per partizione,contenente la somma delle intensita pesate dei punti (xi , yi )che hanno gradiente ad angolo che ricade nella partizione

I si assegna come orientazione a (xn, yn) l’angolo mediano dellapartizione associata al bin a valore piu alto

I in caso ci siano piu picchi vicini, e possibile assegnare piuorientazioni, o combinarle

Page 115: Digital Image Processing - some exercises
Page 116: Digital Image Processing - some exercises

Ogni keypoint ha ora coordinate, scala, orientazione ma per poterconfrontare punti di diverse immagini e necessario aggiungereinformazione; per esempio non abbiamo ancora garantitoinvarianza alla luminosita

Formulazione descrittori:

I per ogni punto, posizioniamoci nell’immagine DoG piu vicinaalla sua scala ed individuiamo un intorno 16x16 intorno adesso, da suddividere ulteriormente in 16 regioni 4x4

I per ogni regione si calcola un’istogramma orientazione vsmodulo come sopra, ad 8 bin

I essendoci 16 regioni ognuna con un istogramma ad 8 valori, ildescrittore risultante e un vettore di 128 valori

I esso e normalizzato a lunghezza unitaria, per robustezza acambi d’intensita che seguono una mappa affine

I infine e sogliato ad un valore arbitrario adatto a resistere avariazioni d’intensita frutto di rumore e nuovamentenormalizzato

Page 117: Digital Image Processing - some exercises

I descrittori sono vettori a 128 elementi, una qualsiasi distanza eapplicabile

Sperimentalmente pero stabilire una soglia esatta per definiresufficientemente bassa la distanza tra due descrittori e difficile

Approccio: si ordinano in modo crescente le distanze d(p,pi) dovep e il punto in esame, definendo la successione {dj}, e se d1

d2< .8 si

da il match

La corrispondenza e univoca solo nel caso ideale: nel caso di piupunti pi la scelta dipende dalle applicazioni (es. centro chigliaconvessa)

Page 118: Digital Image Processing - some exercises

Omografie

Page 119: Digital Image Processing - some exercises

Un piano proiettivo e una struttura geometrica che estende ilconcetto di piano euclideo, e un piano con dei particolari puntiall’infinito dove anche le rette parallele s’intersecano

In un piano proiettivo quindi qualsiasi coppia di rette si interseca inuno ed un solo punto, che e l’intersezione classica se s’incrocianood un punto all’infinito se sono parallele

I punti di un piano proiettivo sono espressi in coordinateomogenee:

I in 2D, p = (x , y ,w) e un punto di coordinate (x , y) e scala w

I rappresenta la classe d’equivalenza di tutti i punti cartesiani(x ′, y ′) tali che x ′ = wx , y ′ = wy

I due punti sono quindi uguali in senso proporzionale, cioe secoincidono ma a scale diverse

Page 120: Digital Image Processing - some exercises

Idea: formalizzare un piano immagine come piano proiettivo,infatti la proiezione prospettiva/3D determina punti di fuga perogni retta parallela della realta fotografata

Page 121: Digital Image Processing - some exercises

Un’omografia/trasformazione prospettica e una mappa da un pianoproiettivo in se stesso che mappa rette (= punti, per la dualitaimplicata dalle coordinate omogenee) in rette

Puo essere adoperata per formalizzare come variano le posizionipercepite se varia il punto di vista dell’osservatore

In due distinte immagini quindi i punti omografi sono lo stessopunto, ma da differenti angolazioni

Un’omografia e rappresentabile come una matrice 3x3, e tra dueimmagini possiamo costruirla a partire avendo parametrizzato lecamere che le hanno acquisite (camera models)

Page 122: Digital Image Processing - some exercises

La lunghezza focale f e la distanza tra il centro della lente e ilpiano focale (piano su cui si forma l’immagine fotografata)

Una camera al momento dello scatto puo essere rotata sugli assispaziali di una quantita (θ1, θ2, θ3)

Queste informazioni si possono codificare in due apposite matrici,K ed R a formalizzare la mappa di proiezione dell’immagine, P

L’omografia H tra le immagini I e J e allora H = PJPI−1

Page 123: Digital Image Processing - some exercises

RANSAC

Page 124: Digital Image Processing - some exercises

RANSAC e una procedura probabilistica per stimare un modello apartire da dati osservati (data fitting)

E’ particolarmente robusta, se instanziata con cura, ad insiemi didati con molti outlier points, causati da rumore od errateosservazioni

Input:

I data set S

I algoritmo del modello A

I iterazioni k

I numero campioni n

I numero di nuovi inliers m

I tolleranza ε

Page 125: Digital Image Processing - some exercises

L’idea della procedura e di iterare la selezione casuale di unsottoinsieme di punti e la costruzione del modello su di essi sottol’ipotesi che siano inliers

Terminato il ciclo e scelta la realizzazione del modello che hamostrato migliore precisione

Page 126: Digital Image Processing - some exercises

Iterazione:

1. un sottinsieme di n punti e selezionato casualmente da S

2. si applica l’algoritmo A di fitting su di essi (inliers) ottenendoun’istanza del modello Mi

3. i restanti punti (outliers) sono misurati rispetto ad essa,valutandone l’errore: se inferiore alla tolleranza ε, sonoconsiderati anch’essi inliers

4. l’istanza e scartata se non e stato possibile aggiungere unnumero maggiore-uguale ad m di nuovi inliers a quelli d’ipotesicampionati al punto 1; in questo caso l’iterazione termina

5. altrimenti, l’istanza Mi e riformulata sul nuovo insieme diinliers, rieseguendo quindi A sugli iniziali e sugli aggiuntiassieme

6. si stima l’errore Ei dell’insieme di inliers rispetto allariformulata M ′i

Page 127: Digital Image Processing - some exercises

I ora:I se e la prima iterazione, salviamo la formulazione,

curr = (M ′1,E1)I altrimenti confrontiamo questa con la sua controparte nel

modello della precedente iterazione se presente, curr , e serisulta Ecurr ≤ Ei l’istanza e scartata, diversamente sostituiscela precedente, curr = (M ′i ,Ei )

RANSAC e per natura un metodo iterativo: se p e la probabilitache p ∈ S sia un inlier, la probabilita di trovare la corretta istanzae:

P(Mcurr is correct) = 1− (1− (p)n)k

Page 128: Digital Image Processing - some exercises

In Autostitch:

I n = 4, cioe sono scelte per coppia d’immagini 4 coppie (pi,pj)dove pi e pj sono punti SIFT corrispondenti nelle dueimmagini

I k = 500

I m, ε impliciti (il programma permette di regolare RANSACattraverso due altri parametri α, β)

I M: matrice d’omografia H

I A: metodo DLT (direct linear transformation)

Page 129: Digital Image Processing - some exercises

Blending

Page 130: Digital Image Processing - some exercises

Il procedimento e ispirato al laplacian blending visto sopra, perchee un buon modo di amalgamare i contenuti di due immaginiproporzionalmente al loro contenuto informativo cioe:

I basse frequenze/struttura - vasta scala (es. cieli)

I alte frequenze/dettagli - piccola area (es. pareti rocciose)

Page 131: Digital Image Processing - some exercises

Esprimiamo l’immagine in coordinate non rettangolari bensısferiche e procediamo nel seguente modo:

1. per ogni immagine Ii calcoliamo le funzioni di peso

W i (θ, φ) = w(θ)w(φ)

con w(θ) che varia linearmente in [0, 1] da θmin a θmax

2. le funzioni di peso massimo:

W imax(θ, φ) =

{1, se W i (θ, φ) = arg maxj W j(θ, φ)

0, altrimenti

cioe W imax(θ, φ) = 1 se considerando il pixel (θ, φ) in tutte le

immagini Ij , Ii e quella che ha peso massimo in esso

3. si forma una versione passa alto B iσ dell’immagine Ii

attraverso DoG

4. si opera un passa basso W iσ sull’immagine funzione peso

massimo

5. una piramide immagine per B iσ e per W i

σ e assemblata

Page 132: Digital Image Processing - some exercises

1. combiniamo la coppia di piramidi di ogni immagine i ad unacerta scala σ con la formula seguente:

Imbkσ (θ, φ) =

∑ni=1 B i

kσ(θ, φ)W ikσ(θ, φ)∑n

i=1 W ikσ(θ, φ)

2. collassiamo la piramide ottenuta

Page 133: Digital Image Processing - some exercises

Risultati

Page 134: Digital Image Processing - some exercises

Ground - trasformazione prospettica

Page 135: Digital Image Processing - some exercises

Risultato - il panorama e stato costruito senza modificare i parametri diAutostitch preimpostati a partire dalle immagini {0, . . . , 4, c , d , e}

Page 136: Digital Image Processing - some exercises

L’immagine risultante ha dimensioni non e esattamentecomparabili alla ground per via della bordatura e delle dimensioni

ssim.m richiede due immagini delle stesse dimensioni e se troppograndi finisce la memoria, quindi le ho portate entrambe a1723x3628 (1723 e la media mentre 3628 e meta della media)

Lo score e .2866, il risultato e visivamente buono e non si e persainformazione durante la composizione; un handicap del risultato el’irregolare bordatura nera (possibile soluzione: estrapolazione)

Page 137: Digital Image Processing - some exercises

Ground - trasformazione prospettica

Page 138: Digital Image Processing - some exercises

Il programma Autostitch e liberamente scaricabile all’indirizzohttp:

//www.cs.bath.ac.uk/brown/autostitch/autostitch.html,ed allo stesso indirizzo si puo trovare anche ampia documentazioneteorica

Page 139: Digital Image Processing - some exercises

Esercizio 5 - Image color/mood transfer

Page 140: Digital Image Processing - some exercises

Valutiamo due approcci alternativi a quello visto in aula:

I histogram matching

I histogram sliding

Nel primo cerchiamo di portare sistematicamente l’istogrammadell’immagine target vicino a quello dell’immagine modello

Nel secondo operiamo sui valori pixel in modo che, in media, duepixel qualsiasi delle due immagini siano uguali

Page 141: Digital Image Processing - some exercises

Histogram matching :

I Siano HT ed HM gli istogrammi delle immagini target T emodello M, di range dinamico L; cerchiamo unatrasformazione g : L×N→ L×N tale cheg(T (k)) ≈ M(k) ∀k ∈ L

I una strategia esplicita e trovare una trasformazione f : L→ Lche minimizza

HcumM (f (k))− Hcum

T (k)

cioe che fa sı che gli istogrammi cumulatiHcum(k) =

∑ki=1 H(i) siano il piu possibile uguali

I imponiamo i seguenti vincoli su f :I monotonicita: data una qualsiasi coppia (k , k ′) con k ≤ k ′

risulta f (k) ≤ f (k ′), l’ordine e mantenutoI accuratezza: dev’essere

HcumM (f (k))− Hcum

T (k) < |HM (k)|−|HT (k)|2

I il risultato finale si ha applicando la trasformazione fall’immagine T

Page 142: Digital Image Processing - some exercises

Histogram sliding :

I calcoliamo il colori medi di T e di M, avgM , avgTI sia δavg = avgM − avgT la loro differenza

I correggiamo T sommando ad ogni suo canale lacorrispondente componente in δavg

Page 143: Digital Image Processing - some exercises

Risultati

Page 144: Digital Image Processing - some exercises

Immagine modello M

Page 145: Digital Image Processing - some exercises

Immagine target T

Page 146: Digital Image Processing - some exercises

Histmatch

Page 147: Digital Image Processing - some exercises

Histslide

Page 148: Digital Image Processing - some exercises

Istogrammi

Page 149: Digital Image Processing - some exercises

Le due funzioni MATLAB utilizzate sono histmatch.m emeancorr.m

histmatch.m si basa sul comando histeq

Page 150: Digital Image Processing - some exercises

NPR - Non-photorealistic rendering

Page 151: Digital Image Processing - some exercises

Effetti:

I neon glow

I spraycan effect

I comic book effect

Il codice e frutto di sperimentazioni e prove personali inMathematica ed e contenuto nel modulo LameDIP.m

Page 152: Digital Image Processing - some exercises

L’effetto neon glow ritorna una particolare immagine di bordo chericorda luci al neon al buio

Algoritmo:

1. l’immagine di input I e processata con un operatore gradientedi raggio 3, A = grad(I , 3) cioe e effettuata una convoluzionetra l’immagine I ed un kernel w ottenuto campionando laderivata di una gaussiana (r = 3, σ = r/2)

2. si converte il risultato a valori di grigio, B = gray(A)

3. l’immagine corrente e colorata a sfumature di un colore rgbdato, ossia si trasforma in modo che il suo grigio sia posto adrgb, C = shade(B, rgb)

4. si costruisce una serie di maschere D1, . . . ,Dk con Di ottenutaoperando su C un filtraggio gaussiano (r = 10i , 10i/2), k dato

5. l’immagine finale e E = C +∑k

i=1 Di

Page 153: Digital Image Processing - some exercises

Target

Page 154: Digital Image Processing - some exercises

k = 1

Page 155: Digital Image Processing - some exercises

k = 5

Page 156: Digital Image Processing - some exercises

k = 10

Page 157: Digital Image Processing - some exercises

Come il nome suggerisce, l’obiettivo dell’effetto spraycan esimulare un’opera a vernice spray

Algoritmo:

1. l’immagine d’ingresso I subisce una quantizzazione del colore che la portaad avere 5 soli colori distinti, A = cq(I , 5), individuando macchie di colore

2. si calcola l’immagine prodotto B = AI , di pseudo-riduzione del colore

3. filtraggio gaussiano di raggio 3 ed std 1.5 su B, C = gau(B, 3, 1.5)

4. sharpening dell’immagine C (ad esempio mediante somma del laplaciano)

5. C e filtrata due volte con un kernel gaussiano raggio 3, ottenendol’immagine D

6. calcolo di E = grad(D, 3)

7. passaggio ai grigi, F = gray(E)

8. negativo, G = 1 − F

9. maschera, con il prodotto H =∏k

i=1 Gi , k intensita data

10. l’immagine finale e J = CH, la quale puo richiedere schiarimento

Page 158: Digital Image Processing - some exercises

Target

Page 159: Digital Image Processing - some exercises

k = 2

Page 160: Digital Image Processing - some exercises

La procedura comic book e sostanzialmente uguale alla precedenteanche se il risultato e notevolmente diverso (per i dettagli sirimanda al codice)

Page 161: Digital Image Processing - some exercises

Target

Page 162: Digital Image Processing - some exercises

k = 60