Detektory hran
Proč obrázky vypadají dobře, když mají výraznější hrany? Protože lidský zrak vnímá především vysokofrekvenční informaci a nízkofrekvenční informaci si mozek je schopen doplnit sám. Obráceně to nejde. Jednoduchý příklad můžeme vidět na obrázku vedle - pokud uvidíte jen obrázek vrchní, jen málo lidí napadne, že to je část trojúhelníku. Pokud ale vidíme obrázek, kde jsou vrcholy (které mají vyšší frekvenci, než samotné hrany), vidí trojúhelník skoro každý.
I proto má smysl se zabývat detekcí a následným zvýrazněním hran.
Obsah |
[editovat] Co to je hrana
Hrany se v digitálním obrazu nacházejí v místech, kde se prudce mění jas. Jinak můžeme definovat hranu jako přechod z nízkofrekvenční do vysokofrekvenční oblasti [zdroj?]. Tento přechod má svojí šířku pásu. Čím je tento pás užší, tím je přechod strmější a tím je i hrana ostřejší. Pokud tedy chceme, aby obrázek byl ostřejší, musíme zvýšit strmost a celkovou výšku hrany. Můžeme toho docílit třeba tak, že vezmu původní obrázek
, rozmažu ho jakýmkoliv nízkofrekvenčním filtrem na
. A pak ho odečtu od toho původního, tedy:
Pro lepší pochopení máme obrázek vpravo, kde je původní hrana, a její 1. a 2. derivace a dále odečtení druhé derivace od původního obrázku. Jsme-li v diskrétní oblasti, může být
jakákoliv konvoluční maska.
- 1. derivace má masku:
- 2. derivace má masku:
- Laplace:
a tedy 
Důležité je, že pokud chceme, aby jas odpovídal původnímu obrázku, musí suma z použité masky být rovna jedné.
[editovat] Detektory hran
Mechanismy hledající hrany v obrázcích můžeme rozdělit podle technik, které používají k detekci hran:
- založené na první derivaci
- založené na druhé derivaci
- nepracující s derivací
- pracující ve Frekvenční oblasti
[editovat] S první derivací
Tyto detektory zderivují obrázek a poté sledují velké hodnoty derivace.
[editovat] Roberts
Pro nalezení svislých hran používá masku
a pro nalezení vodorovných hran
Nevýhoda tohoto filtru je právě velikost jeho masky, díky níž detekuji i šum jako hrany, protože používá derivaci jen v jednom bodě. Proto je zcela nepoužitelný na zašuměné obrázky. Ostatní metody nejprve obrázek rozmaží a pak ho teprve zpracovávají. Rozmazání nesmí být zase příliš velké, aby se neztratily jemné hrany. Tento detektor byl jeden z prvních a dnes se už moc nepoužívá.
[editovat] Sobel
Výhoda proti Robertsovu detektoru je ta, že počítá derivaci ze tří bodů (z centrálního bodu a bodů okolo). Je tedy robustnější proti šumu. Má celkem 8 masek, které počítá pro každý bod a vezme tu největší hodnotu z nich a dosadí jí do centrálního bodu.
Hranu detekuji vždy tou maskou, kde probíhá souběžně s nulami v masce. Tento detektor se používá s oblibou dodnes. Další známé detektory pracující obdobně jen s jinou maskou jsou např. Prewitt a Kirsch.
[editovat] Canny
Tento detektor se objevil v první polovině 80. let. Je v principu stejný jen jako konvoluční jádro vezmeme Gausovku. Dělám tedy: (f * G)' Dále obrázek oprahujeme a zůstanou nám jen "významné hrany". Tedy tím odstraníme body, kde nejsou maximální hodnoty. A zůstane jen obrázek s úseky hran. Poté trasujeme jednotlivé hrany, podíváme se a pokud vidíme, že derivace má v našem směru vysokou derivaci, uděláme tam hranu. Výsledek je dvojbarevný obrázek s odpovědí - hrana ano/ne.
[editovat] S druhou derivací
Detekovat hrany primitivní metodou, kde se laplace rovná nule by nebylo použitelné. A to nejen proto, že citlivost na šum by byla veliká, ale i z toho důvodu, že
i v homogenních oblastech. Navíc některé velmi jasné hrany nedetekuje. Proto jsou pro druhou derivaci použitelné jen vyšší metody.
[editovat] D. Marr, E. Hildreth
Tento detektor prezentovaný v roce 1980 pracuje taktéž jako Canny s Gausovským jádrem:
Kde
si můžeme představit jako mexický klobouk symetrický podle osy y a otočný směrem dolů. Poté pracujeme s tzv. zero-crossing detection - projíždíme třeba maskou 2x2 a hledáme jestli zde není velká změna z kladné na zápornou hodnotu a naopak. Pokud ano, řekneme, že to zde prochází nulou, i když tam bod s intenzitou nula být nemusí. Odpovědí tohoto detektoru je opět ano/ne hrana. Někdy nevýhodou, která ale v některých použití je naopak výhodou, je že se hrany uzavírají do sebe.
[editovat] Související články
[editovat] Externí odkazy
- Implementace hranového detektoru - implementace hranového detektoru v MATLABu (česky)






a tedy 



