integrált kép

az integrált kép az, ahol minden pixel a megfelelő bemeneti képpont összesített összegét képviseli, a bemeneti képpont felett és bal oldalán lévő összes képponttal. Lehetővé teszi az összegzések gyors kiszámítását a kép alrégiók felett. Az ilyen alrégió bármely téglalap alakú részhalmaza állandó időben értékelhető.

ezt a koncepciót Viola & Jones vezette be, és Summed Area Table néven is ismert. lehetővé teszi a téglalap alakú képfunkciók gyors kiszámítását, mivel lehetővé teszik a képértékek összegzését bármely téglalap alakú képrégió felett állandó időben, azaz. az O (1) számítási komplexitása O (n) helyett.

az integrált kép meghatározása:

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

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

egyenlet az integrál kiszámításához pixelben (x, y)

a SAT módszer

  • tér komplexitás: O (M * N)
  • idő komplexitás tartomány összeg lekérdezés: O (1)
  • idő komplexitás frissíteni egy értéket mátrix: O (M*N)
  • hatékonyan kiszámítja a statisztikákat, mint az átlag, a szórás stb. bármely téglalap alakú ablakban

integrált Képszámítás

számítási technika

gyors területszámítás

területszámítás a kép négyszögletes alrégiójához

Sum = jobb alsó + bal felső — jobb felső — bal alsó

  • régió alapú statisztikai intézkedések pl. területösszegek, kovariancia, együttes előfordulási mátrix
  • textúra leképezés
  • feature — haar észlelése
  • adaptív küszöb
  • sztereó megfeleltetés
  • az integrált képek fogalma könnyen kiterjeszthető folyamatos tartományra (korlátok használatával) és többdimenziós képekre.
  • O (1) kétoldalú állandó térbeli szűrők

Kód

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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.