Sobel operátor

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2014. augusztus 26-án áttekintett verziótól ; az ellenőrzések 14 szerkesztést igényelnek .

A Sobel operátor egy diszkrét differenciáloperátor , amely kiszámítja a kép fényerő- gradiensének hozzávetőleges értékét. Ha a Sobel-operátort a kép minden pontjára alkalmazzuk, akkor vagy a fényerő gradiens vektora az adott pontban, vagy annak normája . A képfeldolgozás területén használják, különösen gyakran élérzékelési algoritmusokban .

Leírás

A Sobel operátor egy kép konvolúcióján alapul, kisméretű elválasztható egész szűrőkkel függőleges és vízszintes irányban, így viszonylag könnyen kiszámítható. Viszont az általa használt gradiens közelítés elég durva, főleg a nagyfrekvenciás képrezgéseknél.

Az operátor minden ponton kiszámítja a kép fényerejét . Így találjuk meg a legnagyobb fényerőnövekedés irányát és az ezirányú változásának nagyságát. Az eredmény megmutatja, hogy az egyes pontokban mennyire "élesen" vagy "simán" változik a kép fényereje, és ebből adódóan mekkora a valószínűsége annak, hogy egy pontot találunk a peremen, valamint a szél tájolása. A gyakorlatban a fényesség változásának (az archoz tartozás valószínűségének) nagyságának kiszámítása megbízhatóbb és könnyebben értelmezhető, mint az irány kiszámítása.

Matematikailag a kép minden pontjához tartozó két változó függvényének gradiense (ami a fényességfüggvény) egy kétdimenziós vektor , amelynek összetevői a kép fényerejének vízszintes és függőleges deriváltjai . A kép minden pontjában a gradiensvektor a legnagyobb fényerőnövekedés irányába orientálódik, hossza pedig megfelel a fényerő változásának mértékének. Ez azt jelenti, hogy a Sobel operátor eredménye egy állandó fényes tartományban lévő pontban egy nulla vektor lesz , és egy olyan pontban, amely a különböző fényességű régiók határán van, egy vektor, amely átlépi a határt a növekvő fényerő irányában. .

Formalizálás

Szigorúan véve az operátor olyan kerneleket használ , amelyekkel az eredeti képet konvolválja a vízszintes és függőleges származékok hozzávetőleges értékeinek kiszámításához . Legyen az eredeti kép, és  legyen két olyan kép, amelyen minden pont hozzávetőleges származékokat tartalmaz a -hoz és -hez képest . Kiszámításuk a következőképpen történik:

ahol egy kétdimenziós konvolúciós műveletet jelöl.

A koordináta itt "jobbra" és  - "lefelé" nő. A kép minden pontján a gradiens érték hozzávetőleges értéke kiszámítható a derivált hozzávetőleges értékeinek felhasználásával:

(jelentése elemről elemre).

Ezen információk felhasználásával a gradiens irányát is kiszámíthatjuk:

,

ahol például a Θ szög nulla egy olyan függőleges szegélynél, amelynek bal oldalán van egy sötét oldal.

Finomítás

Mivel a fényességfüggvényt csak diszkrét pontokban ismerjük, addig nem tudjuk meghatározni a deriváltokat, amíg a fényerőt nem állítjuk be differenciálható függvénynek , amely ezeken a pontokon halad át. Ezzel a kiegészítő feltevéssel a differenciálható fényerő függvény deriváltja számítható abból a függvényből, amelyből a méréseket végezzük - a képpontokból. Kiderült, hogy a származékok bármely pontban a fényerő függvényei a kép minden pontjáról. A deriváltjaik közelítései azonban kisebb-nagyobb pontossággal meghatározhatók.

A Sobel operátor a képgradiens pontatlanabb közelítése, de sok probléma gyakorlati alkalmazásához megfelelő minőségű. Pontosabban, az operátor csak az egyes pixelek közelében lévő intenzitásértékeket használja a megfelelő képgradiens közelítéséhez, és csak egész számokat használ a fénysűrűség súlyértékei alapján a gradiens becsléséhez.

Bővítés több dimenzióra

A Sobel operátor két külön műveletből áll [1] :

Sobel-szűrő képletek a kép származékaihoz különböző terekben a következőhöz:

Íme egy példa egy háromdimenziós Sobel kernelre a tengelyhez :

.

Technikai részletek

A definícióból következően a Sobel operátor egyszerű technikai és szoftveres eszközökkel megvalósítható: a gradiensvektor közelítéséhez mindössze nyolc pixelre van szükség a képpont körül és egész szám aritmetikára. Ezenkívül a fent leírt mindkét diszkrét szűrő szétválasztható:

és két derivált, és , most így számítható ki

E számítások szétválasztása az egyes pixelekkel végzett aritmetikai műveletek csökkenéséhez vezethet.

A konvolúció alkalmazása pixelcsoportra pszeudokóddal ábrázolható :

N(x, y) = Összeg { K(i, j).P(xi, yj)}, i, j esetén –1-től 1-ig.

N(x, y) a K konvolúciós mátrix P-re való alkalmazásának eredménye.

A Sobel operátor szoftveres implementációja hatékonyan tudja használni a modern processzorok utasításkészletének SIMD kiterjesztését (az ún. kódvektorizálást), miközben az operátor számítási sebességének növekedése akár ötszöröse is lehet egy nagy- szintű megvalósítás [2] . Az assembly nyelvű manuális kódolás lehetővé teszi, hogy gyorsabban felülmúlja az olyan fordítókat, mint a Microsoft Visual C++ és az Intel C++ Compiler .

A Sobel operátor számítását egyszerűen tetszőleges számú szálra párhuzamosítják (a határértékben a kapott kép minden pontja a szomszédaitól függetlenül számítható). Például, ha két processzor ( mag ) van, akkor a kép felső félkockáját az egyik, az alsót a másik tudja feldolgozni.

Példák

A Sobel operátor alkalmazásának eredménye egy kétdimenziós gradiens térkép minden pontra. Feldolgozható és képként is megjeleníthető, melyen a nagy gradiens értékű területek (többnyire élek) fehér vonalként lesznek láthatóak. Az alábbi képek ezt szemléltetik egy egyszerű képpel példaként:

A Scharr operátor

A Sobel operátor kisimítja a képen a tisztán központi differenciálművelő által okozott hamis hatásokat , de nem rendelkezik teljes forgásszimmetriával . Scharr megvizsgálta ennek a tulajdonságnak a javítását, és arra a következtetésre jutott, hogy a következő kernel adja a legjobb eredményeket [3] [4] :

Lásd még

Jegyzetek

  1. K. Engel (2006), Valós idejű kötetgrafika, , p. 112-114 
  2. Vatutin E.I., Miroshnichenko S.Yu., Titov V.S. A Sobel operátor szoftveroptimalizálása az x86 család processzorainak SIMD bővítményeivel . Távközlés. 2006. No. 6. S. 12-16. (2006). Letöltve: 2010. március 9. Az eredetiből archiválva : 2012. április 13..
  3. Scharr, Hanno, 2000, disszertáció (Németországban), Optimális operátorok a digitális képfeldolgozásban .
  4. B. Jähne, H. Scharr és S. Körkel. A szűrőtervezés alapelvei. In Handbook of Computer Vision and Applications. Akadémiai Kiadó, 1999.

Irodalom

Linkek