L'immagine Integrale

Figura 1.10: Costruzione dell'immagine integrale e utilizzo per calcolare aree.
Image fig_intimage

Sia $I$ una generica immagine a toni di grigio. Il valore del pixel $(x,y)$ dell'immagine integrale $\mathcal{I}$ rappresenta la somma dei valori di ogni pixel dell'immagine sorgente contenuti all'interno del rettangolo $(0,0)-(x,y)$:

\begin{displaymath}
\mathcal{I}(x,y) = \sum_{v=0}^{y} \sum_{u=0}^{x} I(u,v)
\end{displaymath} (1.99)

Con questa definizione è da notare che gli estremi del rettangolo sono compresi nella sommatoria (figura 1.10).

L'artificio computazione di usare l'immagine integrale permette di ottimizzare diversi algoritmi mostrati in questo libro in particolare SURF (sezione 5.4) e l'estrazione delle feature di Haar (sezione 6.1).

Grazie all'immagine integrale è possibile, ad un costo computazionale costante di 4 somme, ottenere la sommatoria di una qualunque sottoparte rettangolare dell'immagine $I$:

\begin{displaymath}
\begin{array}{l}
\sum_{y=y_0}^{y_1} \sum_{x=x_0}^{x_1} I(x...
...- \mathcal{I}(x_1,y_0-1) - \mathcal{I}(x_0-1,y_1)
\end{array}\end{displaymath} (1.100)

Il valore cosı ottenuto rappresenta la somma degli elementi dell'immagine originale all'interno del rettangolo (estremi inclusi).

Oltre a poter calcolare velocemente la sommatoria di una qualsiasi sottoparte dell'immagine, è possibile ottenere facilmente convoluzioni con kernel di forma particolare in maniera molto agevole e sempre con prestazioni invarianti rispetto alla dimensione del filtro. Esempi di maschere di convoluzione si possono vedere in sezione 6.1.

Paolo medici
2025-03-12