Detekce hran

Detekce hran je postup v digitálním zpracování obrazu, sloužící k nalezení oblastí pixelů, ve kterých se podstatně mění jas.

Co je to hrana

Hrana v objektu se nemusí krýt s hranicí mezi objekty ve scéně, hrany mohou vznikat a zanikat v závislosti na úhlu pohledu. Hrany tedy můžeme najít na hranici objektů nebo rozhraní světla a stínu — skoková hrana, nebo v místech trojrozměrných hran objektů — trojúhelníková hrana. Čáry v obrazu pak generují dvě hrany, jednu na každé své straně. Typická hrana na rozdíl od teoretické bývá ovšem zašuměná.

Detekce hrany

Pokud hranu definujeme jako velkou změnu jasové funkce, bude v místě hrany velká hodnota derivace jasové funkce. Maximální hodnota derivace bude ve směru kolmo na hranu. Kvůli jednoduššímu výpočtu se ale hrany detekují jen ve dvou, resp. ve čtyřech směrech. Velká skupina metod na detekci hran aproximuje tuto derivaci pomocí konvoluce s vhodným jádrem. Nejjednodušší taková jsou (-1 1) a (-1, 1)T, případně (-1, 0, 1) a (-1, 0, 1)T.

Operátory

Další používaná konvoluční jádra jsou:

  • Robertsův operátor ( 1 0 0 1 ) {\displaystyle {\begin{pmatrix}-1&0\\0&1\end{pmatrix}}} a ( 0 1 1 0 ) {\displaystyle {\begin{pmatrix}0&-1\\1&0\end{pmatrix}}} .
  • Prewittové operátor 3x3 je definován takto

( 1 1 1 0 0 0 1 1 1 ) {\displaystyle {\begin{pmatrix}-1&-1&-1\\0&0&0\\1&1&1\end{pmatrix}}} .

Je platný pro detekci v ose y. Detekce v ose x je dána transponovanou maticí (totéž platí i pro následující operátory). Prewittové operátor 5x5 je definován takto

( 2 2 2 2 2 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 ) {\displaystyle {\begin{pmatrix}-2&-2&-2&-2&-2\\-1&-1&-1&-1&-1\\0&0&0&0&0\\1&1&1&1&1\\2&2&2&2&2\end{pmatrix}}}

Platí, že čím je matice větší, tím je výpočet odolnější vůči šumu.

  • Sobelův operátor ( 1 2 1 0 0 0 1 2 1 ) {\displaystyle {\begin{pmatrix}-1&-2&-1\\0&0&0\\1&2&1\end{pmatrix}}} a opět i pro jiné směry. Dává větší váhu středu, čímž by mělo docházet k lepší lokalizaci hran.
  • Robinsonův operátor ( 1 1 1 1 2 1 1 1 1 ) {\displaystyle {\begin{pmatrix}-1&-1&-1\\1&-2&1\\1&1&1\end{pmatrix}}} .
  • Kirschův operátor ( 5 5 5 3 0 3 3 3 3 ) {\displaystyle {\begin{pmatrix}-5&-5&-5\\3&0&3\\3&3&3\end{pmatrix}}} .

V současnosti asi nejlepší hranový detektor je Cannyho, který na aproximaci první derivace z obrazu aplikuje prahování s hysterezí.

Metody založené na druhé derivaci

Hrany můžeme hledat i pomocí průchodů druhé derivace nulou (tzv. zero-crossings). Pozor, to není to samé jako hledání nulových bodů, ty se v digitálním obraze vůbec nemusí objevit. Tyto metody pracují většinou s Laplaciánem Δ f {\displaystyle \Delta f} , což ve dvou rozměrech znamená Δ f ( x , y ) = 2 f x 2 + 2 f y 2 {\displaystyle \Delta f(x,y)={\partial ^{2}f \over \partial x^{2}}+{\partial ^{2}f \over \partial y^{2}}} .

  • Marrův filtr (Marr-Hildrethův) Δ G {\displaystyle \Delta G} Vzhledem k tomu, že druhá derivace je ještě citlivější na šum než první je třeba kombinovat její výpočet s nějakým vyhlazením. To musí být dostatečné, aby odstranilo šum, ale zároveň nesmí porušit hrany. Marrův filtr je proto složením Laplaciánu a Gaussiánu.

Směr a síla hrany

Z výsledků detekce hran v horizontálním a vertikálním směru Gx a Gy lze spočítat sílu hrany jako G x 2 + G y 2 {\displaystyle {\sqrt {G_{x}^{2}+G_{y}^{2}}}} a směr jako arctan G x G y {\displaystyle \arctan {{G_{x}} \over {G_{y}}}} .

Prahování

Posledním krokem v detekci hran je prahování: je třeba rozhodnout, jak silná odezva už znamená hranu. Dobré nastavení prahu rozhoduje o kvalitě detektoru; příliš nízká hodnota označí za hrany i šum, příliš vysoká zas zahodí i některé podstatné hrany. Jako řešení tohoto problému a protože často není možné určit jeden práh pro celý obrázek, používá se tzv. prahování s hysterezí. Pro prahování s hysterezí se nastaví dva prahy. Nejdřív se najdou pixely výrazných hran pomocí vysokého prahu a od těch se pokračuje v označování takových pixelů, v nichž odezva hranového detektoru je větší než nízký práh. Díky tomu se omezí šum a hrany zůstanou souvislé.

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Detekce_hran
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.