Visione Artificiale per
applicazioni multimodali
27 – Novembre– 2006
Ing. C. Spampinato
Overview
Image Processing
Occhio umano
Discretizzazione
Immagini binarie
Enhancement
Spazi di Colori
Strumenti
Applicazioni multimodali
La Percezione Visiva
Produce informazioni su:
Ciò che esiste nel mondo circostante
Dove gli oggetti sono localizzati
Come tali oggetti cambiano nel tempo
Grazie a tale informazione, un sistema
biologico o automatico può conoscere il
mondo esterno ed interagire con esso
Occhio Umano
La cornea è un tessuto spesso e
trasparente
che
ricopre
la
superficie anteriore dell'occhio e
serve a far convergere la luce in
esso incidente sul cristallino.
La sclera, in continuazione della
cornea,è una membrana opaca
che ricopre il bulbo oculare nella
sua parte interna.
La coroide contiene un insieme di
vasi sanguigni che portano la
maggior parte del nutrimento
all'occhio
La retina contenente i recettori
fotosensibili
Occhio Umano
Ai suoi estremi anteriori la coroide si divide in
due parti:
il corpo ciliare
l’iride
Il cristallino (o lente) ha la funzione:
schermare dalle onde nello schermo
dell’infrarosso e dell’ultravioletto che possono
danneggiare l’occhio
mettere a fuoco l’immagine sulla retina
Occhio Umano
La retina costituisce la membrana più interna
dell'occhio e misura circa 5cm x 5cm, ed è
l'elemento base su cui si fonda la visione;
Il nervo ottico è il collegamento tra lo
strumento di acquisizione visiva (l'occhio) e
l'elaboratore delle immagini (il cervello),che le
interpreta, le processa, le archivia, ecc
Computer Vision
La CV rappresenta la scienza che riproduce su
calcolatori elettronici il percorso cognitivo compiuto
dall’uomo nell’intepretazione della realtà.
La CV è preposta allo studio di tecniche e tecnologie
per analisi di immagini finalizzate ad acquisire
informazioni sul mondo esterno.
Le tecniche studiate devono supplire diversi livelli
cognitivi caratteristici della visione animale, da quello
più basso (acquisizione dell’immagine) a quelli più
elevato (interpretazione della scena)
Computer Vision
DIVERSI LIVELLI DI ANALISI
La visione artificiale si articola su tre livelli di
astrazione:
LOW LEVEL: Produce una nuova immagine
MIDDLE LEVEL: Estrae informazioni di tipo
strutturale
HIGH LEVEL: Produce un’interpretazione
della scena
Low Level
Operazioni preliminari:
Image Denoising
Regolazione del contrasto
Image sharpening
Fine: evidenziare o ridurre alcune caratteristiche
Risultato: immagine a partire da quella di ingresso
Middle Level
Estrazione delle informazioni strutturali
dell’immagine di ingresso (ex: edges,contours)
Numero degli oggetti presenti nell’immagine
Relazione spaziale fra gli oggetti in essa
presenti
Fine: estrazione delle informazioni
Risultato: descrizione della struttura dell’immagine
e della forma degli oggetti in essa trovati
High Level
La visione ad alto livello opera sulle informazioni
provenienti dalla visione a medio livello per comporre
un modello “semantico” della scena.
Il modello semantico comprende un’interpretazione
della scena: ad esempio gli oggetti sono classificati o
riconosciuti.
Segmentation (partizionare img in regioni o oggetti)
Pattern recognition (classificazione di tali oggetti)
In genere fa un largo uso di “conoscenza a priori”
Produce una descrizione semantica della scena
Discipline Correlate
Image Processing:
Riguarda le proprietà delle immagini e le
trasformazioni a cui possono essere
sottoposte (filtraggi, compressione,
registrazione 3-D, ecc.)
Pattern Recognition:
Riconoscimento e classificazione di oggetti,
che possono essere non solo visuali (es.
voice recognition).
Immagine Digitale
L'immagine è una funzione bidimensionale
F(x,y) della intensità luminosa il cui valore o
ampiezza ad una determinata coordinata
spaziale (x,y) determina l'intensità (cioè la
luminosità) dell'immagine in quel punto.
L’immagine è intrinsecamente bidimensionale
mentre la scena che riprende è 3D.
F(x,y) non è necessariamente uno scalare: se
ad esempio l'immagine è a colori, F(x,y) è
una funzione vettoriale:
F(x,y) = [f1(x,y) , f2(x,y) , f3(x,y)]
Immagine Digitale
Le immagini che normalmente percepiamo
sono date essenzialmente dalla luce riflessa
dagli oggetti, dunque la F(x,y) risulta
costituita da due componenti principali:
La quantità di luce diretta incidente sulla
scena vista:
Componente di illuminazione i(x,y)
La quantità di luce riflessa dagli oggetti
presenti nella scena:
Componente di riflessione r(x,y)
F(x,y) = i(x,y) * r(x,y)
Risoluzione
Risoluzione spaziale
Risoluzione spettrale
Risoluzione radiometrica
Risoluzione temporale
Risoluzione Spaziale
Numero di pixel per unità di area
Diminuendo la risoluzione spaziale otteniamo
il tipico effetto "quadrettato" causato
dall'aliasing
Risoluzione Spaziale
Risoluzione Spettrale
Diminuendo la banda passante l'immagine
diviene più "sfocata"
Risoluzione Radiometrica
Ecco cosa accade se si riduce la profondità di
colore :
Tipi di immagine
Un’immagine in toni di grigio è rappresentata
dal computer come una matrice di interi da 1
byte o 2 byte;
Un’immagine in bianco e nero è un’immagine
i cui punti possono assumere solo i due valori
0 e 1 (img binaria)
Spazi di Colore
L’uso del colore nell'immagine è motivato da
due fattori principali :
Il colore è un potente descrittore che spesso
semplifica l’identificazione dell'oggetto e della
scena.
Gli uomini possono discernere migliaia di
ombre di colore e di intensità, in confronto a
solo 20-30 ombre di grigio.
Spazi di Colore
I colori che gli uomini e alcuni animali
percepiscono in un oggetto sono determinati
dalla natura della luce riflessa dall’oggetto
stesso.
Se la luce è acromatica (colore privo di luce),
il suo solo attributo è l’intensità.
La luce cromatica invece si estende lungo la
gamma elettromagnetica pprossimativamente
dai 400 ai 700 nm.
Spazi di Colore
Tre principali elementi sono usati per descrivere una
fonte di luce cromatica:
Radiance: è l’energia totale che fluisce dalla fonte di
luce, ed è misurata in watt (W).
Luminance, misurata in lumens (lm), dà una misura
dell’ammontare di energia che un osservatore
percepisce da una fonte di luce.
Brightness: è un descrittore soggettivo; incarna la
nozione acromatica di intensità.
Approssimativamente il 65% di coni dell’occhio
umano è sensibile alla luce rossa, il 33% alla verde, e
solo il 2% è sensibile all’azzurro (ma i coni blu sono i
più sensibili).
Spazi di Colore
I colori primari possono essere addizionati
per produrre colori secondari di luce : il
magenta (blu + rosso), il ciano (blu + verde),
e il giallo (verde + rosso).
Mescolando i tre primari, o un secondario col
suo colore primario opposto, nelle intensità
giuste si produce luce bianca.
Spazi di Colore
C’è una differenza tra i
colori primari di luce e i
colori primari di
pigmenti (o coloranti).
Nei pigmenti un colore
primario è definito come
il colore che sottrae o
assorbe un colore
primario di luce e riflette
o emette gli altri due.
Spazi di Colore
Le caratteristiche che generalmente sono usate per
distinguere un colore da un altro sono:
Luminosità;
Tonalità, che è un attributo associato con la
lunghezza d'onda dominante in un insieme di onde
luminose.
La tonalità rappresenta il colore dominante percepito.
Così, quando noi chiamiamo un oggetto rosso,
arancione, o giallo, noi stiamo specificando la sua
tonalità.
Saturazione assegna la relativa purezza o la quantità
di luce bianca mescolata con un colore. I colori puri
dello spettro sono pienamente saturi.
Spazi di Colore
L’ ammontare di rosso, verde, e blu sono
necessari per creare un qualsiasi colore sono
chiamati tristimulus.
Un colore è specificato dal suo coefficiente
tricromatico:
Spazi di Colore :
Diagramma di Cromaticità
Modelli di colore
I modelli più comunemente usati in pratica sono :
RGB (rosso, verde, blu),
CMY (ciano, magenta, giallo) e il CMYK che
sono modelli di colore per stampare;
HSI (tonalità, saturazione, intensità) modello
che corrisponde da vicino al modo in cui gli
uomini descrivono e interpretano il colore.
RGB
Il sottospazio di
colore di interesse
è il cubo nel quale i
valori di RGB sono
tre angoli; ciano,
magenta, e giallo
sono gli altri tre
angoli; il nero è all’
origine; e il bianco è
l’angolo opposto
all’origine. In questo
modello, la scala di
grigio (punti di
uguali valori RGB)
si estende dal nero
al bianco .
CMY(K)
Molte apparecchiature che depositano pigmenti
colorati su carta, come stampanti a colori e
fotocopiatrici richiedono dati in input CMY o
effettuano una conversione da RGB a CMY
internamente.
Modello HSI
Hue : descrive la purezza del colore;
Saturation : grado di presenza del bianco;
Intensity : livello di grigio per rappresentare la
brillantezza;
Modello HSI
Color Processing Matlab
X = imread(’nome_file.jpg’);
Red_Channel = X(:,:,1);
Green_Channel = X(:,:,2);
Blue_Channel = X(:,:,3);
Gray_Image = rgb2gray(X)
Hsi_Image = rgb2hsv(X)
Hue_Channel = Hsi_Image(:,:,1);
Saturation_Channel = Hsi_Image(:,:,1);
Intensity_Channel = Hsi_Image(:,:,1);
Proprietà Topologiche Immagini
Binarie
Proprietà riferite ad una immagine (o di parte di essa)
che non variano in seguito a certe trasformazioni (
traslazione, rotazione, cambiamento di scala ed
elongazione) lungo un qualsiasi asse dell'immagine:
Intorno e adiacenza
Path
Connettività;
Connected Components;
Foreground,Background e Holes;
Bordo, Interno;
Intorno e adiacenza
Dato un pixel p di coordinate (x,y), i quattro
vicini (in orizzontale e verticale) hanno
coordinate:
(x+1, y), (x-1. y), (x, y+1), (x, y-1) e
costituiscono l’insieme N4(p) dei di p (Pixel
con ul lato in comune).
I quattro vicini diagonali di p hanno
coordinate (x+1, y +1), (x+1, y-1), (x-1, y+1),
(x-1,y-1) e formano l’insieme ND(p).
L’insieme degli 8-vicinidi p è dato da:
Intorno e adiacenza
Path
Un path da un pixel [i0,j0], al pixel [in,jn] è
una sequenza di pixel [i0,j0] , [i1,j1] , ... , [in1,jn-1] , [in,jn] tale che il pixel [ik,jk] sia un
vicino di [ik+1,jk+1] per ogni K[ 0,n-1].
Connected Component
Un connected component di una immagine
è un insieme di pixel in cui ogni elemento è
connesso con tutti gli altri
Appare allora chiaro che, ad esempio, un
path è un connected component.
Talvolta è detto “oggetto”
Connected Component
L’insieme S di tutti i pixel di valore non nullo
di un’immagine è detto foreground
L’ insieme dei connected components
appartenenti ad S (complementare di S) che
abbiano punti sul bordo dell'immagine è detto
background
L’ insieme di tutti i punti rimanenti (cioè che
non sono né di background né di foreground)
vengono detti holes
Connected Component
Convex Hull
Definiamo Convex Hull di un oggetto la più
piccola regione che contiene quell'oggetto e i
cui punti sono unibili con segmenti contenuti
nella regione stessa
Proprietà geometriche
Area (size) A = numero di pixel di un oggetto;
Perimetro P = numero di pixel del contorno;
Posizione = in genere corrisponde alle coordinate
del centro di massa dell'oggetto, calcolate
assegnando ad ogni pixel, come peso, il suo valore:
xp
B(i, j ) x
i
j
A
j
yp
B(i, j ) y
i
j
j
A
B(i,j) : peso (cioè valore) del punto di coordinate (i,j)
A : Area dell'oggetto.
Proprietà geometriche
Orientazione = angolo dell'asse principale
dell'oggetto rispetto ad un asse di riferimento
(tipicamente l'asse orizzontale); è calcolata
come l'asse per il quale la somma delle
distanze quadratiche perpendicolari rispetto a
tutti i punti dell'oggetto è minima:
x r Bi, j
2
2
i, j
i
j
ri,j : distanza perpendicolare della retta dal
punto (i,j)
B[i,j] : valore del pixel nel punto (i,j).
Proprietà geometriche
Compattezza = numero di pixel del contorno;
è misurata dalla disuguaglianza
isoperimetrica:
Più una figura è compatta, minore è il valore
del rapporto.
La figura che risulta più compatta è il cerchio
Enhancement
L’
image
enhancement
consiste
nell’elaborazione di un’immagine con il fine di
migliorarne determinate caratteristiche, ridurne
altre, eliminare o ridurre il rumore…
Si mira ad evidenziare alcune caratteristiche che
sono utili per passi successivi di processing
Oppure si mira a migliorare l’aspetto visivo
dell’immagine
Enhancement
I metodi da utilizzare per il miglioramento delle immagini vanno
scelti in base al tipo di immagine ed al tipo di elaborazione.
Tali metodi si dividono in due categorie:
Metodi nel dominio dello spazio (si basano su una diretta
manipolazione dei pixel);
Metodi nel dominio della frequenza (si basano su operazioni
effettuate sulla trasformata di Fourier);
Non c’è una teoria generale sull’enhancement dell’immagine, in
quanto la valutazione visiva della qualità dell’immagine è un
processo altamente soggettivo.
Biondi
Enhancement on spatial domain
Il termine dominio spaziale è legato al fatto che l’elaborazione si
basa direttamente sulla manipolazione dei pixel.
Le principali operazioni che si possono eseguire nel dominio
dello spazio sono:
Intesity o Gray Level transformation
Spatial filtering
Biondi
Background
I processi nel dominio dello spazio saranno denotati
dall’espressione:
g(x, y) = T[f(x, y)]
dove:
- f(x, y) è l’immagine di input
- g(x, y) è l’immagine processata
- T è un operatore su f, definito sull’intorno di (x, y)
Background
L’approccio principale nella definizione di una
vicinanza circa un punto (x, y) è usare una sottoparte
quadrata o rettangolare dell’immagine centrata in (x,
y), come mostra la figura
L’operatore T è applicato ad ogni punto (x,y) per
ottenere l’uscita g in quel punto
Background
La più semplice forma di T è quando il contorno è di
dimensioni 1x1 (cioè un singolo pixel).
g dipende solo dal valore di f in (x, y)
T diventa una funzione di trasformazione a livelli di
grigio (spesso chiamata a intensity o a mapping) .
In tal caso T dipende solo dall’intesità r e non da (x,y)
quindi si ha:
s = T(r)
Dove:
- r indica il livello di grigio di f(x, y)
- s indica il livello di grigio di g(x, y)
Alcune trasformazioni basilari a
livelli di grigio
Ci sono tre tipi base di funzioni usate frequentemente per il
miglioramento dell’immagine:
- lineare
- logaritmica
- a legge di potenza
Trasformazioni lineari:
Negativo (1/2)
La negativa di un’immagine con livelli di grigio nel range [0, L-1]
è ottenuta usando la trasformazione negativa mostrata nella
figura precedente con la formula:
s=L–1–r
Invertendo i livelli di intensità di un’immagine in questa maniera
si produce l’equivalente di una negativa fotografica
Trasformazioni lineari:
Negativo (2/2)
Trasformazioni logaritmiche (1/2)
La trasformazione logaritmica assieme al constrast stretching
rappresentazione le principali trasformazioni per la
manipolazione dinamici dei range di grigio.
La formula generale della trasformazione logaritmica è:
s = c*log(1 + r)
Dove:
- c è una costante
- si assume che r ≥ 0
La funzione log ha l’importante caratteristica di comprimere il
range dinamico nelle immagini con una larga variazione nei
valori dei pixel
Trasformazioni logaritmiche (2/2)
Viene usato per comprimere range dinamici.
Es. trasformata Fourier: intervalli [0 10^6].
Constrast stretching
Permette di comprimere i livelli di grigio minore di un valore m di
un’immagine in un ristretto intervallo di livelli scuri.
Se T(r) ha la forma mostrata nella prima figura l’effetto di questa
trasformazione è quello di produrre un’immagine ad alto contrasto
rispetto all’originale
s T r
1
1 (m / r ) E
r rappresenta l’intensità dell’immagine di ingresso.
E controlla la forma della funzione.
Trasformazioni a legge di potenza
Le trasformazioni a legge di potenza hanno la forma base:
s = crγ
dove c e γ sono costanti positive
Spesso tale equazione è scritta come:
s = c(r + ε)γ
Trasformazioni a legge di potenza
Trasformazioni a legge di potenza
Tali trasformazioni sono usate per correggere i “difetti” di alcune periferiche
usate per la cattura dell’immagine, la stampa, e la visualizzazione
Il processo usato per correggere questi fenomeni di risposta della legge di
potenza è chiamato gamma correction
Trasformazioni a legge di potenza
Come
si può notare
nell’esempio di questa
spina dorsale, grazie a tale
trasformazione
si
possono esaltare zone (le
lesioni) che erano quasi
“nascoste” nell’immagine
originale.
0.4
0.6
0.3
Trasformazioni a legge di potenza
3
4
5
Funzioni di trasformazione
“piecewise”-lineare
Vantaggi:
- la forma delle funzioni “piecewise” può essere resa arbitrariamente
complessa
- un’implementazione pratica di molte importanti trasformazioni può
essere formulata solamente come funzioni “piecewise”
Svantaggi:
- la loro specifica richiede considerevolmente più input da parte degli
utenti
Funzioni di trasformazione
“piecewise”-lineare
Constrast strecthing
L’idea dietro lo stiramento del contrasto è di aumentare il range dinamico dei
livelli di grigio nell’immagine che sta per essere processata.
Gray-level slicing:
Con questa tecnica si da rilievo ad uno specifico range di livelli di grigio in
un’immagine.
“Divisione del bit-plane:
Si suppone che ogni pixel in
un’immagine sia rappresentata da
8 bit. Si immagini che l’immagine
sia composta da 8 piani da 1 bit,
ordinati dal bit-plane 0 (il bit meno
signifivìcativo) al bit-plane 7 (il più
significativo)
Constranst Stretching
delle “piecewise trasformation”
semplici è la contrast-stretching.
Una
più
Constranst Stretching (2/2)
Gray-level and Bit-plane slicing
Evidenziare un specifico range di livelli di
grigio è spesso desiderabile.
Esistono molti approcci per effettuare lo
slicing, ma essenzialmente si possono
ricondurre a due.
Può essere molto utile evidenziare il
contributo dei singoli bit piuttosto che un
intero range di grigio.
Gray-level and Bit-plane slicing
Gray-level and Bit-plane slicing
Histogram Processing
L’istogramma di un’immagine è una curva
che fornisce informazioni sulla frequenza con
cui ogni livello di grigio è presente
nell’immagine.
L’istogramma si determina contando per ogni
valore dell’insieme dei valori assumibili dai
pixel dell’immagine (detto codominio
dell’immagine) il numero di volte che
compare nell’immagine stessa.
Histogram Processing
Allora se rk con k=0,…,255 rappresenta i
valori di grigio si ha che l’istogramma è:
nk
p rk
N
Dove nk rappresenta il numero di pixel con
valore di grigio rk ed N è il numero totale di
pixel dell’immagine
Histogram Processing
L’istogramma è la base per numerose
tecniche di processimento nello spazio.
E’ molto efficiente per l’enhancement.
Ma non solo… compressione e
segmentazione!!!
E’ possibile effettuare alcune trasformazione
dell’istogramma:
Equalizzazione dell’istogramma;
Matching dell’istogramma
Histogram Processing
Local Enhancement
L’enhancement
è
un
operazione
di
miglioramento dell’immagine.
Esistono due tipi di enhancement GLOBALE
e LOCALE.
Nelle sezioni precedenti sono elaborazioni
globali.
Le
procedure
precedentemente
viste
possono essere applicate definendo un
quadrato e spostando da pixel a pixel.
Local Enhancement
Le tecniche di processamento di un istogramma sono
facilmente adattabili al local enhancement.
La procedura deve definire un’area quadrata o
rettangolare e trasportare il centro di questa area da
pixel a pixel.
Su ciascuna ubicazione, verrà calcolato l'istogramma
dei punti che si trovano vicini in maniera tale da
ottenere una delle due seguenti funzioni di
trasformazione:
histogram
equalization
o
histogram specification
Local Enhancement
Tali funzioni vengono usate per mappare il livello
di grigio del pixel concentrato nei dintorni.
Il centro della regione vicina è mosso poi su una
locazione del pixel adiacente e la procedura è
ripetuta. Ad ogni iterazione ogni nuova riga o
colonna dei dintorni cambia durante la
traslazione da pixel-a-pixel della regione.
Questo approccio ha vantaggi ovvi in quanto
calcola l'istogramma ripetutamente su tutti i pixel
nella regione vicina e ogni volta la regione è
mossa a un pixel location.
Local Enhancement
Un altro approccio usato qualche volta per
ridurre il calcolo è utilizzare regioni non
sovrapposte, ma questo metodo di solito
produce
un
indesiderabile
effetto
checkerboard (quadrettato).
Local Enhancement
A
A=immagine originale;
B=Eq.istogramma globale;
C=Eq.istogramma locale;
B
C
Use of Histogram Statistics for
Image Enhancement
E’ molto utile usare parametri statistici
nell’istogramma piuttosto che l’intero
istogramma.
Sia r una variabile random discreta che
rappresenta un livello di grigio discreto in un
range [0, L-1] e p(ri) rappresenta l’istogramma
normalizzato e il corrispondente componente
all’i-esimo valore di r.
Use of Histogram Statistics for
Image Enhancement
Il momento n-esimo di r:
Dove m è il valore medio del livello di grigio:
Use of Histogram Statistics for
Image Enhancement
Due usi della media e della varianza per scopi di
enhancement.
La media e la variazione globale sono misurate su
un'immagine intera e sono utili primariamente per
rettifiche sull’ intensità complessiva e sul contrasto.
Enhancement locale: media e la varianza locale
sono usate per trasformazioni che dipendono dalle
caratteristiche dell'immagine in una determinata
regione.
Use of Histogram Statistics for
Image Enhancement
Siano
(x,y) le coordinate di un pixel
nell’immagine, e sia Sxy una sottoimmagine di
grandezza specificata, centrata in (x,y). Il
valore medio m del pixel in Sxy può essere
calcolato usando l’espressione:
Esempio
E’ necessario
evidenziare un’area e
lasciare l’altra
inalterata!!!
Enhancement locale
capace di evidenziare
solo le aree più
scure!!!
Esempio
Una misura di quando un’area è relativamente chiara o
scusa è quella di confrontare media e varianza locale
con media e varianza globale.
Un pixel (x,y) sarà candidato per il processamento se:
Un pixel che soddisfa tali condizioni verrà processato
moltiplicando per una costante E può essere maggiore
1 o minore di 1 a seconda del tipo di elaborazione.
Esempio
Ricapitolando: Sia f(x,y) il valore di un
determinato pixel alla coordinata (x,y) e sia
g(x,y) il enhanced pixel alla stessa
coordinata. Allora:
Esempio
Con E=4, K0=0.4, K1=0.02, K2=0.4
A
B
C
A= è stata applicata la media locale
B= è stata applicata la deviazione standard
C= immagine formata dalla moltiplicazione di tutte le costanti usate per
l’enhancement
Esempio
OpenCV
La libreria OpenCV (Open Source Computer
Vision) costituisce una collezione di algoritmi
ed esempi di computer vision.
Il codice è ottimizzato per la famiglia dei
processori Intel ed è compatibile con la
precedente libreria free IPL (Image
Processing Library).
OpenCV
OpenCV costituisce un supporto per usi
commerciali o di ricerca in settori della
computer vision quali human-computer
interface, monitoraggio, biometrica,
sicurezza, …, fornendo un’infrastruttura free
ed open che può essere consolidata e
ottimizzata grazie al lavoro dei membri della
vision community.
Esempio
IplImage *src;// dichiaro un’IplImage (struttura
dati usata per
immagini 2D)
char path[]=“C\\colombina.bmp”;
//creo una finestra di nome “window”
cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
src=cvLoadImage(path); //carico l’immagine
contenuta nel file colombina.bmp in “src” (la
memoria per l’immagine è allocata in modo
implicito)
cvShowImage("window",src); //mostro nella
finestra “window” l’immagine contenuta in
“src”
RGB 2 GRAY
CvSize size_src=cvSize(src->width,src->height);
//creo la variabile “size_src” di tipo
//“CvSize” per contenere
//larghezza ed altezza dell’immagine
src_gray=cvCreateImage(size_src,src->depth,1);
//creo l’immagine src_gray con
//le dimensioni fissate da size_src
//e con un solo canale
cvCvtColor(src,src_gray,RBG2GRAY); //passo “src”
convertita a toni di grigio
// nella variabile “src_gray”
cvNamedWindow("window color",CV_WINDOW_AUTOSIZE);
// la costante “CV_WINDOW_AUTOSIZE” richiede che
// la window si adatti alle dimensioni dell’immagine
cvShowImage("window color",src);
cvNamedWindow("window gray",1);
Applicazioni Multimodali
Analisi Attentiva
Object Recognition:
Face;
Gesture;
Tracking
Eye;
Face;