Segmentácia obrazu - úvod
Cieľom segmentácie je zmysluplne zjednodušiť reprezentáciu obrázku tak aby sme spolu do jednotlivých tried zoskupili spolu body z nejakým vlastnosťami. Najjednoduchšie metódy berú do úvahy iba hodnoty bodov a nie ich polohy. V tom prípade hovoríme o prahovaní. Ak prahujeme do dvoch tried (zvyčajne objekt v popredí a pozadie), výsledkom je binárny obraz. Samozrejme prahovať môžeme aj do viacerých tried. Pri šedotónových obrazoch prahujeme na základe hodnoty jasu, pri farebných môžeme na základe hodnoty farby. Taktiež prahovacie metódy sa dajú vylepšiť tým, že istým spôsobom sa do úvahy aj polohy bodov a takto začínajú splývať s inými metódami segmentácie.
Základné rozdelenie prahovacích metód je nasledovné:
- klasické metódy (napr. K-means, OTSU, ... )
- metódy pomocou AI (tzv. sémantické prahovanie)
Podľa spôsobu ako sa prahovanie aplikuje by sme mohli metódy rozdeliť na:
- globálne prahovanie
- lokálne prahovanie (tu už využívame aj informáciu o polohe bodov)
Pri prahovaní je často pri pohľade na histogram jasné ako voliť prah. Napr na Obr. 1 vidíme histogramy ktoré majú jasne oddelené oblasti hodnôt a teda môžeme spoľahlivo umiestniť hodnoty prahu. Situácia sa môže ľahko zhoršiť, keď ke v obraze prítomný šum, scéna je nerovnomerne osvetlená (kolísanie jasu), objekty odrážajú svetlo a podobne. Následkom môže byť zliatie histogramov. Príklad takejto situácie za prítomnosti šumu je znázornený na Obr. 2.
Obr. 1 Príklady histogramov obrázkov, kde je triviálne zvoliť hodnotu prahu \(T\), resp. viacerých prahov \(T_1, T_2\)
Obr. 2 Príklady obrázkov a ich histogramov, kde vidíme, ako sa prítomnosťou čoraz silnejšieho šumu histogramy objektu a pozadia zlievajú a situácia pre voľbu prahu zhoršuje
V ďalších častiach textu sú uvedené vybrané metódy segmentácie. Taktiež sú spravidla uvedené príklady ako sa používajú v prostredí MATLAB.
Informácie o segmentácii v prostredí MATLAB možno nájsť v [1]. K dispozícii sú rôzne interaktívne aplikácie (napr. colorThresholder, imageSegmenter, volumeSegmenter), množstvo funkcií na vykonávanie segmentácie (napr. graythresh, multithresh), zobrazovanie a vyhodnocovanie výsledkov a mnoho ďalších. Taktiež je tam uvedených množstvo príkladov.
Informácie o segmentácii obrazu je možné nájsť v [2] a spolu s množstvom praktických ukážok v prostredí MATLAB aj v [3].
Referencie
[1] Mathworks, Image Segmentation, online https://www.mathworks.com/help/images/image-segmentation.html
[2] Gonzalez, R., C., Woods, E., W., Digital Image Processing, Global Edition, 4th edition, Pearson 2018, ISBN 10: 1-292-22304-9
[3] Gonzalez, R., C., Woods, E., W., Eddings, S., L., Digital Image Processing using MATLAB, Gatesmark Publishing, ISBN-10: 0-9820854-1-9
PDF verzia tejto stránky je dostupná tu: segmentation_sk.pdf