Skip navigation

Harris sarokdetektor

A Harris sarokdetektor bemutatása

A sarokdetektorok általában olyan pontokat keres a képen, ahol a gradiens minden irányban nagy. A Harris sarokdetektor egy "sarkossági" értéket jelez a képen, mivel nem minden pontról lehet eldönteni, hogy valóban sarokpont-e.

Legyen I képmátrix.Tekintsünk egy E(u,v) itenzitásváltozási függvényt [u,v] eltolással a következőképpen:

E(u,v)=x,yw(x,y)(I(x,y)I(x+u,y+v))2,

ahol w(x,y) egy ablakfüggvény I(x+u,y+v) az eltolt intenzitás, I(x,y) pedig a kép intenzitása az (x,y) pontban.

Egy f(x+u,y+v) függvényt közelíthetünk a Taylor sorfejtésével. Ebben az esetben az elsőrendű közelítést vesszük figyelembe.

I(x+u,y+v)I(x,y)uIx+vIy

Ebből következik, hogy

(I(x,y)I(x+u,y+v))2(I(x,y)I(x,y)+uIx+vIy)2=u2Ix2+2uvIxIy+v2Iy2=[uv][Ix2IxIyIxIyIy2][uv]=[uv]([Ix2IxIyIxIyIy2])[uv]

Az E(u,v) intezitásváltozási függvény tehát közelíthető az alábbi módon:

E(u,v)[uv]M[uv],

ahol M a kép deriváltjaiból számított 2×2-es mátrix:

M=x,yw(x,y)[Ix2IxIyIxIyIy2]

A w(x,y) egy súlyfüggvény (az egyszerűség kedvéért lehet konstans 1).

A sarkossági mérőszám

A fenti egyenletekből megkaphatjuk az R sarkossági mérőszámot:

R=det(M)k(trace(M))2

ahol

  • det(M) az M mátrix determinánsa, det(M)=λ1λ2
  • trace(M) az M mátrix nyoma, trace(M)=λ1+λ2
  • λ1 és λ2 pedig az M mátrix sajátértékei,
  • k egy empirikus úton meghatározott konstans érték, (k= 0.004-00.6)

Ha |R| értéke kicsi, akkor ott lapos régió van, ha R értéke nagy, akkor ott sarokpont található. Ha R értéke negatív, akkor ott él van.

A Harris sarokdetektor algoritmusa

  1. Számítsuk ki az I kép x és y irányú deriváltját. Jelölje ezeket rendre Ix és Iy.
  2. Számítsuk ki a deriváltak szorzatát minden (px,py) képpontra:
    Ixx(px,py)=Ix(px,py)Ix(px,py)Ixy(px,py)=Ix(px,py)Iy(px,py)Iyy(px,py)=Iy(px,py)Iy(px,py)
  3. Minden pixelre számoljuk ki a deriváltak összegét, Sxx-t, Sxy-t és Syy-t az adott eltolási környezeten belül.
  4. Számoljuk ki minden (x,y) pontra a H(x,y) értékét.
    H(x,y)=[Sxx(x,y)Sxy(x,y)Sxy(x,y)Sxx(x,y)]
  5. Számoljuk ki a sarkossági függvényt minden képpontra:
    R(x,y)=det(H)k(trace(H))2
  6. Küszöböljük a kapott képet valamilyen küszöbértékkel.