18
DISCRETIZZAZIONE E TRATTAMENTO DELLE IMMAGINI INTRODUZIONE In informatica, con il termine pixel si intende ciascuno degli elementi puntiformi che compongono un’immagine. Solitamente nelle immagini che vediamo tutti i giorni sul computer i pixel sono di dimensione così ridotta da risultare indistinguibili ad occhio nudo. L’ occhio umano vede ciò che gli sta intorno in modo “continuo”: le immagini che percepisce non sono cioè costituite da quei quadratini. Discretizzare un’immagine significa perciò tradurla in un linguaggio digitale. La discretizzazione dell'immagine è migliore quanto più i pixel sono piccoli e di conseguenza più numerosi.

 · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

DISCRETIZZAZIONE E TRATTAMENTO DELLE IMMAGINI

INTRODUZIONE

In informatica, con il termine pixel si intende ciascuno degli elementi puntiformi che compongono un’immagine.Solitamente nelle immagini che vediamo tutti i giorni sul computer i pixel sono di dimensione così ridotta da risultare indistinguibili ad occhio nudo.

L’ occhio umano vede ciò che gli sta intorno in modo “continuo”: le immagini che percepisce non sono cioè costituite da quei quadratini.

Discretizzare un’immagine significa perciò tradurla in un linguaggio digitale. La discretizzazione dell'immagine è migliore quanto più i pixel sono piccoli e di conseguenza più numerosi.Infatti sentiamo dire spesso che la qualità di una macchina fotografica dipende dal suo numero di pixel. Dipende cioè da quanto sono discrete le immagini che riesce a catturare.

Page 2:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Maggiore è il numero di pixel, maggiore è la qualità dell’immagine:

Dall’ obiettivo fotografico, al computer, alla stampante o alla mail, la fotografia compie un lungo viaggio: per trasferire i dati in modo corretto il computer ha bisogno di un linguaggio che gli permette di identificare ogni singolo pixel e il suo colore. La prima parte di questo linguaggio consiste nell'identificare la posizione che ogni singolo pixel occupa all’interno della fotografia:

Per far questo il computer si serve delle coordinate cartesiane.

Una volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino è caratterizzato da un numero (in genere compreso tra 0 e 225) che indica l’intensità del grigio: se allo 0 corrisponde il bianco e al 225 il nero, maggiore sarà il numero, più scuro sarà il grigio del pixel.

Page 3:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Per le immagini a colori si usa il sistema RGB (Red, Green, Blu). Ogni celletta è caratterizzata da tre numeri: il primo indica l’intensità del rosso, il secondo del verde e il terzo del blu. Combinando questi tra colori si ottengono tutti gli altri.

Page 4:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

TRATTAMENTO DELLE IMMAGINIPer modificare le immagini operando sui valori dei singoli pixel si possono utilizzare diversi softwares specifici. Prima però, ecco un esempio dell'acquisizione di un immagine da parte del computer, fatta con excel.

SIMULAZIONE CON EXCEL

Iniziamo con un'immagine in bianco e nero:

Per realizzare la lettera 'A', ad ogni pixel (ovvero ogni cella del foglio elettronico) è stato attribuito il valore 1 (corrispondente al bianco) o 0 (corrispondente al nero). Tramite la funzione "formattazione condizionale" excel ha poi tradotto i valori nei rispettivi colori.

Page 5:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Si nota che se la dimensione dei pixel è elevata e il loro numero molto ridotto, la stessa figura di partenza risulta quasi irriconoscibile:

Aumentando il numero di pixel invece la qualità dell'immagine migliora.

Page 6:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Ecco ora un esempio della stessa figura, ma in scala di grigi:

Ogni cella ha un valore compreso tra 0 (nero) e 12 (bianco). Più è alto questo valore e più è chiaro il grigio.

Per finire ecco un esempio di immagine a tre colori: rosso, verde e blu (R.G.B.):

Page 7:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

QT OCTAVEQtoctave è un software per l'analisi numerica, adatto anche all'acquisizione, elaborazione e modifica di immagini.

Permette di operare sull'immagine, acquisita come una matrice, zoomandone una parte, modificando i valori dei singoli pixel o di un gruppo di questi (che costituiscono una sottomatrice di quella data).

Ecco alcuni esempi.

Acquisita un'immagine, è possibile, tramite la funzione "whos" sapere le dimensioni della matrice associata in modo da poterne selezionare una parte e operare su questa.

