Questione di immagine (segment)

Sebbene oggi moltissimi hanno a che fare con le immagini digitali pochi conoscono  poco piu’ di una infarinatura e le immagini sono prese come una “scatola nera”, senza neanche porsi il problema di cosa siano e di che proprietà siano dotate.

Vediamo di accennare qui alcune nozioni relative a come sono gestite le immagini in un calcolatore.

Cominciamo col dire che una immagine e’ come una tabella della battaglia navale, in cui righe e colonne sono individuate solo da numeri e l’origine (lo zero cioè) di questa tabella e’ nell’angolo in alto a sinistra. Ogni singolo elemento dell’immagine (il quadratino della griglia) viene detto pixel ( picture element).

Quando si sente parlare di Megapixel non ci si riferisce ad un singolo puntino, ma si usa questa unità di misura per indicare di quanti puntini elementari formano l’immagine. Megapixel indica che ci troviamo di fronte a un Milione di pixel.

Vediamo ora come viene rappresentata una immagine nel computer. Per ora limitiamoci sono ad immagini in bianco e nero e di dimensioni molto ridotte.

Supponiamo di avere una immagine reale ( lo smile ) di cui facciamo una acquisizione tramite una fotocamera.

Sovrapponiamo una griglia alla nostra immagine e facciamo diventare nero ogni quadratino che contiene al suo interno piu’ di una certa percentuale di nero. A questo punto ogni quadrato bianco viene memorizzato come uno “0” ed ogni quadratino nero verra’ rappresentato come un “1”.

Avremo quindi qualcosa che puo’ essere rappresentato dalla figura sotto

Il nostro smile all’interno del computer sarà rappresentato come una sequenza di 0 ed 1, che puo’ essere facilmente trattata ed elaborata dal computer. In questo caso sarà:

00111100

01000010

10100101

100000011

0100101

10011001

01000010

00111100

ovvero

0011110001000010101001011000000110100101100110010100001000111100

che è difficilmente utilizzabile da un essere umano ma molto facilmente memorizzabile ed utilizzabile per un calcolatore.

Come si vede dalla figura superiore, con 64 pixel riusciamo a dare una rapprezentazione non molto dettagliata dell’immagine di partenza.  Vediamo cosa succede aumentando la risoluzione.

Passando da una rappresentazione 8*8 ad una 16*16 otteniamo un sensibile miglioramento della qualità dell’immagine riprodotta, anche se questa e’ ancora lontana da quella dell’immagine originale.

Ma cosa comporta aumentare la risoluzione ? In questo caso abbiamo raddoppiato la dimensione lineare della rappresentazione ( ovvero il numero di pixel usati per  ogni lato ) e questo ha comportato un aumento di 4 volte dello spazio di memorizzazione all’interno del computer. La rappresentazione numerica di tale immagine diventa quindi:

0000011111000000

0000100000110000

0001000000001000

0010000000000100

0100011001100010

0100011001100010

10000000000000010

10010000000001001

10010000000001010

0100100000001010

0100100000010010

0010011111100100

0001000000001000

0000110000110000

0000001111000000

ovvero

000001111100000000001000001100000001000000001000001000000000010001000110011000100100011001100010100000000000000101001000000000100110010000000001010010010000000101001001000000100100010011111100100000100000000100000001100001100000000001111000000

che è una sequenza di 256 cifre, e come nel caso precedente, è di difficile interpretazione e memorizzazione per un essere umano, ma di agevole uso per un calcolatore.

A questo punto voglio accennare ad un argomento che approfondiro’ in altra sede: come si puo’ vedere dalla sequenza riportata sopra ci sono molte cifre che si ripetono, e si puo’ pensare che in caso di immagini molto grosse ( superiori al mega pixel – che se fossero rappresentate come le ho rappresentate in questo esempio sarebbero sequenze lunghe 40 volte questa ) possa tornare utile “comprimere queste sequenze eliminando le ripetizioni.

Ad esempio : quando ho una sequenza di 6 zero potrei scrivere 6*”0”; e analogamente per una sequenza di uno, ed espressa in maniera piu’ “formale” questa codifica diventerebbe

numero_di_ripetizioni*”simbolo_ripetuto”;

La nostra sequenza che rappresenta lo smile a quel punto diventerebbe qualcosa tipo:

5*”0″;5*”1″;10*”0″;1*”1″;5*”0″;2*”1″;7*”0″;1*”1″;8*”0″;1*”1″;5*”0″;1*”1″;10*”0″;1*”1″;3*”0″;1*”1″;3*”0″;2*”1″;2*”0″;2*”1″;3*”0″;1*”1″;2*”0″;1*”1″;3*”0″;2*”1″;2*”0″;2*”1″;3*”0″;1*”1″;1*”0″;1*”1″;14*0;1*”1″;1*”0″;1*”1″;2*”0″;1*”1″;9*”0″;1*”1″;2*”0″;2*”1″;2*”0″;1*”1″;9*”0″;1*”1″;1*”0″;1*”1″;2*”0″;1*”1″;2*”0″;1*”1″;7*”0″;1*”1″;1*”0″;1*”1″;2*”0″;1*”1″;2*”0″;1*”1″;7*”0″;1*”1″;2*”0″;1*”1″;3*”0″;1*”1″;2*”0″;6*”1″;2*”0″;1*”1″;5*”0″;1*”1″;8*”0″;1*”1″;8*”0″;2*”1″;4*”0″;2*”1″;10*”0″;4*”1″;6*”0″;

Questo tipo di codifica risulta particolarmente vantaggiosa nel caso ci siano molti simboli adiacenti ripetuti, mentre non loè quando si ha a che fare con molte variazioni consecutive. Ad esempio:

Caso Vantaggioso:

000000000111111111 -> 9*”0″;9*”1″;

Caso Svantaggioso:

0101010101010101 01 -> 1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;1*”0″;1*”1″;

Approfondiremo questo argomento in un altro articolo.

Nota: se qualcuno pensasse che con 64 pixel si puà fare poco lo prego vedere il filmato seguente che mi pare sia esplicativo.

…e se voleste sapere come questo apparato è stato fatto guardate

“Han Lee’s Wooden Pixel Display 64”

http://makezine.com/2013/11/21/han-lees-wooden-pixel-display-64/

Advertisements

Un pensiero su “Questione di immagine (segment)

  1. Pingback: Le immagini ed il colore – premessa (Repost) | Num3ri v 2.0

I commenti sono chiusi.