Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, že není dovoleno tuto ukázku jakýmkoliv zpùsobem dále šíøit, veøejnì èi neveøejnì napø. umis ováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura redakce@ben.cz
Pod pojmem segmentace obrazu se rozumí rozdìlení obsahu obrazu na èásti, které nás zajímají a ostatní èásti (zbytek obrazu). Patøí sem také operace zkoumající, zda jsou v obraze obsaženy rùzné objekty potøebné z hlediska rozpoznávání nebo další analýzy obrazu. Struktura obrazu mùže být velmi složitá, objekty se mohou pøekrývat, scéna mùže být nerovnomìrnì osvìtlená, mùže obsahovat stíny apod. Segmentace obrazu a správný popis objektù proto patøí mezi nejsložitìjší úlohy zpracování obrazu. Tyto úlohy jsou øešeny algoritmy založenými buï na hledání podobností nebo hledání nespojitostí, pøípadnì se používají hybridní techniky. Do skupiny algoritmù hledajících oblasti na základì nìjakého kritéria podobnosti patøí napø. algoritmy založené na postupném rozdìlování nebo spojování oblastí (region growing nebo region splitting and merging). Do skupiny algoritmù založených na detekci nespojitostí patøí hledání hran nebo extrakce linií. O hledání hran jsme se zmínili v pøedchozí kapitole. Rozdìlení obrazu na dvouúrovòový, èernobílý snímek pomocí prahování si vysvìtlíme v této kapitole. Rovnìž se zmíníme o metodách pro spojování linií a hledání útvarù jako jsou pøímky nebo kružnice. Hledání oblastí Pøi rozdìlování obrazu do oblastí požadujeme: Aby každý bod v obraze náležel do oblasti. Každá oblast musí být spojitá a jednotlivé oblasti se nesmìjí pøekrývat (musí být vzájemnì disjunktní). Do které oblasti jsou urèité body pøiøazeny je rozhodnuto na základì nìjakého tvrzení (predikátu) popisujícího nìjakou vlastnost (napø. barva, textura, jas apod.). Rozdìlování a spojování oblastí (Region Splitting and Merging) Metoda Region Splitting and Merging rozdìlí pùvodní (celý) obraz do oblastí, které se vzájemnì nepøekrývají. Jde o hierarchickou reprezentaci obrazu umožòující též jeho úsporný a efektivní popis. Obraz je postupnì rozdìlován a novì vzniklé oblasti jsou testovány, zda splòují danou podmínku kritérium stejnorodosti. Pokud je podmínka splnìna, oblasti se slouèí a dále nedìlí. Pokud podmínka splnìna není, podoblasti se dále dìlí. Nejèastìjší a pøitom efektivní zpùsob dìlení je dìlení obrazu na ètverce a následný popis pomocí struktury, které se øíká ètyøstrom (quadtree). Metodì se øíká quadtree decomposition (dekompozice ètyøstromem). Obr. 4.1 Quadtree decomposition: Dìlení oblasti a výsledný strom A 4 Kapitola 75
Do algoritmu vstupuje celý obraz A jako koøen stromu. Ten je rozdìlen na ètyøi oblasti (kvadranty), které jsou testovány danou podmínkou stejnorodosti. Pokud oblast splòuje podmínku, není už dále dìlena. Oblast, která podmínku nesplòuje (na obr. 4.1 oblast A 4 ) je dále dìlena opìt na ètyøi èásti. Tento proces se opakuje dokud je co dìlit. Dìlení mùže být pøípadnì zastaveno døíve, pokud je požadováno aby hloubka stromu nepøekroèila urèitou mez. Pokud není hloubka stromu stanovena, je dekompozice ukonèena až nalezením všech oblastí (ètvercù) splòujících podmínku. Výsledkem jsou bloky rùzných velikostí. Informace o blocích jsou uloženy v uzlech stromu. Je zøejmé, že má-li obraz rozmìry M M, kde M = 2 k potom hloubka stromu nepøekroèí hodnotu k (nejmenší blok mùže mít velikost 1 1). Obr. 4.2 76 Quadtree decomposition: a) originál (Lena), b) dekompozice pro T = 0,1, c) dekompozice pro T = 0,2, d) ukázka výsledných blokù pro T = 0,2 Michal Dobeš: Zpracování obrazu a algoritmy v C# A
Podmínka, která vyjadøuje podobnost oblastí mùže vycházet napø. ze støední hodnoty jasu v oblasti, rozptylu hodnot v oblasti, ze statistických testù, mùže brát v úvahu barevný odstín apod. Uveïme pøíklad, kdy kritériem dìlení (podmínkou) je, že maximální rozdíl mezi nejmenší a nejvìtší hodnotou jasu v kvadrantu je menší než daný práh T: max (f (x, y)) min (f (x, y)) T. Na obr. 4.2 jsou uvedeny výsledky dekompozice a zpìtné rekonstrukce obrazu 256 256 = 65 536 pixelù. Zde pøedpokládáme, že f (x, y) 0,1. Pro T = 0,1 (tj. hodnoty jasu se neliší o více jak 10 %) staèilo pro popis obrazu 11 470 blokù, pro T = 0,2 (hodnoty jasu se neliší o více jak 20 %) staèilo 4615 blokù. Metoda narùstání oblastí (Region Growing) Na opaèném principu je založena metoda nazývaná region growing: oblasti se postupnì zvìtšují na základì definovaných kritérií. Na poèátku jsou vybrány startovací body, které splòují požadované podmínky (pixely s danými vlastnostmi, tzv. semínka, seeds). Okolí bodù je zkoumáno a oblast se rozrùstá jsou pøidávány další body na základì urèitých definovaných vlastností. Se spojováním oblastí souvisí problém správného výbìru startovacích bodù. Roli mùže hrát i požadavek na spojitost oblastí. Otázka zastavení rozrùstání oblastí se sice zdá být zøejmá ( až již nejde pøidat žádný bod ), ale nemusí být vzhledem k urèeným kritériím jednoduchá. 4.1 Prahování (Thresholding) Prahování se používá k pøevedení obrazu s více úrovnìmi jasu (šedotónového obrazu) na obraz, ve kterém se vyskytují dvì jasové úrovnì (èerná a bílá). Bodùm s hodnotou jasu vìtší než urèitá hodnota práh (threshold) je pøiøazena hodnota 1 (pøípadnì 255), ostatním bodùm je pøiøazena 0. Zda budeme považovat popøedí za 1 a pozadí za 0 stanovíme na základì toho, co nás v obraze zajímá. Prahování mùže být globální nebo lokální. Obr. 4.3 Jednoduché prahování: pùvodní snímek a výsledek prahování A 4 Kapitola 77
U globálního prahování je nalezena nebo zvolena urèitá hodnota prahu T a hodnotám jasu v obraze, pro které platí f (x, y) T, je pøiøazena 1, jinak 0. Tato hodnota prahu T je použita pro celý obraz. U lokálního prahování je hodnota prahu T mìnìna (adaptována) v rùzných èástech obrazu je použita rùzná hodnota prahu. Prahování mùžeme zapsat jako: g (x, y) = 1, když f (x, y) T, g (x, y) = 0 jinak. Výpis kódu, kde výsledné hodnoty pøedpokládáme 0 a 255, je zøejmý pro všechny pozice (x, y) v obraze by bylo provedeno: LII>[\@! 7 J>[\@ HOVH J>[\@ Práh je možno stanovit rùznými zpùsoby. Na základì výbìru hodnot jasu v obraze nebo z histogramu je možno vybrat práh tak, že zkoušením nìkolika rùzných hodnot prahù najdeme hodnotu, která dává nejlepší výsledek. Tento pøístup mùže být úspìšný v interaktivním prostøedí, kde uživatel mùže nastavovat práh pomocí tlaèítka a vidìt okamžitì výsledek. Nás budou zajímat metody, které jsou schopny urèit práh automaticky bez zásahu uživatele. 4.1.1 Metoda automatického nalezení prahu Automatické urèení prahu je možné za pøedpokladu rozumného rozdìlení jasu v obraze. Jedná se zejména o pøípad, kdy histogram obrazu má dva výrazné vrcholy, kde jasové hodnoty v oblasti jednoho vrcholu odpovídají hodnotám pozadí a hodnoty v oblasti druhého vrcholu hodnotám popøedí (objekty zájmu). První metoda automatického urèení prahu [12], kterou si popíšeme, je jednoduchá a je založena na postupném hledání prahu T jako prùmìru støedních hodnot oblastí odpovídajících popøedí a pozadí. Nech k 0, L 1 je k-tá úroveò jasu, L je celkový poèet úrovní jasu v obraze, N je celkový poèet bodù v obraze, p k = n k /N je normalizovaný histogram, kde n k je poèet bodù, které mají úroveò jasu k. Algoritmus automatického hledání prahu T lze popsat následovnì: 1. Vyber poèáteèní odhad prahu T. Za poèáteèní práh T se volí obvykle støed mezi minimální a maximální hodnotou jasu v obraze. 2. Rozdìl obraz dle prahu T na dvì množiny pixelù: A odpovídající popøedí s hodnotami jasu T a pixely B odpovídající pozadí s hodnotami jasu <T. 3. Spoèti prùmìrnou hodnotu jasu pixelù z množiny A: P / œ NS $ N N7 78 Michal Dobeš: Zpracování obrazu a algoritmy v C# A
a prùmìrnou hodnotu jasu pixelù z množiny B: P 7 œ NS. % N N 4. Urèi nový práh jako Tnew = (m A + m B )/2. 5. Dokud je rozdíl mezi zvoleným a novì vypoèteným prahem T Tnew > 0,5: Nastav T = Tnew a jdi na krok 2. (Pozn. Hodnota 0,5 zde vyjadøuje polovinu kroku mezi dvìma jasovými úrovnìmi k.) 4.1.2 Nalezení optimálního prahu (Otsuova metoda) Další používanou metodu automatického urèení prahu navrhl Otsu [21]. Histogram budeme považovat za funkci hustoty pravdìpodobnosti (rozdìlení). Pøedpokládáme, že histogram lze aproximovat dvìma køivkami p 1 a p 2, viz obr. 4.4, kde køivky pøedstavují dvì rozdìlení reprezentující popøedí a pozadí. Základní myšlenkou je nalézt správný støed (práh) tak, aby rozdìlení byla co nejdál od sebe. Možná chyba, že mylnì klasifikujeme popøedí jako pozadí nebo naopak pozadí jako popøedí, závisí na volbì prahu T. Nejprve vysvìtlíme teorii a poté ukážeme, že v praxi to lze udìlat mnohem jednodušeji staèí provést nìkolik sumací a nalézt maximum v poli hodnot, viz dále. Obr. 4.4 Hledání optimálního prahu Teorie Mìjme køivky p 1 a p 2 na obr. 4.4, pøedstavující nahrazení histogramu dvìma rozdìleními. Chybná klasifikace popøedí jako pozadí E 1 (T) odpovídá ploše pod køivkou p 2 smìrem doleva od prahu T, tj.: 7 ( 7 S I GI. d A 4 Kapitola 79