Detekcia hrán

Detekcia hrán () je dôležitou oblasťou spracovania obrazu. Hrany sú miesta, kde sa prudko mení hodnota jasu. Typicky sa vyskytujú ako hranica medzi dvoma odlišnými regiónmi. Hrany sú jedny z dôležitých čŕt, ktoré môžu byť z obrázku extrahované. Detekcia hrán má preto časté použitie v úlohách počítačového videnia.
Hrana.
Hrana v obrázku je oblasť, kde sa rapídne mení jeho intenzita. Hrany môžeme rozdeliť na skokové (step) a impulzné (line). Pri skokovej hrane sa intenzita prudko mení z jednej hodnoty na inú. Pri impulznej hrane sa hodnota taktiež rapídne zmení, ale po istej vzdialenosti sa opäť vráti do počiatočnej hodnoty. Skokové a impulzné hrany sa však v reálnom svete vyskytujú veľmi zriedka. Na fotkách sú bežnejšie nábežné (ramp) a strechové (roof) hrany, pri ktorých zmeny jasu nie sú okamžité ale nastávajú postupne.
Metódy založené na prvej derivácii.
Metódy založené na prvej derivácii hľadajú hrany na miestach s vysokou hodnotou derivácie jasovej funkcie. Výpočet prvej derivácie (gradientu) aproximuje táto skupina metód pomocou konvolúcie určitým jadrom. Gradient je vektorom parciálnych derivácii a pre 2D signál ho definujeme ako:
formula_1
Gradient sa v polárnych súradniciach vyjadruje svojou veľkosťou a smerom:
formula_2 , formula_3
Hranu je potom možné určiť hodnotou tohto gradientu, čo je smerom a veľkosťou. 
formula_4 , formula_5
Smer formula_6 s hodnotou 0 indikuje vertikálnu hranu, ktorá je tmavšia na ľavej strane. Hodnota 180 indikuje vertikálnu hranu s opačným smerom a hodnoty 90 a 270 ° indikujú zase hrany horizontálne.
Sobelov operátor.
formula_7, formula_8, formula_9 atď.
V praxi sa používajú aj väčšie konvolučné jadrá. Pri zvýšení jeho veľkosti sa totiž hranový detektor stáva viac odolný voči šumu. Výhodou to taktiež býva u nízko kontrastných obrázkoch, kde sú hrany ťažko detegovateľné.
Príklad Sobelovho jadra 5x5:
formula_10, formula_11 atď.
Príklad výpočtu.
Konvolúciou zo vstupného obrázku a Sobelových jadier vypočítame formula_12 a formula_13. Z nich je následné možné dopočítať smer a veľkosť G. (Na rozšírenie obrázku sú použité krajné hodnoty.)
Následne je potrebné ešte dopočítať formula_14 . Keďže v formula_13sú samé nuly G bude vyzerať rovnako ako formula_12. Čím väčšie čísla budú v G tým je väčšia šanca že patria hrane.
Ako sa počíta konvolúcia:
(-1*0)+(-2*0)+(-1*0)+(0*0)+(0*0)+(0*0)+(1*10)+(2*10)+(1*10) = 40
Pri konvolúcii sa najprv preklopí jadro v x-ovom aj y-ovom smere. Následne sa odpovedajúce dvojice z pôvodného obrázku a jadra vynásobia a sčítajú.
Prewittov operátor.
formula_17, formula_18 atď.
Kirschov operátor.
formula_19, formula_20 atď.
Robinsonov operátor.
formula_21, formula_22 atď.
Robertsonov operátor.
formula_23, formula_24
Metódy založené na druhej derivácii.
Metódy založené na druhej derivácii hľadajú priechod s nulou. Využíva sa tu to, že nájdenie priechodu s nulou je jednoduchšie ako hľadanie extrémov. Nevýhodou druhej derivácie je väčšia citlivosť na šum.
Laplaceov operátor.
formula_25
Laplaceov operátor (skrátene Laplacián) je invariantný voči rotácii (izotropný) a nedetekuje orientáciu.Je taktiež viac citlivý na šum. Laplacián môže byť implementovaný použitím jadra:
formula_26
Laplacian-of-Gaussian (LOG).
Z dôvodu vysokej citlivosti druhej derivácie na šum, je vhodné výpočet kombinovať s vyhladením. V praxi zaviedol Laplacián Gaussianu, ktorý kombinuje Laplacián a Gaussove rozostrenie:
formula_27
Keďže druhá derivácia a konvolúcia sú lineárne operácie, preto je možné zmeniť postup výpočtu na:
formula_28
Derivácia Gaussovského filtru môže byť predpočítaná dopredu keďže je nezávislá na vstupnom obrázku. Príklad LOG jadra 5x5:
formula_29
Cannyho detektor.
Navrhol ho John Canny v roku 1986. Navrhol ho tak aby spĺňal 3 základné kritériá:
Cannyho detektor je realizovaný v niekoľkých krokoch: