DZDDPZ6 Filtrace obrazu Doc. Dr. Ing. Jiří Horák - Ing. Tomáš Peňáz, Ph.D. Institut geoinformatiky VŠB-TU Ostrava
Prostorová zvýraznění - filtrace Ohnisková operace, použití pohyblivého okénka (kernel), vypočítá se nová hodnota ve středu okna a zapíše se do výsledného obrazu Celý obraz se systematicky (např. po řádcích) prochází a kolem sledovaného bodu se zkoumá malé okolí
spatial frequency Prostorová frekvence charakteristika digitálního obrazu popisuje rychlost změny hodnot v poli v závislosti na vzdálenosti (je měřítkově závislá) nulová nízká vysoká prostorová frekvence prostorová frekvence prostorová frekvence zero spatial frequency low spatial frequency high spatial frequency
Konvoluce konvoluce - pohyb okna po jednom pixelu v celé ploše obrazové matice Tvar filtračního okna (konvoluční maska, jádro) - čtvercový, případně kruhový (čtvercový s prázdnými rohy), nepravidelný čtvercový velikost 3x3, 5x5, atd. (zpravidla lichý počet) Okrajové pixely obrazu - nejsou ve výstupním obraze (prázdná hodnota nebo zmenšení rastru) nebo se replikují hodnoty
Filtrace doplnění Filtrace obvykle nepoužívá specifické znalosti o obraze. Obtížné - známé okolí právě zpracovávaného bodu je malé. Pokud je apriorní informace o obrazu k dispozici (známé statistické parametry šumu), lze toho v algoritmu využít. Při filtraci nezískáme z hlediska Shannonovy teorie žádnou novou informaci. Můžeme jen některou informaci potlačit nebo zvýraznit. Potřebujeme-li zvýšit celkový informační obsah obrazu, potom musíme zlepšit postup jeho pořízení.
Příprava uživatelských filtrů ERDAS
Příprava uživatelských filtrů TNTmips
Lokální filtrace Lze rozlišit lineární a nelineární metody. lineární operace počítají hodnotu ve výstupním obraze jako lineární kombinaci hodnot vstupního obrazu v malém okolí O reprezentativního pixelu. Uplatnění konvolučního vzorce. Nelineární metody - neuplatní konvoluční vzorec. Medián, rotující okno apod.
Konvoluční vzorec (Convolution Formula) V f ijdij q q i 1 j 1 F f ij = koeficient konvolučního filtru na pozici i,j (ve filtru) d ij = DN obrazového elementu, který odpovídá f ij q = rozměr filtru (je-li q = 3, má filtr 3x3 hodnot) F = součet koeficientů filtru (ošetření dělení nulou: F=0 => F = 1) V = hodnota výstupního pixelu (v případě, že V<0, => V = nula)
Aplikace lineárního konvolučního filtru 2 6 6 6-1 -1-1 2 6 6 6-1 16-1 2 2 6 6-1 -1-1 2 2 2 6 2 2 2 2 Convolution Kernel Input Data Convolution Filtering integer((-1x) + (-1x6) + (-1x6) + (-1x2) + (16x) + (-1x6) + (-1x2) + (-1x2) + (-1x) : (-1 + -1 + -1 + -1 + 16 + (-1 + -1 + -1 + -1 )) = = int((12-40) : (16-)) = int(/) = int(11) = 11
Zrychlení výpočtů - rozklad Separabilita filtrů - konvoluční masku v p- rozměrném okolí (obvykle p=2 nebo 3) lze rozložit na součin jednorozměrných masek, což vede ke snížení počtu násobení a součtů
Zrychlení výpočtů opak.užití Rekurentní (rekurzivní) filtry při běžné konvoluci se vypočtené hodnoty při posunu konvoluční masky ukládají do výstupního obrazu a pro vstup se používají původní nezměněné hodnoty. Při rekurentním filtru - jako vstupní hodnoty pro konvoluci jsou použity hodnoty vypočtené v předchozí poloze masky (jen její části, která je již naplněna novými hodnotami).
Příklad nejjednoduššího rekurentního filtru Aritmetický průměr jednorozměrný s (2n+1) body (n od středu na každou stranu) Výpočet: Porovnejte f(x) a f(x-1), většina prvků je stejných, pouze 1 přebývá a 1 chybí takže k f(x-1) se pouze chybějící přidá a přebývající odečte Upravený zápis výpočtu (využití výpočtu v předchozím bodě):
Lokální filtrace Zvýraznění obrazu: Nízkofrekvenční filtry, f. s nízkou propustností průměrují a vyhlazují, zdůrazňují nízké frekvence, potlačování šumu Vysokofrekvenční filtry, f. s vysokou propustností zostřují obraz, zdůrazňují vysoké frekvence. Hranové operátory. Zvýrazňování kontrastu mezi objekty a pozadím. Využití mimo zvýraznění obrazu: postklasifikační filtrace - úprava výsledků klasifikace. Nízkofrekvenční f.
Vyhlazování obrazu Průměrování více obrazů - nejsnadnější vyhlazování náhodného šumu, pokud máme několik obrazů téže scény, které se liší právě šumem. Průměrování hodnoty pixelu o stejných souřadnicích přes více obrázků. NEJDE o filtraci. Nízkofrekvenční filtrace pouze jediný obraz. Spoléháme na nadbytečnost údajů v obraze. Sousední pixely mají převážně tutéž nebo blízkou hodnotu jasu. Hodnotu obrazových elementů zkreslených šumem potom můžeme opravit na základě analýzy hodnot jasu v jeho vybraném okolí. Hodnota jasu reprezentativního pixelu je nahrazena hodnotou typického reprezentanta mezi hodnotami v okolí nebo kombinací několika hodnot.
Nízkofrekvenční filtry
Nízkofrekvenční filtrace Low-Frequency Filtering potlačení vysokofrekvenční informace (redukce DN centrálního pixelu vzhledem k okolí) redukce rozsahu výstupních hodnot odstínů šedi => nutnost zvýraznění kontrastu závislost shlazování na velikosti (rozměru) filtru - větší filtry více shlazují
Lineární metody vyhlazování Lineární metody vyhlazování počítávají novou hodnotu aktuálního pixelu jako lineární kombinaci hodnot ze zvoleného okolí. Při zpracování skutečných obrazů je předpoklad linearity narušen díky tomu, že hodnota obrazové funkce (jas, intenzita) je nezáporná a omezená. Podobně jsou obrazy ohraničeny v prostoru, a tak předpoklad prostorové invariantnosti platí jen pro omezené posuny konvolučních masek. Budeme-li uvažovat Fourierovu transformaci, potom je konvoluce ekvivalentně vyjádřena jako součin Fourierova obrazu signálu a Fourierova obrazu konvolučního filtru.
Nízkofrekvenční filtry Průměrový filtr v okně spočítáme aritmetický průměr, zaokrouhlíme na celé číslo a zapíšeme do centrální buňky (v druhé vrstvě) 1 1 1 1 ), ( 9 1 ), ( k l l j k i f j i p Dobrovolný
Průměrový filtr shlazovací filtr nahrazuje původní DN pixelu průměrnou hodnotou nad určitým okolím odstraní chyby (degradace) v obraze vhodný pro potlačování šumu v rozsáhlých homogenních plochách nevhodný pro potlačování šumu v urč. typech nehomogenních ploch (viz obr.), likviduje hrany (liniové elementy) filtraci lze opakovat
Průměrový filtr (vhodné použití) ideální obraz degradovaný obraz opravený obraz 6 10 6 9 9 7 10 7 znehodnocení obrazu rekonstrukce obrazu
Průměrový filtr (nevhodné použití) ideální obraz degradovaný obraz opravený obraz 2 2 2 2 2 2 2 2 2 2 1 2 10 7 2 2 9 4 1 9 1 2 6 3 1 6 4 2 6 4 2 6 4 2 6 3 2 6 3 2 znehodnocení obrazu rekonstrukce obrazu průměrováním rozostřuje hrany
obraz před filtrací Průměrový filtr
Průměrový filtr 3x3 obraz po filtraci
Hlaváč Obyčejné průměrování
p( i, j) 1 1 1 k1l 1 f ( i k, j l) p( i, j)
Dobrovolný
Nelineární vyhlazování nelineární filtrační metody - částečně eliminují potíže s rozmazáváním hran výběr homogenní oblasti - v analyzovaném okolí se snaží najít tu jeho část (oblast o zhruba konstantním DN), do které reprezentativní bod patří Jen pixely této oblasti se využijí pro hledání hodnoty (např. aritmetickým průměrem nebo výběrem DN hodnoty jednoho pixelu), která bude reprezentovat celé okolí ve výstupním obrázku. Je přirozené hledat reprezentanta jen uvnitř objektu, což předpokládá nelineární operaci - výběr.
Nelineární vyhlazování - metody Průměrový filtr s rotujícím oknem Nejbližší soused Obyčejné průměrování s omezením změn hodnot Filtrace mediánem Modální filtrace Sieve filtr Průměrování pro liniové prvky s rotujícím oknem Průměrování s inverzním gradientem Gaussův filtr
Metoda rotující masky Kolem reprezentativního bodu rotuje malá maska, např 3x3. Možných poloh masky je (+ středová = 9). V každé masce se spočte rozptyl hodnot. Za homogenní okolí reprezentativního bodu se vybere maska s nejmenším rozptylem. Nová hodnota reprezentativního bodu může být dána aritmetickým průměrem hodnot ve vybrané masce = průměrový filtr s rotujícím oknem.
Metoda rotující masky lze použít iterativně proces poměrně rychle konverguje do stabilního stavu, kdy se již obraz dále nemění. Velikost a tvar masek ovlivňuje rychlost konvergence. Čím menší jsou masky, tím menší jsou změny a tím více iterací je potřeba.
Průměrový filtr s rotujícím oknem Využívá metodu rotující masky vyhlazovací filtr výhoda - předpovídá přítomnost hran v obraze a zachovává je Metoda nerozmazává hrany obrazu, má dokonce mírně ostřící charakter. nevýhoda - odstraňuje liniové prvky
Průměrový filtr s rotujícím oknem nevhodné použití likviduje liniové prvky obraz s liniovým prvkem filtrovaný obraz 5 1 1 1 1 1 5 1 1 1 1 1 5 1 1 1 1 1 5 1 1 1 1 1 5????????????????????????? průměrová filtrace rotujícím oknem
Nejbližší soused Pro průměrování se použijí jen ty pixely, jejichž rozdíl v DN od zpracovávaného pixelu je menší než stanovená hranice Průměr se tedy vypočte jen z blízkých hodnot, nízký rozptyl
Obyčejné průměrování s omezením změn hodnot využívá obyčejného průměrování, ale brání rozmazání hran povolením pouze určitého intervalu rozdílu mezi DN původního bodu a výsledkem průměrování. Pokud je rozdíl menší než předem zvolený práh, použije se výsledek průměrování; jinak se původní hodnota nezmění. Metoda se používá pro opravu velkoplošných chyb bez vlivu na zbytek obrazu nebo pro jednoduché vyhlazení bez poškození hran.
Fitrace mediánem nová hodnota stanovena z definovaného okolí jako medián medián prostřední člen uspořádané posloupnosti čísel aby se snadno určil prostřední prvek, používají se posloupnosti s lichým počtem prvků (3x3, 5x5) potlačuje lokální šum a redukuje rozmazání hran filtraci mediánem lze použít iterativně Hlavní nevýhodou filtrace mediánem v obdélníkovém okolí je to, že porušuje tenké čáry a ostré rohy v obraze. Tento nedostatek se dá obejít, když se použije jiný tvar okolí. 2 6 7 2,3,5,5,6,7,9,10,10 3 5 9 MEDIÁN = 6 5 10 10
Hlaváč Filtrace mediánem
Módová filtrace
Sieve filtrace Zadává se maxim. velikost polygonu (počet pixelů), který se má eliminovat
Průměrování pro liniové prvky Používá se při přítomnosti linií a hran v obraze, které jsou důležité Prosté průměrování ničí lineární prvky Používají se: varianty rotující okna výpočty gradientů výpočty rozptylů apod.
Průměrování pro liniové prvky - filtr s rotujícím oknem (2. varianta) Aplikují se 4 masky (rotující okno) - vynásobí se s obrazem Ze 4 součinů se vybere minimální Taková váhová matice (okno) se následně použije pro průměrování
Průměrování pro liniové prvky - průměrování s inverzním gradientem Gradient určí směr možné linie v obrazu Podle tohoto směru se vybere vhodný postup průměrování Např. využití Robertsova gradientu
Průměrování s inverzním gradientem Robertsův gradient pravděpodobnost výskytu hrany g( i, j) max{ f ( i, j) f ( i 1, j 1), f ( i 1, j) f ( i, j 1) } f(i,j) = hodnota šedi g(i,j) = Robertsův gradient
Průměrování s inverzním gradientem mírné rozostření hran přerozdělení vah koeficientů - eliminace vlivu bodů na hranách při výpočtu hodnoty váha příspěvku pro bod: výsledná filtrovaná hodnota pro obrazový bod: ), ( ), ( max j i g grad j i 1 1 1 1 1 1 1 1 ), ( ), ( )., ( ), ( k l k l F l j k i l j k i l j k i f j i f
Časté využití Gaussův filtr Filtrace s váhovými koeficienty odvozenými z Gaussovy funkce V Jednoduchá varianta pro 3x3 1 1 1 p( i, j) V ( i, j)* p( i, j) 9 k1l 1 Zpravidla nedostatečná aproximace Gaussovy křivky, pro dostatečně přesnou aproximaci se doporučuje jádro o velikosti šestinásobku parametru σ (má význam směrodatné odchylky odpovídající normální distribuce)
Gaussův filtr Pro malá σ se používá realizace pomocí konvoluce. Konvoluční jádro je separabilní a lze rozložit na 2 konvoluce s jednorozměrnými jádry. Redukce nárůstu časové náročnosti s rozměrem jádra z kvadratické na lineární závislost. Nejdříve se počítá konvoluce ve směru X a pak konvoluce ve směru Y. Urychlení výpočtu pro velká σ: pomocí Fourierovy transformace (konvoluci lze převést na násobení ve Fourierově doméně) Pomocí rekurentních filtrů - vhodnější
Vysokofrekvenční filtry
Vysokofrekvenční filtry High-Frequency Filters, High-Pass Filters potlačení nízkofrekvenční informace (zvětšení rozdílu hodnoty centrálního pixelu vůči okolí) zvětšení rozsahu výstupních hodnot odstínů šedi zvýšení prostorové frekvence obrazového záznamu
Vysokofrekvenční filtrace - užití detekce a zvýraznění hran (Edge Enhancer) a linií - příprava pro vektorizaci ostření (sharpening) obrazu zdůraznění objektů a jevů v obraze menších než polovina filtrovacího okna potlačení objektů a jevů v obraze větších než polovina filtrovacího okna
Hrana (Edge) vs. linie (Line) diskontinuity obrazové funkce (v šedotónovém obraze) výrazná příp. skoková změna hodnot obrazového záznamu Hrana - hranice mezi dvěma různými povrchy, teoreticky nulová šířka Linie úzká oboustranná hrana Obecně - za hranu můžeme považovat ta místa obrazu, kde má obrazová funkce g průběh podle následujícího obrázku
Typy hran DN Value DN Value slope DN change 90 0 DN change Slope midpoint Ramp edge x or y x or y Step edge (stupňovitá) DN Value width DN change Line x or y DN Value Width near 0 DN Value Width near 0 DN change DN change Roof edge (střechovitá) x or y světlá linie na tmavém pozadí x or y Ditch edge (příkopová) tmavá linie na světlém pozadí
Proč se zajímat o hrany? významné složky obrazu je to hledaná informace: detekce hran a linií (Edge and Line Detection) zvýraznění hran a linií (Edge and Line Enhancement)
Problémy hran Problém přesného určení polohy: 1. příliš široká oblast, ve které dochází ke změně intenzity. Hrana - celá tato oblast? Nebo střed této oblasti? 2. všudypřítomný šum. Která ze změn intenzity je hrana a která je dána šumem? Šumu se zbavíme vhodným předzpracováním, buď pomocí nějakého lineárního nízkofrekvenčního filtru (např. Gaussova filtru), nebo pomocí nelineárního filtru (např. medián). Hrana = oblast na hranicích dvou sousedních textur. Těžko detekovatelné pomocí klasických metod založených na první či druhé derivaci, které naleznou hrany uvnitř textur a ne hranici mezi dvěma různými texturami. Nutno použít jiné metody, např. srovnávání se vzorem nebo některou ze statistických metod Problém u multispektrálního obrazu hrana v každé části spektra nebo jen v některé?
Hrany v multispektrálním a barevném obrazu bod reprezentován vektorem hodnot multispektrální obraz - nespojitost jasu (váhový součet jasů z jednotlivých pásem) barevný obraz - nespojitost barev (vyjádření na základě určitého poměru hodnot z pásem)
Ztenčování hran angl. Parallel Thinning Používá se při extrakci hran Linie nemá šířku 1 pixelu Známá orientace hran - zkoumání kolmo na směr, nejvyšší hodnota se považuje za osu hrany, ostatní se nastaví na 0. Neznámá orientace okno 3x3, zkoumá se, zda není středový pixel zbytečný, pak se nastaví 0
Přehled typů vysokofrekvenčních filtrů Ostřící operátory (Edge Enhancers) Hranové detektory (Edge Detectors) tzv. Zero-Sum Kernels Sobelův filtr filtr Prewitové Laplaceův operátor Cannyho detektor. diferenční filtry (High Pass Differential Filters) Edge Sharpening Filter
Dobrovolný
Zvýraznění hran (prohloubení minima) 204 201 19 200 100 200 197 209 210 + 1 1 1 1 16 1 1 1 1 204 201 19 200 9 200 197 209 210 vstupní obrazová filtr výstupní obrazová data (ostřící operátor) data
Zvýraznění hran (zvýšení maxima) 64 61 5 60 125 60 57 69 70 + 1 1 1 1 16 1 1 1 1 64 61 5 60 17 60 57 69 70 vstupní obrazová filtr výstupní obrazová data (ostřící operátor) data
obraz před filtrací High Pass filter
TNTmips High Pass filtr (3 x 3) 0,5 0,5 0,5 0,5 5,5 0,5 0,5 0,5 0,5 3 x 3
High Pass filter (3x3) obraz po filtraci
High Pass filtr (5 x 5) - příklad TNTmips 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 15,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 5 x 5
High Pass filter (5x5) obraz po filtraci
Hrany v obraze Hrana - náhlá změna hodnota obrazové funkce. Matematickým nástrojem pro studium změn funkce dvou proměnných jsou parciální derivace. Změnu funkce udává její gradient. Rozlišujeme směr a velikost gradientu. Gradientní operátory velikosti: Operátory aproximující derivace pomocí diferencí. Některé operátory jsou invariantní vůči rotaci, např. Laplaceův operátor a mohou být počítány konvolucí s jedinou maskou. Jiné aproximující operátory využívají několik masek odpovídajících příslušné orientaci. Z nich se vybere ta, která nejlépe lokálně aproximuje obrazovou funkci. Výběrem jedné z masek je určen i směr gradientu (orientace). Operátory založené na hledání hrany v místech, kde druhá derivace obrazové funkce prochází nulou (angl. zero-crossing). Příkladem je Marrův- Hildrethové operátor a Cannyho hranový detektor. Operátory snažící se lokálně aproximovat obrazovou funkci poměrně jednoduchým parametrickým modelem. Např. polynom dvou proměnných.
Metody založené na první derivaci V místech, kde se nachází hrana, dochází k největší změně intenzity, zatímco v homogenních oblastech je změna a tedy i první derivace rovna nule. Metodám první derivace se též říká gradientní metody. Provedeme-li parciální derivace obrazu podle x a podle y, získáme vektor udávající velikost a směr gradientu. Gradient je vektor kolmý na vektor udávající směr hrany. Velikost hrany a úhel, který hrana svírá s osou x:
Metody založené na první derivaci derivace se pro diskrétní obrazovou funkci počítá těžko aproximovat vhodným výpočtem diferenciálu Nejčastěji se pro výpočet diferenciálu používá Centrální diferenciální rovnice, kde funkce O udává řád chyby výpočtu
Hranové operátory Jednodušší než derivace je použití hranových operátorů Hranový operátor je konvoluční jádro. Provedeme-li konvoluci obrazu s tímto jádrem, tak jako výsledek obdržíme hledanou složku gradientu. Suma vah =0 Detekce hrany ve směru 0 (Prewittové, Sobelův), u dalších analogicky
Hranové operátory (Zero-Sum Kernels) váha středového členu = součet vah sousedních členů výsledek filtrace: DN = 0 - pro homogenní plochy (žádné hrany) DN nízké - pro plochy s nízkou prostorovou frekvencí DN vysoké, extrémní - pro plochy s vysokou prostorovou frekvencí
Hranové operátory
Hranové operátory Gradient skalárního pole je vektorové pole ukazující směr největšího nárůstu hodnot skalárního pole jehož velikost odpovídá největší změně hodnot skalárního pole
Hranové operátory gradient - míra přítomnosti hrany v obrazovém bodu (i,j) 2 ), ( 2 ), ( ), ( ) ( ) ( j i y j i x j i f f grad ) 1, ( ), ( ), ( j i j i j i x f f f 1), ( ), ( ), ( j i j i j i y f f f ).. ( ), ( ), ( 1 j i x j i y f f tg φ = směr procházející hrany i, j i-1, j i, j-1 Δy Δx
Robertsův hranový detektor hran angl. Roberts Cross Edge Detector výsledky ovlivněny šumem malé okolí 1 0 0 1 0 1 pro směr X 1 0 pro směr Y Robertsův gradient
Zjednodušený Robertsův hranový detektor zjednodušený Robertsův gradient ) 1, ( ) 1, ( 1) 1, ( ), ( ), ( j i j i j i j i j i f f f f grad P 1 P 2 P 3 P 4 3 2 4 1 ), ( P P P P grad j i
Robertsův hranový detektor hran ukázka
Dobrovolný
Wiki
Sobelův hranový detektor hran ukázka funkce
Hranové operátory jedná se v zásadě o variace na Centrální diferenciální rovnici. Lépe vidět ze separace jader pro Sobelův a Prewittův operátor. Sobelův operátor = výsledek konvoluce mezi Centrální diferenciální rovnicí (diference horizontálně) a jednoduchou aproximací Gaussova nízkofrekvenčního filtru (vertikálně vyhlazení). Prewittové operátor - místo Gaussova filtru použito průměrovací jádro. Tyto operátory používají v jednom směru výpočet diferenciálu a ve směru kolmém používají filtry na potlačení vlivu šumu. Výsledek je lepší, než kdyby se napřed celý obraz rozmazal v obou směrech a teprve na tomto rozmazaném obraze se prováděl výpočet gradientu. Separability se využívá pro větší efektivitu výpočtu, neboť výpočet konvoluce se dvěma 1D jádry je časově méně náročný než s jedním 2D jádrem, což platí pro všechna jádra větší než 2x2 gradientu.
Algoritmus vymezení hran 1. pro každý bod vypočítej x-ovou složku gradientu g x 2. pro každý bod vypočítej y-ovou složku gradientu g y 3. pro každý bod vypočítej velikost gradientu 4. prahuj velikost gradientu s vhodným prahem T Nedostatek - vytváří příliš tlusté hrany, takže ani nevíme, kde přesně se daná hrana nachází. Řešení - Cannyho detektor.
Metody založené na druhé derivaci nepotřebujeme nutně znát směr a velikost hran pouze informace, kde se dané hrany nacházejí metody využívající druhé derivace v místech, kde dochází k největší změně intenzity a tedy je největší první derivace, druhá derivace prochází nulou.
Určení hran založené na druhé derivaci Výpočet druhé derivace je možné provést dvojím použitím výpočtu první derivace. Pro diskrétní funkci kde funkce O udává řád chyby výpočtu Další možností je použít některý z hranových operátorů počítajících druhou derivaci. Laplaceovy operátory - používají jako konvoluční jádro vhodnou aproximaci druhé derivace Gaussova filtru. c značí normalizační člen - zajistí, aby výsledné konvoluční jádro mělo součet svých elementů roven nule
Laplaceovy operátory - LoG Laplaceovy operátory členy obecnější rodiny hranových operátorů LoG (Laplacian of Gaussian). Laplaceovy operátory - kladou důraz na středové body a součet všech jejich prvků je vždy roven nule. Mexický klobouk (Mexican hat) Filtr produkuje na výstupu nulové hodnoty v homogenních částech obrazu. Zvyšuje nebo naopak snižuje hodnoty pixelů, jejich hodnota je v originálním obraze větší (resp. menší) než hodnota okolních pixelů.
Laplaceovy operátory - LoG výhoda LoG - možnost volby velikosti jádra. Velikost jádra má vliv na jeho citlivost. Čím větší jádro, tím větší odolnost proti šumu. Také hrany, které detekujeme, závisí na velikosti jádra. Správná volba velikosti jádra je důležitá pro kvalitní výsledek. Velikost jádra by měla odpovídat velikosti detailů, které ještě chceme naším detektorem zachytit (zdůraznění objektů v obraze menších než polovina filtrovacího okna). nevýhoda LoG - neseparabilita. S velikostí jádra rychle roste i časová náročnost výpočtu konvoluce s tímto jádrem. Možnost řešení časové náročnosti pro velká jádra - využití rekursivních filtrů, které LoG aproximují. Využití: Filtr produkuje na výstupu nulové hodnoty v homogenních částech obrazu. Zvyšuje nebo naopak snižuje hodnoty pixelů, jejich hodnota je v originálním obraze větší (resp. menší) než hodnota okolních pixelů. Mapa hran (viz dále)
Rozdíl 2 Gaussových filtrací - DoG Jiná možnost aproximace 2.derivace DoG (difference of Gaussian) Na obraz se aplikuje 2x Gaussův filtr; jednou s větším parametrem sigma (sigma2) (směrodatná odchylka normální distribuce) a jednou s menším sigma (sigma1). Doporučuje se volit sigma tak, aby poměr sigma2/sigma1=1.6 (je to vhodná aproximace LoG) Výsledné obrazy se od sebe odečtou:
Vytvoření mapy hran prahováním postup jak z druhé derivace vytvořit mapu hran = najít místa, kde druhá derivace prochází nulou. Nejjednodušší způsob - prosté prahování. Každý bod s hodnotou nula označit jako hranový bod. Nevýhody: 1. obrazová funkce má druhou derivaci nulovou i v místech, kde má nulovou první derivaci, tedy i uprostřed homogenních oblastí. Prahování tedy za hranové označí i body, které hranové vůbec být nemusejí. 2. k průchodu nulou nemusí nutně docházet v nějakém pixelu, nýbrž mezi dvěma sousedními pixeli. Pak prahovací technika hranové body vůbec nezaznamená.
Vytvoření mapy hran s maskou Lépe vyhledávání bodů, ve kterých dochází ke změně znaménka. Vytvoří se maska velikosti 2x2, která se postupně přikládá na všechny body obrazu. Levý horní prvek se bere jako střed masky (a). Tento prvek se porovnává s ostatními prvky. Pokud se znaménko tohoto prvku (a) liší od znaménka některého z ostatních prvků masky, je daný bod (a) označen jako hranový. Masky lze použít ještě k obdobě prahování: bod je označen za hranový jen, pokud je rozdíl hodnot větší než stanovený limit, tj. je splněna ještě dodatečná podmínka: Má-li (a) a např. (b) různá znaménka, musí zároveň platit, že kde T je předem definovaný práh
Výhody a nevýhody 2.derivace Nevýhody metody druhé derivace (oproti metodám první derivace): vyšší citlivost na šum větší časová náročnost pro velké rozměry masky Výhoda metody druhé derivace: mapa hran obsahuje pouze tenké a uzavřené hrany. Pokud použijeme variantu s prahováním, výsledné hrany zpravidla uzavřené nejsou.
Cannyho detektor J. F. Canny stanovil vlastnosti ideálního hranového detektoru: Minimální chyba detekce hran: Všechny důležité hrany musí být detekovány a nesmí být detekovány žádné falešné hrany. Správná lokalizace: Vzdálenost mezi skutečnou a detekovanou hranou musí být co nejmenší. Pouze jedna odezva: Každá hrana musí být detekovaná pouze jednou. Cannyho detektor by se dal zařadit mezi metody využívající první derivaci. Pro výpočet mapy hran je potřeba znát nejen velikost gradientu, ale i směr.
Algoritmus Cannyho hranový detektor 1. Vytvoř 1D konvoluční jádro G σ Gaussova filtru o zadané velikosti sigma (vstupní parametr). 2. Rozmaž obraz jádrem G σ podle osy y a výsledek ulož do G x. Spočítej první derivaci G x podle osy x a výsledek ulož do g x. (Sobelův operátor v 1. ose) 3. Rozmaž obraz jádrem G σ podle osy x a výsledek ulož do G y. Spočítej první derivaci G y podle osy y a výsledek ulož do g y. (Sobelův operátor v 2. ose) 4. Spočítej amplitudu (Sobelův gradient) 5. Ztenči obraz hran podle směru gradientu (Nonmaxima suppression) (při výpočtu 1.derivace vznikají tlusté hrany) 6. Proved hysterezní prahování s prahy T L a T H (vstupní parametry)
Nonmaxima suppression zvláštní poloprahovací technika ztenčení Předpoklad - hrana dává největší odezvu v místě, kde se skutečně nachází. Algoritmus - Pro každý bod b obrazu proved : 1. Urči jeho sousedy r a l ležící ve směru gradientu 2. Je-li b < r nebo b < l, pak přiřad b = 0, jinak neprováděj nic. Tento krok rozpojí hrany v místech, kde jsou křižovatky tvaru T. K rozpojení dojde proto, že vždy je jedna hrana větší než ta druhá. Vliv jejího gradientu je v místě spojení dominantní.
Hysterezní prahování snažíme se eliminovat nevýznamné a falešné hrany. ponechá v obraze pouze ty hrany, jejichž gradient alespoň v některých místech dosahuje požadované limitní velikosti T H.
Výsledek Cannyho hran.detektoru Výsledná mapa hran obsahuje tenké neuzavřené hrany. Časová náročnost podobná jako u jiných metod založených na první derivaci Výhodné, pokud je Gaussův filtr naprogramován pomocí rekursivního filtru
Detekce hran srovnáváním se vzorem (Template matching) Základem metody je nějaká maska, která se přiloží na právě kontrolované místo. Je-li odezva dostatečně veliká, je v daném bodě detekována hrana. Výhody: imunní vůči šumu. Vliv šumu závisí na velikosti masky. schopnost detekovat tzv. variance edge, neboli hrany vznikající na hranicích dvou rozdílných textur. Nevýhody: závislost na orientaci a tvaru masky a hledané hrany. Například maska z obrázku nedokáže nalézt rohy oblastí - časová náročnost výpočtu. Obraz se prochází pixel po pixelu a propočítává se v každém místě maska ze všech možných pootočení. Urychlení: 1. vhodná konstrukce masky a výpočtu její odezvy. Nemusí se vždy přepočítávat celá maska, ale pouze ta část, ve které došlo k nějaké změně při jejím otočení či posunutí. 2. nalézt si například gradientní metodou místa pravděpodobného výskytu a orientace hrany a provádět výpočet pouze pro tato místa a tyto orientace.
Detekce hran statistickými metodami podobné metodám srovnávání se vzorem je dáno nějaké jádro, jehož středem je zkoumaný bod. Pro toto jádro je předdefinovaná nějaká funkce, která se spočítá z bodů spadajících do jádra. Z výsledku je pak možné zjistit, zda se nachází v blízkosti bodu hrana. filtr SUSAN (Smallest Univalue Segment Assimilating Nucleus) Podstatou SUSAN je kruhová maska a funkce: Proměnná x 0 představuje střed masky. Práh T určuje minimální rozdíl, který bude detekovaný. Práh n max představuje nejvyšší možnou hodnotu, které může rovnice nabývat.
SUSAN výhody a nevýhody Filtr SUSAN patří mezi nelineární filtry. Hrany a rohy detekované pomocí SUSAN odpovídají místům s nejnižší hodnotou. Výhody veliká odolnost vůči šumu. Není potřeba žádné předzpracování pro odstranění šumu. Schopnost detekovat rohy oblastí Nevýhoda vysoká časová náročnost.
Delokalizace hran Při detekci hran nás často zajímají jen skutečně důležité hrany. Pokud je na obrázku zachycena cihlová zed, zpravidla nás zajímá pouze ohraničení zdi a ne hrany všech cihel. Abychom se vyhnuli přílišné přesegmentovanosti obrazu, používá se technika rozostřování. Podobně jako když otáčíme objektivem fotoaparátu působí rozmazávání pomocí Gaussova filtru. Vhodné rozostření způsobí, že nepodstatné hrany zaniknou a my pomocí detektoru hran nalezneme pouze důležité hrany. Velkou nepříjemností, kterou ani Cannyho detektor neřeší, je jev, kterému se říká delokalizace hrany. Použijeme-li Gaussův filtr na odstranění nežádoucích detailů obrazu, jsou detekované hrany posunuté od svých původních pozic. Čím větší průměr Gaussova filtru, tím více se efekt delokalizace projeví.
Delokalizace hran
Delokalizace hran hledání kompromisu mezi přesegmentovaným obrazem a delokalizovanými hranami. Řešení zpravidla využívá myšlenky - při větším rozmazání identifikujeme důležité hrany, ale použijeme hrany detekované při menším rozmazání, které těmto hranám odpovídají. Měřítkový prostor (scale space): Důležitou vlastností rozmazávání Gaussovým filtrem je, že se vzdálenost bodu hrany od skutečné pozice zvětšuje úměrně s velikostí jádra Gaussova filtru. Vytvoří se mapy hran obrazu při postupně se zvětšujícím rozmazání. Vytvoříme intervalový strom (interval tree). Pomocí intervalového stromu lze sestavit nepřesnou hranu z hodně rozmazaného obrazu pomocí přesnějších hran z méně rozmazaného obrazu.