Un’immagine integrale è dove ogni pixel rappresenta la somma cumulativa di un pixel di input corrispondente con tutti i pixel sopra e sinistra del pixel di input. Consente un rapido calcolo delle sommatorie su sub-regioni dell’immagine. Qualsiasi sottoinsieme rettangolare di tale sottoregione può essere valutato in tempo costante.
Questo concetto è stato introdotto da Viola & Jones ed è anche conosciuto come Summed Area Table. consenti il calcolo rapido delle caratteristiche dell’immagine rettangolare poiché consentono la somma dei valori dell’immagine su qualsiasi regione dell’immagine rettangolare in tempo costante, ad es. complessità computazionale di O (1) invece di O (n).
Integrante Immagine è definita come
Il SAT metodo
- Spazio Complessità: O(M*N)
- Tempo di Complessità per la Gamma Somma Query: O(1)
- Complessità di Aggiornare un Valore nella Matrice: O(M*N)
- in modo Efficiente calcola le statistiche come la media, la deviazione standard, ecc in qualsiasi finestra rettangolare
Integrale Immagine di Calcolo
Veloce Calcolo dell’Area
Somma = in Basso a destra + in alto a sinistra, alto a destra, in basso a sinistra
Usa
- regione, sulla base di statistiche misure ad esempio somme di area, covarianza, matrice di co-occorrenza
- Texture mapping
- rilevamento di feature — HAAR
- soglia adattiva
- corrispondenza stereo
- Il concetto di immagini integrali può essere facilmente esteso al dominio continuo (utilizzando limiti) e alle immagini multidimensionali.
- O(1) Bilaterale con filtri spaziali costanti
Codice
class NumMatrix {
public:
vector<vector<int>> sat;
bool empty=true;
NumMatrix(vector<vector<int>> &img) {
int row = img.size();
if(row == 0) return;
int col = img.size();
if(col == 0) return;
empty = false;
sat = vector<vector<int>>(row + 1, vector<int>(col + 1));
for(int i = 1; i <= row; i++)
for(int j = 1; j <= col; j++)
sat = sat + sat - sat + img;
}
int sumRegion(int row1, int col1, int row2, int col2) {
return empty? 0 : sat - (sat + sat - sat);
}
};