Immagine integrale

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

https://computersciencesource.files.wordpress.com/2011/05/sxyeq.png

https://computersciencesource.files.wordpress.com/2011/05/sxyeq.png

Equazione per il calcolo di integrali al pixel (x,y)

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

Calcolo tecnica

Veloce Calcolo dell’Area

calcolo dell’Area rettangolare sub regione dell’immagine

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);
}
};

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.