Sobel operaattori

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 26. elokuuta 2014 tarkistetusta versiosta . tarkastukset vaativat 14 muokkausta .

Sobel - operaattori on diskreetti differentiaalioperaattori , joka laskee kuvan kirkkausgradientin likimääräisen arvon . Tulos, kun Sobel-operaattoria käytetään kuvan jokaisessa kohdassa, on joko kirkkausgradientin vektori kyseisessä kohdassa tai sen normi . Käytetään erityisesti kuvankäsittelyn alalla, sitä käytetään usein reunantunnistusalgoritmeissa .

Kuvaus

Sobel-operaattori perustuu kuvan konvoluutioon pienillä erotettavissa olevilla kokonaislukusuodattimilla pysty- ja vaakasuunnassa, joten se on suhteellisen helppo laskea. Toisaalta hänen käyttämänsä gradientin approksimaatio on varsin karkea, varsinkin korkeataajuisille kuvan värähtelyille.

Operaattori laskee kuvan kirkkausgradientin kussakin pisteessä. Näin saadaan selville kirkkauden suurimman lisäyksen suunta ja sen muutoksen suuruus tähän suuntaan. Tulos osoittaa, kuinka "terävästi" tai "tasaisesti" kuvan kirkkaus muuttuu kussakin pisteessä, ja siten todennäköisyys löytää piste reunasta sekä reunan suunta. Käytännössä kirkkauden muutoksen suuruuden (kasvojen kuulumisen todennäköisyys) laskeminen on luotettavampaa ja helpompi tulkita kuin suunnan laskeminen.

Matemaattisesti kahden muuttujan funktion gradientti jokaiselle kuvan pisteelle (joka on kirkkausfunktio) on kaksiulotteinen vektori , jonka komponentit ovat kuvan kirkkauden vaaka- ja pystysuorat derivaatat . Gradienttivektori on kuvan jokaisessa kohdassa suunnattu suurimman kirkkauden lisäyksen suuntaan ja sen pituus vastaa kirkkauden muutoksen määrää. Tämä tarkoittaa, että Sobel-operaattorin tulos vakiokirkkauden alueella sijaitsevassa pisteessä on nollavektori ja eri kirkkaiden alueiden rajalla sijaitsevassa pisteessä rajan ylittävä vektori kirkkauden lisäämisen suuntaan. .

Formalisointi

Tarkkaan ottaen, operaattori käyttää ytimiä , joilla alkuperäinen kuva konvoloidaan laskeakseen vaaka- ja pystyjohdannaisten likimääräiset arvot . Antaa olla alkuperäinen kuva, ja ja  olla kaksi kuvaa, joista jokainen piste sisältää likimääräisiä johdannaisia ​​suhteessa ja suhteessa . Ne lasketaan seuraavasti:

jossa tarkoittaa kaksiulotteista konvoluutiooperaatiota.

Tässä koordinaatti kasvaa "oikealle" ja  - "alas". Kussakin kuvan kohdassa gradientin arvon likimääräinen arvo voidaan laskea käyttämällä saatuja derivaattojen likimääräisiä arvoja:

(merkitsee elementti kerrallaan).

Näiden tietojen avulla voimme myös laskea gradientin suunnan:

,

jossa esimerkiksi kulma Θ on nolla pystyreunalle, jonka tumma puoli on vasemmalla.

Tarkennus

Koska kirkkausfunktio tunnetaan vain erillisissä pisteissä, emme voi määrittää derivaattoja ennen kuin asetamme kirkkauden differentioituvaksi funktioksi , joka kulkee näiden pisteiden läpi. Tällä lisäesiteellä differentioituvan kirkkausfunktion derivaatta voidaan laskea funktiosta, josta mittaukset on otettu - kuvapisteistä. Osoittautuu, että derivaatat missä tahansa pisteessä ovat kirkkauden funktioita kuvan kaikista pisteistä. Niiden derivaattojen likiarvot voidaan kuitenkin määrittää suuremmalla tai pienemmällä tarkkuudella.