Page 8:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Creando successivamente una seconda matrice che abbia come elementi, ad esempio, i primi 50 elementi di I (matrice associata all'immagine), si ottiene un'immagine più piccola che risulta essere lo zoom di quella originale:

>>> J=I(1:50,1:50);

immagine corrispondente alla matrice J

Page 9:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Nella descrizione dei prossimi lavori non ci concentreremo sui comandi di input da inserire in Octave, limitandoci a descrivere il procedimento, lo scopo e il risultato delle varie operazioni. In coda è possibile trovare i link da cui scaricare tali comandi in modo integrale (occorre la connessione a internet).

LAVORO 1: modifica del valore di pixel in un'immagine a scala di grigi.

Acquisita un'immagine associata ad una matrice I, si procede come appena spiegato, selezionandone una parte:

primo zoom

Page 10:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

A questo punto ad ogni pixel della parte selezionata è stato attribuito lo stesso valore, corrispondente a 255 (bianco). Il risultato è una matrice composta unicamente da valori pari a 255, corrispondente a un'immagine completamente bianca.

Link completo dei comandi

LAVORO 2: modifica del valori di un pixel in un'immagine RGB.

Procediamo in modo analogo al precedente modificando però il valore di un singolo pixel. È da tener presente che in un'immagine RGB ad ogni pixel corrispondono tre valori numerici differenti.

Acquisizione dell'immagine e selezione di una sottomatrice J composta dai primi 10 elementi di quella originale:

Page 11:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Ora vengono attribuiti all'elemento J(2,2), tre valori corrispondenti rispettivamente a rosso, verde e blu.

>>> J(2,2,:)=[245 235 39];

Link completo dei comandi

LAVORO 3: aggiunta di costante ad un'immagine a scala di grigi

Questa volta, al posto di attribuire ad ogni pixel selezionato un valore specifico, viene aggiunta una stessa costante al valore di ogni elemento dell'immagine.

Acquisizione dell'immagine I:

Page 12:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Grazie al ciclo 'for', ci si sposta in ciascuna delle due dimensioni della matrice associata all'immagine, modificando in questo modo il valore di tutti i pixel. Si crea così una nuova matrice J i cui elementi corrispondono a quelli della matrice di partenza, aumentati di un certo numero (in questo caso 50).

>>> c=50;>>> for i=1:size(J,1)>>> for j=1:size(J,2)>>> J(i,j) = I(i,j)+c;

Ovviamente, se il valore della costante fosse stato negativo, l'immagine sarebbe risultata più scura.

Link completo dei comandi

LAVORO 4: aggiunta di costante ad un'immagine RGB

Si lavora in modo simile a quello precedente. In un'immagine RGB, se ad ogni pixel si somma una costante solo al valore corrispondente al colore rosso, l'immagine non risulterà semplicemente schiarita, ma l'effetto sarà quello di un'immagine più rossa di quella originale.

Una volta acquisita l'immagine si inseriscono di nuovo i comandi del ciclo 'for':

Page 13:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

>>> for i=300:size(A,1)>>> for j=400:size(A,2)>>> A(i,j)=A(i,j)+100;

Ed ecco il risultato:

Link completo dei comandi

Ciò significa che per ogni dimensione della matrice, l'operazione dell'aggiunta di costante non viene eseguita sin dal primo elemento, ma dal 300° (per la dimensione orizzontale) e dal 400° (per la dimensione verticale).

Page 14:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

LAVORO 5: aggiunta di rumore ad un'immagine.

Quando si modifica il colore di un pixel o di una porzione di immagine si dice che è stato aggiunto un rumore. Questo 'lavoro 5' riprende i passaggi del 'lavoro2': verrà modificato il valore di un singolo pixel e successivamente di una porzione di immagine.

>>> J(2,2,:)=[100 100 100];

Page 15:  · Web viewUna volta fatto questo ad ogni pixel è assegnato un colore. Per le immagini in scala di grigi (quelle che comunemente vengono chiamate ‘in bianco e nero’), ogni quadratino

Successivamente, utilizzando il ciclo 'for', si lavora su una parte della porzione di immagine modificandone tutti i valori:

Link completo dei comandi

Tutti i file scaricabili da questo documento si trovano al seguente indirizzo:

https://sites.google.com/site/laboratorio4clauree/

Lavoro realizzato da (in ordine alfabetico):

Baron Giulia

Bernini Rachele

Valle Nicolò

>>> for i=2:38>>> for j=2:21>>> J(i,j,:)=[100 100 100];