Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Ora ci sposteremo su come si rappresenta un'immagine in modo da poterlo elaborare usando trasformazioni Così, abbiamo lasciato una domanda durante l'ultima lezione che è se lo spettro delle luci visibili è VIBGYOR dal violetto al rosso, perché usiamo una rappresentazione del colore RGB, speriamo che abbiate avuto modo di pensarci, leggete e figurate la risposta. La risposta è l'occhio umano è costituito da barre e coni. Le barre sono responsabili di rilevare l'intensità nel mondo che ci circonda e i coni sono responsabili di catturare i colori e capita che l'occhio umano ci siano principalmente tre tipi di coni e questi coni hanno sensibilità specifiche e le sensibilità di questi coni sono a lunghezze d'onda specifiche che sono rappresentate da S, M e L su questa particolare figura. Quindi, se si guarda dove questi coni di picco a quello che succede sono vicini al rosso, al verde e al blu e questo è il motivo per rappresentare immagini come rosso, verde e blu in tutta onestà il pezzetto non capita esattamente di rosso, verde e blu, in realtà accade in colori sparsi tra ma per convenienza usiamo solo R, G e B. Alcuni fatti interessanti qui succede che le lunghezze d'onda M e L qui sono più forti sul cromosoma X, quindi significa che i maschi che hanno il cromosoma XY, le femmine hanno il XX sono più inclini al colore. Quindi, anche non è che tutti gli animali abbiano gli stessi tre coni mentre gli esseri umani hanno 3 coni, gli animali notturni hanno 1 cono, i cani hanno 2 coni di pesce e gli uccelli hanno più sensibilità di colore e va a 4, 5 o in una mantovana di manette sale fino a 12 diversi tipi di coni. Quindi la natura ha abbondanza di come si percepisce i colori. (02.42) Spostarsi su come è rappresentata un'immagine, il modo più semplice per rappresentare un'immagine che potreste aver già pensato di rappresentare un'immagine come matrice. Quindi, ecco la foto della Charminar e se si guarda una piccola porzione dell'immagine la parte dell'orologio si vede chiaramente che si può ingrandire e probabilmente la si può rappresentare come matrice di valori in questa linea di case tra 0 e 1 e ovviamente avrete una matrice simile anche per il resto dell'immagine. Quindi, ma è molto comune in pratica mentre qui si parla di utilizzarlo con valori da 0 a 1, in pratica le persone usano fino a un byte per rappresentare ogni pixel che significa che ogni pixel ha può assumere un valore compreso tra 0 e 255 a byte e in pratica normalizziamo anche questi valori tra 0 e 1 e questo è il motivo per cui si vedono questi tipi di valori in una rappresentazione. E anche, tenersi in mente è che per ogni canale di colore si avrebbe una matrice simile se si avesse un'immagine Rossa, Verde, Blu, si avrebbe una matrice per ciascuno di questi canali. Quale sarebbe la dimensione di questa matrice, la dimensione di queste matrice dipenderebbe dalla risoluzione dell'immagine. Quindi, ricordati ancora quello che abbiamo parlato del componente di telerilevamento dell'immagine nell'ultima lezione, quindi a seconda di quale risoluzione il sensore di immagine cattura l'immagine in, che deciderebbe la risoluzione e da qui la dimensione della matrice. (04.27) Una matrice non è l'unico modo per rappresentare un'immagine, un'immagine può anche essere rappresentata come una funzione, perché così? Ci aiuta solo ad avere operazioni sulle immagini in modo più efficace se la rappresentiamo anche come funzione, certe operazioni almeno. Così, in questo caso potremmo parlare di questa funzione che va dalla R alla R, dove semplicemente corrisponde ad una particolare posizione coordinata 2 R 2 sull'immagine, diciamo (i, j) ed è quello che intendiamo per R. 2 E la gamma R è l'intensità dell'immagine che potrebbe assumere un valore compreso tra 0 a 255 o 0 a 1 se si sceglie di normalizzare l'immagine. E un'immagine digitale è una discreta versione quantizzata campata di quella funzione continua di cui abbiamo appena parlato, perché è una versione a campione quantizzata per campione intendiamo che la campioniamo a quella risoluzione, originariamente la funzione può essere continua che è come il mondo reale in cui l'immagine è stata catturata. Poi campioniamo il mondo reale ad alcuni particolari valori di pixel su qualche griglia rispetto a un punto di riferimento ed è quello che chiamiamo come versione discreta di esempio l'originale della funzione continua originale. Perché quantizzato perché stiamo dicendo che l'intensità può essere rappresentata solo come valori compresi tra 0 e 255 e anche negli stessi passaggi non si può avere un valore 0,5 per istanza almeno in questo particolare esempio. Ovviamente puoi cambiarlo se ti piace in una determinata impostazione di cattura ma quando parliamo di usare un byte per rappresentare un pixel puoi avere solo 0, 1, 2 così su e così via fino al 255 non puoi avere un 0,5 quindi sei effettivamente discretizzato o hai quantizzato il valore di intensità che hai nell'immagine. (06.25) Quindi, parliamo di trasformare le immagini quando li guardiamo come funzioni, quindi ecco una trasformazione di esempio così si ha un volto e ci sembra di aver alleggerito in qualche modo la faccia. Quale pensi che sia la trasformazione qui? Riesci a indovinare? Nel caso in cui tu non l'avessi, la trasformazione qui è se la tua immagine di input era io e la tua immagine di uscita è stata che ti ho fatto dire che io ho cappello da cappello sono I (x, y) più 20. E il 20 è solo un numero se volete che sia più alleggerito si direbbe più 30 o più 40, di nuovo qui ipotizziamo che i valori mentano tra il 0 e il 255. (07.11) Un altro esempio, diciamo che questo è il prossimo esempio dove a sinistra hai un'immagine di origine sulla destra hai un'immagine di destinazione. Quello che secondo lei è la trasformazione, la trasformazione è che io sto io (x, y) sarei io (− x, y). L'immagine si riflette intorno all'asse verticale, l'asse y è fisso e poi si ruota, si ribaltano i valori dell'asse x. Se notate qui entrambi questi esempi, le trasformazioni accadono punto saggio o pixel saggio, in entrambi questi casi abbiamo definito la trasformazione a livello di pixel. È l'unico modo in cui è possibile eseguire una trasformazione? Non necessariamente. (08.06) Molto ampiamente parlando abbiamo tre diversi tipi di operazioni che si possono eseguire su un'immagine che si hanno punti operazioni, le operazioni di punti sono quelle di cui abbiamo appena parlato dove un pixel all'uscita dipende solo da quel particolare pixel la stessa posizione coordinata nell'input che sarebbe un'operazione di punto. Un'operazione locale è dove un pixel all'uscita dipende da un'intera regione o da un quartiere circostante che si coordinano nell'immagine di input, e un'operazione globale è una in cui il valore che un pixel assume nell'immagine di uscita dipende dall'intero input, sull'intera immagine di input. In termini di complessità per un funzionamento punto la complessità per pixel sarebbe solo una costante, per un'operazione locale la complessità per pixel sarebbe p square assumendo un quartiere pxp, quartiere locale intorno alla coordinata che si sta valutando per quell' operazione. E in caso di operazioni globali ovviamente la complessità per pixel sarà N 2 dove l'immagine è N x N. (09.29) Vediamo un paio di operazioni in più punti e poi vediamo locali e globali, quindi ecco un'operazione di punto molto conosciuta che potreste aver usato nella vostra fotocamera o photoshop di Adobe o qualsiasi altro compito di editing delle immagini di attività che avete assunto. Si tratta di un compito di valorizzazione delle immagini e vogliamo invertire il contrasto, invertendo il contrasto vogliamo che il nero diventi bianco e il grigio scuro per diventare grigio chiaro così via e così via. Che ne pensi? Come si implementerebbe questa operazione? Nel caso non l'abbiate ancora lavorato, l'operazione sarebbe a un pixel particolare è un'operazione di punto così in particolare pixel (m,) la tua uscita sarà meno il pixel originale in quella posizione più, 0 n0 IMAX IMIN you are flippato quindi se hai un valore dire 240 che è vicino al bianco generalmente bianco è a 255 e 0 è nero se hai un valore 240, ora che diventerai 15 perché io in MAX il nostro caso è 255 e io 0. è 0, ovviamente non importa ma questa formula è MIN IMIN IMIN ipotizzando un'impostazione più generale dove potrei essere qualche altro valore che si ha nella pratica MIN. (10.57) Moving on let prendiamo di nuovo un esempio di potenziamento delle immagini, ma questa volta si parlerà di allungare il contrasto quando si allunga il contrasto, si sta prendendo l'insieme dei valori e si sta allungando per utilizzare l'intera serie di valori che ogni pixel può occupare, quindi potete vedere qui questa è di nuovo un'operazione molto comune che avete utilizzato se avete modificato le immagini. Quello che secondo lei è l'operazione qui questa è leggermente più complicata poi la precedente, nel caso lei già non avesse la risposta, ricordarsi di farci scoprire per prima cosa il rapporto così hai un tipico I che è 255 - 0 di max di I in questa immagine meno min di I in MAX − IMIN questa immagine ci fa ipotizzare ipoteticamente che questa immagine sulla sinistra avesse il suo valore max ad essere 200 e il suo valore min ad essere 100. Se questo è il caso questo intero rapporto qui che vedete diventerà 2,55 questo è (255-0 )/100. Quindi, state semplicemente dicendo che prendo il pixel originale qualunque cosa ci faccia ipotizzare per il momento in cui il pixel originale aveva un valore, diciamo 150 così se questo avesse il valore 150 così si sottrae un minimo, quindi significa avere un valore il minimo è 100, quindi si va ad avere 50 in 2,55 più io per noi che è 0 che arriva all'incirca a 128. MIN Così che è il 50% dell'output complessivo. Allora, quello che era il 150 che era in mezzo allo spettro nella gamma di valori che avevamo per questa immagine di input ora diventa 128 che diventa il mezzo dello spettro per l'intera serie di valori compresi tra 0 e 255, si cerca semplicemente di allungare il contrasto che si deve usare tutti i valori che si hanno tra il 0 e il 255. Il che significa che quello che sarebbe passato dal grigio scuro al grigio chiaro va dal nero al bianco che è come si aumenta un contrasto, quindi questo si chiama contrasto lineare allungando di nuovo una semplice operazione ma in pratica facciamo qualcosa di più complicato. (13.27) Così, facciamo quello che è noto come l'equalizzazione istogram che potreste aver nuovamente sentito parlare di esso forse lo ha usato in determinate impostazioni se ne avete sentito parlare, leggete e che saranno i vostri compiti per questo particellalezione di lar. (13.41) Quindi, lasciate che la domanda faccia le operazioni di punto soddisfano tutti i requisiti che abbiamo di operare sulle immagini? Facciamo un esempio particolare, quindi sappiamo che un'unica intensità di punti influenza da più fattori di cui abbiamo parlato all'ultima volta e che potrebbe non dirci tutto così perché influenzano la forza della sorgente luminosa, la direzione, la geometria della superficie, la cattura del sensore, la rappresentazione dell'immagine e così via. Quindi, potrebbe non essere del tutto informativo quindi facciamo un esempio per mostrarlo, quindi suppliamo di darvi una fotocamera e di avere una scena ancora senza movimento come si fa a ridurre il rumore utilizzando le operazioni di punto. Il rumore potrebbe essere causato da qualche polvere che soffiava sulla scena potrebbe essere causa da speck di polvere sulla lente della tua fotocamera o da qualsiasi altro motivo per quella vicenda potrebbe essere un danno su uno dei sensori. Il rumore potrebbe essere a diversi, a vari livelli, come si farebbe a ridurre il rumore usando solo le operazioni di punta? La risposta che devi prendere molte immagini e media loro perché è ancora scena, possiamo continuare a scattare immagini e sperare che il rumore arrivi mediamente, attraverso tutte le tue immagini che hai preso e prendi la media di tutte le tue immagini è un mucchio di matrici che puoi semplicemente prendere elemento di media saggia di tutte quelle matrici e che ti possono aiutare a mitigare in qualche misura la questione del rumore. Ma chiaramente che è il tratto che non si ottengono più immagini per ogni scena di continuo e non si ottiene una scena ancora che è assolutamente sempre tutto il tempo per arrivare c'è sempre qualche movimento e quindi questo potrebbe non essere un metodo che funziona molto bene nella pratica. Quindi, per fare questo dobbiamo laurearci dalle operazioni di punto alle operazioni locali. (15.31) Quindi, vediamo cosa significa un'operazione locale, come abbiamo già detto un valore di pixel in uscita dipende da un intero quartiere di pixel nell'input intorno a quella coordinata che coordinamo vogliamo valutare l'output a. (15.47) Quindi, ecco un esempio molto semplice per capire quale operazione locale sia l'esempio standard è quello che è noto come media mobile, quindi qui si ha l'immagine in ingresso originale I come potete vedere l'immagine in ingresso Sono semplicemente una scatola bianca posta su uno sfondo grigio scuro o in questo caso uno sfondo nero perché si possono vedere zeri come i valori ipotizzano che questo significhi uno sfondo nero. Quindi, l'immagine ha la particolare risoluzione in questo caso particolare è un'immagine da 10 × 10 e la scatola bianca si trova in una regione particolare. Ma il problema per noi è che supponiamo che questo pixel nero in mezzo qui e questo pixel bianco qui siano pixel di rumore che sono arrivati involontariamente. Allora, come li rimuovi? Quindi, il modo in cui li rimuoveremo è quello di considerare una media mobile, quindi si prende una finestra di 3 × 3, non serve essere 3 × 3 tutto il tempo potrebbe essere di dimensioni diverse, ulteriore momento lo prendiamo 3 × 3 e basta prendere la media dei pixel in quella determinata regione. Quindi, la media qui esce per essere 0, quindi lo riempi nella posizione centro di quella scatola. (17.03) Moving su di voi ora spostate la casella 3 × 3 alla successiva posizione che prendete di nuovo in media ora la somma risulta essere 90, 90/9 = 10. Allo stesso modo, spostare la casella scorre la casella fino a ulteriore e ancora una volta prendere la media di tutti i pixel nella scatola nell'input e che ti dà un valore nell'output. Chiaramente si può vedere che si tratta di un'operazione locale, l'output pixel dipende da un quartiere locale intorno alla stessa posizione coordinata nell'immagine di input. (17.46) E potrai continuare questo processo e finalmente finirete a creare l'intera immagine guardando un po' così, quindi potete vedere ora che potreste dover squagliare gli occhi per vedere questo, potete vedere ora che i pixel apparentemente rumorosi qui e qui nell'input sono stati sfumati a causa dei valori dei vicini e l'output sembra molto smodato, ecco un'immagine a bassa risoluzione così sembra un po' bloccante. Ma se hai una risoluzione più alta sembrerebbe molto affumicabile ai tuoi occhi. Allora, qual è l'operazione che abbiamo fatto, cerchiamo di capire quale operazione abbiamo fatto. Così, abbiamo detto qui che io al momento di fare un luogo particolare dire (x, y) ci sarà, ci andrete a prendere un quartiere. Quindi, il che significa che prendi la stessa posizione nella tua immagine di input e dici che vai da dire x meno qualche finestra k a x più qualche finestra k. Analogamente, andiamo da qualche y - k a y + k e chiamiamola così diciamo io, chiamiamola così dire j prendi i valori di tutti quei pixel nell'immagine in ingresso. E ovviamente andremo in media tutti, quindi si moltiplicerà questo intero valore entro il 1 perché il quartiere va da x - k a x + k ci sono totalmente 2 k + 1 pixel lì. Quindi, tu avrai (2k + 1), perché per x avrà 2k + 1 pixel, per y avrai 2 2k + 1 pixel e poi basta, quindi il numero totale di pixel sarà 1 incrociato l'altro e in questo particolare esempio che abbiamo visto k era 1 per noi, siamo passati da x-1 a x + 1, quindi se hai preso una determinata posizione sull'output, hai preso la posizione corrispondente sull'input e poi uno a sinistra e uno a destra. Quindi, da x-1 a x + 1, y-1 a y + 1 e che crea una matrice 3 × 3 per te ed è quello che finalmente la normalizzeremo. Questo diventa l'operazione che hai per la tua media mobile, quindi questo è un esempio di operazione locale. (20.11) Spostarsi all'ultimo tipo di operazione chiamata operazione globale come abbiamo già accennato in questo caso il valore al pixel di output dipende dall'intera immagine in ingresso. Riesci a pensare agli esempi? (20.27) Nel caso in cui non avessi già capito, un esempio forte di una cosa del genere, questo quello che è noto come trasformata di Fourier lo vedremo in una lezione leggermente successiva ma ci sono altre operazioni a cui può essere globale a seconda delle diverse applicazioni, vedremo più di questo un po' più tardi e parleremo specificatamente di Fourier un po' più tardi. Cioè di questa lezione così le vostre letture saranno il capitolo 3,1 del libro di Szeliski e anche come abbiamo accennato a riflettere sulla questione e leggere sull'equalizzazione dell'istogramma e cercare di scoprire come funziona e qual è l'espressione che scrivereste per farla funzionare.