clear all;
clc;

%% I/O di immagini da file
% Caricare immagine da file nella matrice X
X = imread('satellite_gray.jpg');

% visualizza l'immagine
figure;
imshow(X);

% Le immagini sono matrici, ma non sono in formato double
whos
% uint8: 8 bit -> 0..255
% gli elementi che eccxedono 255 vengono visualizzati come bianchi
imshow(X*2)
% gli elementi minori di 0 vengono visualizzati come neri
imshow(X-150)

% Le immagini possono essere in bianco e nero (0 nero, 1 bianco)
imshow(X<80)

% Salvare l'immagine su file
imwrite(X<80, 'sat_threshold.png');
% Il formato di salvataggio puo' essere specificato.
% Se non ci sono opzioni esplicite, viene scelto il formato piu' economico
T = imread('sat_threshold.png');
whos

% conversione
X = imread('teethwhitening_Woman_Smile_small.jpg');
imshow(X);
whos
T = rgb2gray(X);
imshow(T);
whos

%% topologia
% torna una struttura con la lista delle componenti connesse secondo la
% relazione di vicinanza indicata
X = T > 220;
cc = bwconncomp(X,4);
