Cvičení 10 - Morfologické operace
A) Teoretický úvod
Matematická morfologie vychází z vlastností bodových množin. Nečastěji se aplikuje na binární obrazy, ale lze ji snadno zobecnit i na šedotónové a barevné obrazy. Morfologické operace se používají pro předzpracování (odstranění šumu, zjednodušení tvaru objektů), zdůraznění struktury objektů (kostra, ztenčování, zesilování, konvexní obal, označování objektů) a pro popis objektů číselnými charakteristikami (plocha, obvod, projekce, atd.).
Morfologické operace jsou realizovány jako relace obrazu (bodové množiny X) s jinou menší bodovou množinou B, tzv. strukturním elementem. Morfologickou transformaci si lze představit jako určitý systematický pohyb strukturního elementu B po obrazu X a vyhodnocení odezvy podle typu operace. Mezi dvě základní morfologické operace patří dilatace a eroze. Dilatace skládá body dvou množin pomocí vektorového součtu. Objekty v obrazu jsou po aplikaci dilatace zvětšené o jednu „slupku“ na úkor pozadí. Dilatace se používá k zaplnění děr popř. zálivů a její definiční vztah je dán následujícím vzorcem.
Následující obrázek znázorňuje výsledek operace dilatace (vpravo) vzniklý z původního obrazu (vlevo) pohybem strukturního elementu (uprostřed).
Druhou základní morfologickou operací je eroze. Eroze skládá dvě bodové množiny s využitím vektorového rozdílu. Je duální (nikoliv inverzní) transformací k dilataci a používá se pro zjednodušení struktury objektů. Objekty jednotkové tloušťky (relativní jednotka) zmizí a složité objekty spojené čárami jednotkové tloušťky se rozloží na několik jednodušších objektů. Eroze je dána následujícím vztahem.
Lze snadno ukázat, že obrysy objektů můžeme najít odečtením erodovaného obrazu od originálu. Morfologické operace tak mohou suplovat standardní detektor hran na bázi konvoluce obrazu s některým ze známých hranových operátorů.
Další morfologické operace jsou otevření a uzavření a jsou to operace, které vzniknou vzájemnou kombinací elementárních operací dilatace a eroze. Výsledkem obou je zjednodušený obraz, který obsahuje méně detailů (odstraní detaily menší, než strukturní element, celkový tvar objektu se ale neporuší). Eroze následovaná dilatací se nazývá morfologické otevření (viz relace vlevo). Oddělí objekty spojené úzkou šíjí a tak zjednoduší strukturu objektů. Dilatace následovaná erozí se naopak nazývá morfologické uzavření (viz relace vpravo). Spojí objekty, které jsou blízko u sebe, zaplní díry a vyhladí obrys.
B) Úkoly
- Napište funkci [J] = ImageDilate(I) řešící dilataci binárního obrazu konstantním strukturním elementem stejným jako na obrázku v teoretické části a na dvou syntetických obrazech pruhy_horiz.bmp a pruhy_vert.bmp zobrazte a komentujte rozdílnost výsledků.
- Vygenerujte uvedený strukturní element pomocí funkce strel a pomocí funkce imdilate ověřte správnost výsledků předchozího bodu.
- Napište funkci [J] = ImageErode(I) řešící erozi binárního obrazu vámi zvoleným strukturním elementem a sestavte pomocí této funkce detektor hran a zobrazte výsledek. Popište vliv tvaru a velikosti strukturního elementu na výsledek operace detekce hran.
- Pomocí vámi implementovaných funkcí proveďte nad obrazem obraz07.bmp operaci morfologické otevření a výsledek porovnejte s výsledkem knihovní funkce imopen.
- Na binarizovaném obraze obraz07.bmp se 3 % šumu typu ‚pepř a sůl‘ experimentujte s knihovními funkcemi strel, imerode, imdilate, imopen, imclose, případně imfill a různými tvary a velikostmi strukturního elementu. Vhodnými parametry, případně kombinací funkcí či dílčích výsledků se pokuste např. získat obraz bez šumu, ve kterém budou pouze vertikální hrany a dva obdélníky, kdy objekty jsou stejně veliké jako v původním obraze (výsledek podobný jako 2. obraz dole v sekci D) Ilustrace výsledků).
C) Dobré vědět
- Povolené funkce: imread, clock, etime, strel, imdilate, imerode, imopen, imclose, imfill
- Nepovolené funkce: Nejsou.