Sobel-operaattori on kuvagradientin epätarkempi likiarvo, mutta se on riittävän laadukas käytännön sovelluksiin monissa ongelmissa. Tarkemmin sanottuna operaattori käyttää vain kunkin pikselin läheisyydessä olevia intensiteettiarvoja saadakseen likiarvon vastaavasta kuvagradientista, ja käyttää vain kokonaislukuluminanssipainoarvoja gradientin arvioimiseen.

Laajennus toiseen määrään ulottuvuuksia

Sobel-operaattori koostuu kahdesta erillisestä operaatiosta [1] :

Sobel-suodatinkaavat kuvajohdannaisille eri tiloissa :

Tässä on esimerkki kolmiulotteisesta Sobel-ytimestä akselille :

.

Tekniset tiedot

Kuten määritelmästä seuraa, Sobel-operaattori voidaan toteuttaa yksinkertaisilla teknisillä ja ohjelmistotyökaluilla: gradienttivektorin approksimoimiseksi tarvitaan vain kahdeksan pikseliä kuvapisteen ympärillä ja kokonaislukuaritmetiikkaa. Lisäksi molemmat yllä kuvatut erilliset suodattimet voidaan erottaa:

ja kaksi johdannaista ja , voidaan nyt laskea muodossa

Näiden laskelmien erottaminen voi johtaa aritmeettisten operaatioiden vähenemiseen jokaisen pikselin osalta.

Konvoluution soveltaminen pikseliryhmään voidaan esittää pseudokoodilla :

N(x, y) = Summa { K(i, j).P(xi, yj)}, i, j välillä −1 arvoon 1.

N(x, y) on tulos konvoluutiomatriisin K soveltamisesta P:hen.

Sobel-operaattorin ohjelmistototeutus voi hyödyntää tehokkaasti nykyaikaisten prosessorien käskysarjan SIMD -laajennuksia (ns. koodivektorointi), kun taas operaattorin laskentanopeuden voitto voi olla jopa viisinkertainen verrattuna korkeaan prosessoriin. tason täytäntöönpano [2] . Manuaalinen koodaus kokoonpanokielellä antaa sinun ylittää kääntäjät, kuten Microsoft Visual C++ ja Intel C++ Compiler nopeudella .

Sobel-operaattorin laskenta yksinkertaisesti rinnastetaan mielivaltaiseen määrään säikeitä (rajassa tuloksena olevan kuvan jokainen piste voidaan laskea naapureistaan ​​riippumatta). Esimerkiksi jos prosessoreita ( ytimiä ) on kaksi, kuvan ylempi puolikehys voidaan käsitellä yhdellä ja alempi toinen.

Esimerkkejä

Sobel-operaattorin soveltamisen tulos on kaksiulotteinen gradienttikartta jokaiselle pisteelle. Se voidaan käsitellä ja näyttää kuvana, jossa suuren gradienttiarvon omaavat alueet (useimmiten reunat) näkyvät valkoisina viivoina. Alla olevat kuvat havainnollistavat tätä esimerkkinä yksinkertaisella kuvalla:

Scharr-operaattori

Sobel-operaattori tasoittaa puhtaasti keskidifferentiaalioperaattorin aiheuttamia vääriä vaikutuksia kuvaan , mutta sillä ei ole täyttä kiertosymmetriaa . Scharr tutki tämän ominaisuuden parantamista ja tuli siihen tulokseen, että seuraava ydin antaa parhaat tulokset [3] [4] :

Katso myös

Muistiinpanot

  1. K. Engel (2006), Reaaliaikainen volyymigrafiikka, , s. 112-114 
  2. Vatutin E.I., Miroshnichenko S.Yu., Titov V.S. Sobel - operaattorin ohjelmistooptimointi x86 - perheen prosessorien SIMD - laajennuksilla . Tietoliikenne. 2006. Nro 6. S. 12-16. (2006). Haettu 9. maaliskuuta 2010. Arkistoitu alkuperäisestä 13. huhtikuuta 2012.
  3. Scharr, Hanno, 2000, väitöskirja (Saksassa), Optimal Operators in Digital Image Processing .
  4. B. Jähne, H. Scharr ja S. Körkel. Suodattimen suunnittelun periaatteet. Käsikirjassa Computer Vision and Applications. Academic Press, 1999.

Kirjallisuus

Linkit