Soudabeh Moradi Kappaleiden skeletonin etsiminen binäärikuvista. Kandidaatintyö

Samankaltaiset tiedostot
8. Morfologinen kuvanprosessointi 8.1. Perusteita

8 Joukoista. 8.1 Määritelmiä

Tekijä Pitkä matematiikka

S09 04 Kohteiden tunnistaminen 3D datasta

Reaalilukuvälit, leikkaus ja unioni (1/2)

Suorista ja tasoista LaMa 1 syksyllä 2009

Joukot. Georg Cantor ( )

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö

2 Pistejoukko koordinaatistossa

10. Esitys ja kuvaus

2 Raja-arvo ja jatkuvuus

Algoritmit 1. Luento 3 Ti Timo Männikkö

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

v 8 v 9 v 5 C v 3 v 4

Luku 8. Aluekyselyt. 8.1 Summataulukko

Vastauksia. Topologia Syksy 2010 Harjoitus 1

y=-3x+2 y=2x-3 y=3x+2 x = = 6

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Konformigeometriaa. 5. maaliskuuta 2006

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Matematiikan tukikurssi

LUKUTEORIA johdantoa

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2

Matematiikan tukikurssi

Matematiikan tukikurssi, kurssikerta 1

2.2 Muunnosten käyttöön tutustumista

y x1 σ t 1 = c y x 1 σ t 1 = y x 2 σ t 2 y x 2 x 1 y = σ(t 2 t 1 ) x 2 x 1 y t 2 t 1

Johdatus graafiteoriaan

Ristitulolle saadaan toinen muistisääntö determinantin avulla. Vektoreiden v ja w ristitulo saadaan laskemalla determinantti

2.2 Muunnosten käyttöön tutustumista

Epäeuklidista geometriaa

Matematiikan tukikurssi

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

4.3. Matemaattinen induktio

isomeerejä yhteensä yhdeksän kappaletta.

2D piirrelaskennan alkeet, osa I

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

JOHDATUS TEKOÄLYYN TEEMU ROOS

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Lineaarinen optimointitehtävä

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

MS-A0402 Diskreetin matematiikan perusteet

MATEMATIIKAN KOE, LYHYT OPPIMÄÄRÄ ESITYS pisteitykseksi

Lukion matematiikkakilpailun alkukilpailu 2015

Johdatus verkkoteoriaan 4. luento

5.6 Yhdistetty kuvaus

Matematiikan tukikurssi, kurssikerta 3

2.3 Virheitä muunnosten käytössä

Kokonaislukuoptimointi

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Matemaatiikan tukikurssi

Tenttiin valmentavia harjoituksia

Matematiikan tukikurssi

8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151

Matematiikan tukikurssi

Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

Algoritmit 2. Luento 11 Ti Timo Männikkö

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

Lisää pysähtymisaiheisia ongelmia

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Algebra I, Harjoitus 6, , Ratkaisut

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

S Laskennallinen Neurotiede

Datatähti 2019 loppu

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

JOHDATUS TEKOÄLYYN TEEMU ROOS

Hilbertin aksioomat ja tarvittavat määritelmät Tiivistelmä Geometria-luentomonisteesta Heikki Pitkänen

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Algoritmit 1. Luento 7 Ti Timo Männikkö

Kertaus. x x x. K1. a) b) x 5 x 6 = x 5 6 = x 1 = 1 x, x 0. K2. a) a a a a, a > 0

Yhtenäisyydestä. Johdanto. Lähipisteavaruus. Tuomas Korppi

Täydellisyysaksiooman kertaus

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

y z = (x, y) Kuva 1: Euklidinen taso R 2

Tehtävä 8 : 1. Tehtävä 8 : 2

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n

TIEA341 Funktio-ohjelmointi 1, kevät 2008

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

jens 1 matti Etäisyydet 1: 1.1 2: 1.4 3: 1.8 4: 2.0 5: 3.0 6: 3.6 7: 4.0 zetor

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

Jatkuvat satunnaismuuttujat

Transkriptio:

Soudabeh Moradi Kappaleiden skeletonin etsiminen binäärikuvista Kandidaatintyö Tarkastaja: Lehtori Heikki Huttunen Jätetty tarkastettavaksi 24. toukokuuta 2010

II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan koulutusohjelma MORADI, SOUDABEH: Kappaleiden skeletonin etsiminen binäärikuvista Kandidaatintyö, 18 sivua, 1 liitesivua Toukokuu 2010 Pääaine: Signaalinkäsittely ja multimedia Tarkastaja: Lehtori Heikki Huttunen Avainsanat: Skeleton, ohennus, binäärikuva, iteraatio Työn tarkoituksena on tutkia binäärikuvan skeletonin laskemiseen toteutettuja menetelmiä ja esittää näiden tuloksena saadun skeletonin ominaisuudet ja päättää niiden mukaan sopiva sovellusalue menetelmälle. Käytännössä digitaalista dataa muutetaan binääriseksi ja skeletonin saamiseksi voidaan soveltaa sopiva menetelmä työssä esiintyvistä menetelmistä. Työssä esitetyt tärkeimmät menetelmät ovat skeletonin laskeminen käyttäen morfologisia operaatioita, ohennusalgoritmit tai skeleton etäisyysmuunnoksen avulla. Jokaisesta menetelmästä esiteltiin tunnetuimmat algoritmit ja havaittiin, että jokainen niistä täyttää tiettyjä vaatimuksia skeletonille ja siten sopii tiettyyn sovellukseen. Algoritmeja ei ole vertailtu tehokkuuden nähden koodin puuttumisen takia.

III ALKUSANAT Haluaisin kiittää Heikki Huttusta työn ohjaamisesta ja kommentoinnista. Lisäksi kiitän siskoani Elham Moradi, joka auttoi minua suomen kielellä kirjoittamisessa. Tämä kandidaatintyö toteutettiin osana Tampereen teknillisen yliopiston signaalinkäsittelyn laitoksen kandidaatintyöseminaaria. 24. toukokuuta 2010 Soudabeh Moradi

IV Lyhenteet ja merkinnät Adjacency Matlab aapurusto Pikseli Rakennealkio Naapuruus- tai vierekkäisyyssuhde kuvapisteiden välillä. Se on lyhenne sanoista matrix laboratory. Se on numeeriseen laskentaan tarkoitettu ohjelmisto. Kuvapisteiden joukossa pisteen neljä lähintä naapuria kutsutaan sen 4-naapurustoksi ja kahdeksan lähintä naapuria kutsutaan sen 8-naapurustoksi. Pikseli on bittikarttagrafiikassa esiintyvä kuvan pienin osa (engl. pixel). Se on morfologisiin operaatioihin käytetty binäärimaski, jolla määritellään mitkä naapuripisteet otetaan mukaan operaatiota suorittaessa (engl. Structuring element). Morfologinen dilaatio Morfologinen eroosio Morfologinen avaus Morfologinen sulku Morfologinen hit-or-miss operaatio Ohennus

V SISÄLLYS 1. JOHDANTO... 1 2. BINÄÄRIKUVAN SKELETON... 2 2.1. Keskiakselimuunnos... 2 2.2. Etäisyysmuunnokset... 3 2.3. Ohennusalgoritmit... 3 2.3.1. Naapurusto, adjacency ja yhdistettävyys... 4 2.4. Morfologiset operaatiot... 5 2.4.1. Eroosio ja dilaatio... 6 2.4.2. Avaus ja sulku... 6 2.4.3. Hit-or-Miss... 6 2.5. Karsinta... 7 3. SKELETONALGORITMIEN TOTEUTUS... 8 3.1. Morfologinen skeleton... 8 3.2. Morfologinen ohennus käyttäen Hit-or-Miss muunnosta... 9 3.3. Zhang-Suen ohennusalgoritmi... 11 3.4. Skeleton etäisyysmuunnoksen avulla... 13 3.5. Karsinta-algoritmi... 15 4. JOHTOPÄÄTÖKSET... 17 LÄHTEET... 18 LIITTEET... 19

1 1. JOHDANTO Tässä työssä käsitellään binäärisen kuvan skeletonia. Skeleton on pääasiallisesti yhden pikselin paksuinen viiva, joka kulkee kappaleen keskeltä eli kappaleen keskiakselin (Medial axis) kautta. Kuvan skeleton on tärkeä työkalu monelle kuvanprosessointisovellukselle. Näihin sovelluksiin kuuluvat mm. hahmojen tunnistus, sormenjäljen tunnistus, kirjainmerkkien tunnistus, kromosomin tutkiminen jne. Kuvan ohentamisella saadaan kätevä ja tiivis esitys kuvan informaatiosta. Se säilyttää kuvan topologiset ominaisuudet ja vähentää muistin tarvetta sen tallentamiseksi [2]. Blum [1967] on määrittänyt kuvan skeletonin keskiakselimuunnoksen (engl. Medial Axis Transformation; MAT) avulla [4, s. 650]. Kuvan keskiakselilla on intuitiivinen määritelmä niin sanotusti prairie fire concept. Kuvitellaan kuva-alue preeriaksi, jossa on yhtenäinen kuiva ruoho ja oletetaan että tulipalo sytytetään kuvan reunoista. Tulipalo etenee kuvan sisään tasaisella nopeudella. Alueen keskiakseli on niiden pisteiden joukko, jossa kahdesta tai useammasta eri suunnasta (reunasta) tulevat tulipalot leikkaavat toisiaan. Kuvan skeletonia on tutkittu laajasti viime kahden kymmenen vuoden aikana. Monia algoritmeja on kehitetty kappaleen skeletonin muodostamiseksi. Ohennus on yhdistettävyyttä (engl. connectivity) säilytettävä prosessi, joka syövyttää kappaleen kerroksittain kunnes jää vain kappaleen skeleton. Toinen tärkeä lähestymistapa on skeletonin määrittäminen euklidisen etäisyysmuunnoksen perusteella. Myös on luotu algoritmeja, joilla saadaan kuvan skeleton morfologisten operaatioiden pohjalta. Kuvan skeletonin määrittelyyn sisältyy useita vaatimuksia [1]. Nämä vaatimukset ovat: (1) yhdistettävyys (connectivity): tuloskuvalla on sama yhdistettävyys kuin alkuperäisellä kuvalla (Ks. kappale 2.3), (2) ohennus: kuvan skeleton on yhden pikselin paksuinen, (3) keskiakseli: kuvan skeleton on keskitetty kuvan reunojen suhteen, (4) uudestaan muodostettavuus: alkuperäinen kuva on saatavissa skeletonista (5) tehokkuus: suoritusaika pitää olla mahdollisimman lyhyt ja muistin tarve pitää olla mahdollisimman pieni. Jokainen algoritmi toteuttaa tiettyjä vaatimuksia paremmin. Joten sovelluksen mukaan on pääteltävä mitkä ominaisuudet ovat tärkeimmät kuvan skeletonille ja siten on valittava sopiva algoritmi. Myös harmaasävykuvien skeleton voidaan määrittää, mutta tässä kandidaatintyössä keskitytetään skeletonin määrittämiseen binäärikuvista. Työssä selvitetään kuvan skeletonin määrittämisen taustalla olevaa teoriaa ja menetelmiä, joilla skeleton voidaan laskea.

2 2. BINÄÄRIKUVAN SKELETON Skeleton on määritelty matemaattisesti monella eri tavalla sen jälkeen, kun Blum esitti sille intuitiivisen määritelmän [4, s. 650]. Yleinen määritelmä on maksimaalinen ympyrä (maximal disk) [6]. Määritelmän mukaan oletetaan, että kuvan X R maksimaalinen ympyrä on se ympyrä, joka sisältyy X:ään mutta ei ole minkään toisen X:n sisällä olevan ympyrän sisällä ja leikkaa kuvan reunaa ainakin kahdessa eri pisteessä [4, s. 543]. Eli etsitään ensin kaikki kuvan X sisällä olevat maksimaaliset ympyrät ja määritellään niiden keskipisteet. Seuraavaksi yhdistämällä nämä keskipisteet saadaan kuvan skeleton. Kuva 2.1 havainnollistaa tämän määritelmän. ei maksimaalinen ympyrä kuva kuva maksimaaliset (a) ympyrät (b) kuvan skeleton Kuva 2.1. Skeletonin määritelmä maksimaalisten ympyröiden avulla. (a) Maksimaaliset ympyrät kuvassa, (b) skeleton maksimaalisten ympyröiden keskipisteenä. Tässä luvussa esitellään eri menetelmät, joilla lasketaan kappaleen skeleton. Näistä menetelmistä jotkut täyttävät joitakin skeletonin vaatimuksia ja jotkut toisia, joten valitaan sopiva menetelmä sovelluksen mukaan. 2.1. Keskiakselimuunnos Alueen R reunalla B määritellään keskiakselimuunnos (engl. Medial Axis Transformation; MAT) seuraavasti: jokaiselle R:ssä olevalle pisteelle p etsitään sen lähimmän naapuri B:ssä. Jos p:llä on enemmän kuin yksi tällainen naapuripiste, sanotaan sen kuuluvan R:n keskiakseliin [4, s. 650]. Reunalla olevan lähimmän naapurin määrittely ja siis tuloksena saatu skeleton riippuu etäisyyden määrittelystä (Ks. kappale 2.2). Kuvassa 2.2 on piirretty kappaleiden keskiakseli, kun pisteiden etäisyys

3 määritellään euklidisella etäisyydellä. Sama tulos saadaan maksimaalisten ympyröiden avulla. Kuva 2.2. Kuvioiden keskiakselit. Vaikka alueen MAT tuottaa miellyttävän intuitiivisen skeletonin, suora toteutus tästä määritelmästä on laskennallisesti raskas, koska jokaiselle kuvan sisällä olevalle pikselille joudutaan laskemaan sen etäisyys kaikista reunalla olevista pisteistä [4, s. 651]. Keskiakselimuunnos on yksikäsitteinen eli alkuperäinen kuva saadaan muodostetuksi sen keskiakselimuunnoksesta. Tätä varten keskiakselimuunnos on erityisen hyödyllinen kuvan kompressiossa. 2.2. Etäisyysmuunnokset Etäisyysmuunnos määrittää jokaiselle binäärikuvan pikselille arvon, joka on yhtä suuri kuin sen etäisyys lähimmästä taustalla olevasta pikselistä. On olemassa kolme tapaa etäisyyden mittaamiseen: city-block, chessboard ja euklidinen etäisyys [4, s. 68]. Matlabin funktio bwdist laskee binäärikuvan etäisyysmuunnoksen parametrina annetun metodin mukaan. Alkuperäisen kuvan ohennettu osajoukko voidaan saada etäisyysmuunnoksesta poimimalla ne pisteet, jotka ovat etäisyysmuunnoksessa paikallinen maksimi. Tätä ohjattua osajoukkoa kutsutaan etäisyysskeletoniksi (engl. distance skeleton). Alkuperäinen etäisyysmuunnos toisin sanoen alkuperäinen kuva voidaan muodostaa uudestaan sen etäisyysskeletonin avulla. Siksi etäisyysskeletonia voidaan käyttää kuvan kompressioon.[8.] 2.3. Ohennusalgoritmit Ohennusalgoritmit ohentavat kuvaa iteratiivisesti poistamalla kuvan reunapisteet säilyttäen kuvan topologiaa. Siis algoritmin tuloskuvalla pitää olla sama korkeus ja leveys kuin alkuperäisellä eli säilytetään kuvan päätepisteet. Pisteiden poistolla tarkoitetaan kuvapisteiden arvon 1 muunnos taustapisteiden arvoon 0. Pisteiden tarkastamista voidaan tehdä kahdella eri tavalla: peräkkäisesti (sequential) tai rinnakkaisesti (parallel). Sekventiaalisessa algoritmissa pisteet tarkastetaan kiinnitetyssä sekvenssissä jokaisessa iteraatiossa ja p:n poisto n:ssä iteraatiossa riippuu kaikista operaatioista, jotka ovat suoritettu tähän asti. Toisin sanoen p:n poisto riippuu sekä iteraation (n-1) tuloksesta että pikseleistä, jotka ovat käsitelty jo samassa iteraatiossa. Toisaalta rinnakkaisessa algoritmissa pisteen poisto iteraatiossa n riippuu

4 vain iteraation (n-1) tuloksesta. Siksi jokaisessa iteraatiossa kaikki pikselit voidaan tarkastaa rinnakkaisesti yhtä aikaa [7]. Peräkkäisille pisteidenpoistoalgoritmeille on olemassa riittävät edellytykset kuvan yhdistettävyyden säilyttämisen kannalta, mutta ne ovat hitaita rinnakkaisiin algoritmeihin nähden. Rinnakkaisalgoritmeissa suuri määrä pikseleitä voi muuttua yhtä aikaa ja tämä vaikeuttaa kuvan yhdistettävyyden säilymistä [5]. Tämän ongelman poistamiseen jaetaan iteraatiot ali-iteraatioihin. Jokaisessa ali-iteraatiossa tutkitaan tietyn joukon pikselin poistamista. Joissakin algoritmeissa on käytetty neljä aliiteraatiota jokaisessa iteraatiossa ja jokaisessa ali-iteraatiossa poistetaan reunasta tietyt pikselit (pohjoinen, itä, etelä ja länsi). Myös joskus on käytetty kaksi ali-iteraatiota niin, että toisessa ali-iteraatiossa poistetaan pohjois- ja itäpikselit ja toisessa jäljelle jääneet pikselit [7]. 2.3.1. Naapurusto, adjacency ja yhdistettävyys Määritellään muutama termiä, joita tullaan tarvitsemaan ohennusalgoritmeissa. Kuvassa 3.3 (kappale 3.3) pisteen p 4-naapurusto merkitään N 4 (p) ovat p1, p3, p5, p7 ja diagonaaliset naapurit merkitään N D (p) ovat p2, p4, p6, p8. Pisteet N 4 (p) ja N D (p) muodostavat yhdessä sen 8-naapurusto, jota merkitään N 8 (p). Määritellään sitten kahden pikselin adjacency ja connectivity kuvapisteiden joukossa. Huomioidaan kolme eri adjacencytyyppiä [4, s. 66]: (a) 4-adjacency: kaksi piste p ja q arvolla 1 ovat 4-adjacent, jos q on joukossa N 4 (p). (b) 8-adjacency: kaksi piste p ja q arvolla 1 ovat 8-adjacent, jos q on joukossa N 8 (p). (c) m-adjacency (mixed adjacency): kaksi piste p ja q arvolla 1 ovat m-adjacent, jos q on joukossa N 4 (p), tai q on joukossa N D (p) ja joukko N 4 (p) N 4 (q) ei sisällä 1-arvoista pikseliä. Havainnollistetaan tämä asia kuvassa 2.3. Kuvan (b)-kohdassa on piirretty katkoviivoilla keskipisteen 8-adjacent:it. Kuten kuvasta nähdään kuvan kolme ylimmät 1- arvoiset pikselit muodostavat monikertaisen 8-adjacency:n ja muuttamalla se m- adjacency:iin poistetaan monikertaiset reitit kuvasta. (a) (b) (c) Kuva 2.3. (a) Pisteiden järjestys, (b) Pisteet, jotka ovat 8-adjacent keskipisteen suhteen (katkoviivoilla esitetty), (c) m-adjacency. Binäärikuvassa arvoilla 0 ja 1 kahta pikseliä on yhdistetty (connected), jos ne ovat sekä naapureita että samanarvoisia [4, s. 66]. Pisteiden sarjaa y, y,..., y kutsutaan 8- reittiseksi (engl. 8-path) tai 4-reittiseksi (4-path) tai m-reittiseksi (m-path), jos y on

5 y :n 8-adjacent tai 4-adjacent tai m-adjacent vastaavasti. Kuvan I osajoukko Q on 8- connected tai 4-connected tai m-connected, jos jokaisella Q:ssa olevalla pisteparilla x, y on 8- tai 4- tai m-reitti x:stä y:hun Q:ssa. Tässä tapauksessa sanotaan, että Q on I:n 8- tai 4- tai m-komponentti [7]. 2.4. Morfologiset operaatiot Morfologian teoriassa kuvaa käsitellään pistejoukkona. Morfologisia operaatioita käytetään useissa sovelluksissa, mm. kuvan segmentointi, kuvan terävöitys, kuvan suodatus jne. Kuvan skeletonin etsimiseen tärkeimmät morfologiset operaatiot ovat eroosio, dilaatio, avaus (engl. opening), sulku (engl. closing) ja hit-or-miss. Kaikki nämä operaatiot tehdään rakennealkion avulla. Rakennealkio on binäärinen maski, jolla määritellään mitkä naapuripisteet otetaan mukaan kun suoritetaan morfologinen operaatio. Jokaisella rakennealkion pikselillä on arvo. Yksinkertaisessa rakennealkiossa, jota käytetään esimerkiksi eroosiossa ja dilaatiossa on vain yksi arvo. Toisaalta monimutkaisemmassa rakennealkiossa, jota käytetään hit-or-miss operaatiossa on molemmat arvot nolla ja yksi. Kun morfologista operaatiota suoritetaan, rakennealkion origo (yleensä keskipiste) asetetaan sen pisteen päälle, joka on muuttumassa ja rakenne-alkion arvot vertaillaan rakennealkion alle jääneiden kuvapisteiden kanssa. Vertailun yksityiskohdat ja sen vaikutus ulostuloon riippuu mikä morfologinen operaatio ollaan suorittamassa [3]. Kuvassa 2.4 esitetään muutama esimerkkiä morfologisiin operaatioihin käytettävistä rakennealkioista. B B B i (90 kierretty), i = 1,2,3,4 B i (45 kierretty), i = 1,2,...,8 Kuva 2.4. Esimerkkejä rakennealkioista. Rakennealkioiden origo on niiden keskipiste. x merkki esittää don t care tilaa, eli niiden alla voi olla 0 tai 1. Morfologiset skeletonit saadaan kahdella eri tavalla [10]: algoritmit morfologisen avausoperaation avulla, joilla alkuperäinen kuva on muodostettavissa skeletonin perusteella ja algoritmit hit-or-miss muunnoksen avulla, joilla kuvan topologia säilyy skeletonissa. Seuraavassa on esitetty lyhyesti morfologiset operaatiot, joita käytetään skeletonin saamiseksi.

6 2.4.1. Eroosio ja dilaatio Eroosio ja dilaatio ovat morfologian perusoperaatiot, joihin monet muut operaatiot perustuvat [10]. Olkoot A ja B joukkoja avaruudessa Z. Joukon A eroosio B:llä määritellään seuraavasti: A B = z (B) A (2.1) Kyseessä on siis pisteiden z joukko, jossa z:lla siirretyt pikselit kuuluvat joukkoon A. Joukko B edustaa rakennealkiota. Operaatio on selitetty tarkemmin kirjassa [4, s. 523]. Joukkojen A ja B ollessa Z :ssa A:n dilaatio B:llä määritellään seuraavalla tavalla: A B = z (B ) A (2.2) Yllä olevassa yhtälössä edustaa tyhjää joukkoa. Myös B edustaa symmetrista joukkoa ja se määritellään seuraavasti: B = w w= b, kun b B (2.3) 2.4.2. Avaus ja sulku Avaus- ja sulkuoperaatiot ovat dilaation ja eroosion yhdistelmiä. rakennealkiolla B määritellään seuraavalla tavalla: Joukon A avaus A B = (A B) B. (2.4) Yhtälöstä todetaan, että joukon A avaus rakennealkiolla B määritellään relaatiolla A:n eroosio B:llä ja tämän tuloksen dilaatio B:llä. Samalla tavalla joukon A sulku rakennealkiolla B määritellään seuraavasti: A B = (A B) B. (2.5) Kuten yllä on esitetty joukon A sulku rakennealkiolla B määritellään relaatiolla A:n dilaatio B:llä ja tämän tuloksen eroosio B:llä. 2.4.3. Hit-or-Miss Hit-or-miss operaatiossa käytetään eroosio-operaatiota ja yhdistettyä rakennealkiota B = (B, B ), jossa B on niiden B:n alkioiden joukko, jotka liittyvät yhteen kuvaobjektiin ja B on niiden B:n alkioiden joukko, jotka liittyvät kuvaobjektin vastaavaan taustaan. Eli tämä rakennealkio eroaa dilaatioon ja eroosioon käytetyistä rakennealkioista siten, että tämä sisältää molempia 1 ja 0 arvoja. Operaatioon liittyvät tarkemmat yksityiskohdat löytyvät kirjasta [4, s. 532]. Operaatio määritellään seuraavasti:

7 missä A kuvaa joukon A komplementtijoukkoa. 2.5. Karsinta A B = (A B ) (A B ), (2.6) Karsintametodit (engl. pruning) ovat tärkeitä kuvan ohennus- ja skeletonalgoritmeissa. Kuvan skeleton yleensä sisältää useita oksia, jotka johtuvat kuvan reunoissa olevasta kohinasta. Nämä oksat voivat häiritä tunnistusprosessia. Menetelmällä poistetaan skeletonista oksat, joiden pituus on vähemmän kuin tietty pikselimäärä. Tämä menetelmä ei aina ole toimiva, sillä pienet häiriöt kuvan reunoissa voi johtaa suuriin oksiin skeletoniin. Matlabista löytyy valmis funktio karsintaan. Kuvassa 2.5(a) on esitetty binäärinen ympyröiden kuva, (b)-kohdassa on sen skeleton Matlabin valmiilla funktiolla, joka on toteutettu keskiakselimuunnosalgoritmilla ja (c)-kohdassa on Matlabilla saatu karsinnan tulos. (a) (b) (c) Kuva 2.5. (a) alkuperäinen ympyröiden kuva, (b) skeleton keskiakselimuunnoksella, (c) skeletonista on karsittu ylimääräiset oksat.

8 3. SKELETONALGORITMIEN TOTEUTUS Tässä luvussa esitellään muutama skeletonalgoritmia. Näiden algoritmien lopputulokseen vaaditaan seuraavat ominaisuudet: kuvan topologiset ominaisuudet on säilytetty ja skeleton on yhdistetty ja keskitetty alkuperäisen kuvan suhteen. Myös suoritusnopeus on tärkeä ominaisuus algoritmille. 3.1. Morfologinen skeleton Kuvan skeleton käyttäen avaus- ja eroosio-operaatioita voidaan ilmaista seuraavasti [4, s. 543]: missä S(A) = S (A), (3.1) S k (A) = (A kb) (A kb) B, (3.2) missä B on rakennealkio, ja (A kb) tarkoittaa A:n k peräkkäistä eroosiota. Yhtälössä (3.1) K on viimeinen iteratiivinen vaihe ennen kuin A on syövytetty tyhjään joukkoon. Yhtälöstä (3.1) todetaan että S(A) saadaan yhdistämällä skeletonosajoukot S k (A). Myös voidaan näyttää että alkuperäinen kuva A voidaan muodostaa näistä osajoukoista käyttämällä seuraava yhtälö: A = (S (A) kb), (3.3) missä (S (A) kb) viittaa S k (A):n k peräkkäiseen dilaatioon. Algoritmissa skeletonosajoukkojen käyttö takaa alkuperäisen kuvan uudelleen muodostamista. Kuvassa 3.1 on esitetty erään kuvan skeletonin saamiseksi suoritetut vaiheet. Tähän kuvaan käytetty rakennealkio B on 3 3 kokoinen ja sen kaikkien alkioiden arvot ovat 1. Kuvan ensimmäisen sarakkeen ensimmäinen kuva esittää ohennettavaa kuvaa, jota ohennettiin kaksi kertaa B:llä (ensimmäisen sarakkeen toinen ja kolmas rivi). Toisessa sarakkeessa sovelletaan ensimmäisen sarakkeen kuville avausoperaatio. Kolmannessa sarakkeessa esitetään saadut skeletonosajoukot ja viimeisessä sarakkeessa skeletonosajoukot lisätään yhteen. Viimeisen sarakkeen viimeinen kuva esittää algoritmin tuloksen. Tuloksesta havaitaan, että saatu skeleton ei ole yhdistetty ja se on paksumpi kuin yksi pikseli. Myös se toteuttaa keskiakselin edellytyksen.

9 k A kb (A kb) B S k (A) S (A) 0 1 2 Kuva 3.1. Morfologisen skeletonin saamiseksi suoritetut vaiheet. 3.2. Morfologinen ohennus käyttäen Hit-or-Miss muunnosta Joukon A ohennus rakennealkiolla B määritellään seuraavasti [4, s. 541]: A B=A (A B) = A (A B). (3.4) Joukon A ohentamiseksi symmetrisesti käytetään rakennealkiosarja {B} yhtälön (3.5) mukaan. B = B,B,B,,B, (3.5) missä B on B :n joko 45 tai 90 astetta kierretty versio. Käyttämällä yhtälöä (3.5) ohennusoperaatio määritellään seuraavasti:

10 A B = (A B ) B B. (3.6) Prosessissa ohennetaan A rakennealkiolla B, sitten ohennetaan tulosta rakennealkiolla B ja jatketaan samalla tavalla kunnes A on ohennettu rakennealkiolla B. Sitten toistetaan koko prosessia uudestaan niin monta kertaa kuin ei saada enää muutoksia kuvaan. Jokainen yksilöllinen ohennusoperaatio suoritetaan kaavan (3.4) mukaan. Kuvassa 3.2 on esitetty algoritmin suorituksen vaiheet ja niihin käytetty rakennealkiosarja. Tämä menetelmä takaa että saatu skeleton on yhdistetty eli kuvan topologiset ominaisuudet säilyvät skeletonissa. origo B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 (a) origo (b) A (c) A B 1 (d) A B 2 (e) A B 3 (f) A B 4 (g) A B 5 (h) A B 6 (I) A B 7,8 (j) A B 1,2,3 (k) A B 4,5,6,7,8,1,2,3 (l) Kuva 3.2. Ohennus käyttäen hit-or-miss operaatiota. Kuvassa on esitetty algoritmin vaiheet.

11 Kuvan 3.2 (a)-kohdassa on esitetty käytetyt rakennealkiot ohennukseen ja (b)- kohdassa esitetään ohennettava joukko A. Kuvan (c)-kohdassa ohennetaan kuvaa B :lla ja (d)-(i) kohdat esittävät ohennustulokset muilla rakennealkioilla (ohennuksen tulos B ja B rakennealkioilla on sama). Kuvan (j)-kohdassa kuvaa ohennettiin taas B, B ja B rakennealkioilla. (k)-kohdassa kuvaa ohennettiin toiseksi kertaaksi muilla rakennealkioilla. Kuten havainnoidaan B 4 :n toisen kulun jälkeen ei tapahdu enää muutoksia kuvassa vaikka ohennusoperaatiota suoritetaan sille. Toisin sanoen ohennuksen tulos saatiin B :n toisen kulun jälkeen. Viimeisessä kuvassa ohennettu kuva on muutettu m- connectivity:iin poistamaan monikertaiset reitit kuvasta [Ks. kappale 2.3]. 3.3. Zhang-Suen ohennusalgoritmi Zhang-Suen algoritmi on rinnakkainen ohennusalgoritmi [8]. Algoritmin mukaan poistetaan toistuvasti reunapisteet kuva-alueesta kunnes supistumaton skeleton jää. Kaikki reunapisteet eivät kelpaa poistamiseen, vaan ensin tutkitaan reunapisteen 8-naapurusto ja reunapistettä poistetaan vain, jos 8-naapuruston rakenne toteuttaa tietyn kriteerin. Kuvassa 3.3 on havainnollistettu pisteen p 8-naapurusto. p p p p p p p p p Kuva 3.3. Pisteen p 8-naapurusto. Zhang-Suen algoritmi ohentaa kuvaa 8-yhdistettyyn (8-connected) skeletoniin yhden pikselin paksuudella. Jokaisen algoritmin iteraatioon kuuluu kaksi ali-iteraatiota. Ensimmäisessä ali-iteraatiossa merkitään reunapistettä p poistettavaksi, jos seuraavat ehdot pätevät: (a) 2 N(p) 6 (b) T(p) = 1 (c) p. p. p = 0 (d) p. p. p = 0 (3.7) missä N(p) on p:n 1-arvoisten naapureiden määrä ja T(p) on 0-1 siirtymien määrä järjestetyssä sarjassa p, p,..., p, p, p. Esimerkiksi kuvassa 3.4(a), N(p) = 5 ja T(p) = 3. Siis tässä tapauksessa pikseliä p ei poisteta ensimmäisessä ali-iteraatiossa.

12 (a) (b) (c) (d) Kuva 3.4. Esimerkki tapauksista, joissa reunapistettä p ei poisteta. (a) T(p) = 3, (b) (p) = 1, (c) (p) = 0, (d) (p) = 7. Ehdolla (a) varmistetaan että päätepisteet on säilytetty skeletonissa. Ehto (b) estää sen pisteen poistamista, joka on kahden päätepisteen välissä. Ehdot (c) ja (d) valitsevat kaakkoisreunapisteet ja luoteisnurkkapisteet ensimmäiselle ali-iteraatiolle [8]. Ensimmäisessä ali-iteraatiossa jos ainakin yksi ehdoista (a)-(d) ei toteudu, pisteen arvo ei muutu. Jos kaikki ehdot pätevät pikseliä p merkitään poistettavaksi. Kuitenkaan pikseliä ei poisteta ennen kuin kaikki reunapisteet on tutkittu. Tämä estää datan rakenteen muutoksen algoritmin suorituksen aikana. Sen jälkeen kun kaikki reunapisteet on tutkittu, poistetaan ne pisteet, jotka on merkattu poistettavaksi (muutetaan arvoa nollaksi). Sitten seuraava ali-iteraatio suoritetaan tuloksena saadulle datalle tarkalleen samalla tavalla kuin ensimmäisessä ali-iteraatiossa tehtiin. Toisessa ali-iteraatiossa ehdot (a) ja (b) pysyvät samana, mutta ehdot (c) ja (d) muuttuvat seuraavalla tavalla: (c ) p. p. p = 0 (d ) p. p. p = 0 (3.8) Siis algoritmin jokaiseen iteraatioon kuuluu neljä vaihetta: (1) sovelletaan ensimmäisen ali-iteraation reunapisteisiin ja merkataan poistettavat pisteet, (2) poistetaan merkatut pisteet, (3) sovelletaan toisen ali-iteraation jäljelle jääneille reunapisteille ja merkataan poistettavat pisteet, (4) poistetaan merkatut pisteet. Tämä prosessi toistetaan kunnes ei tapahdu enää muutoksia datalle. Jäljelle jäänyt data esittää kuvan skeletonin. Zhang-Suen algoritmi ohentaa kuvaa yhden pikselin paksuiseen skeletoniin. Päätepisteet säilytetään skeletonissa eli kuvan pituutta ei vähennetä. Algoritmi on myös immuuni reunakohinaan. Kahden pikselin paksuiset diagonaaliset viivat on mahdollista syövyttää liikaa. Lisäksi 2 2 lohkot poistetaan täysin. Tästä ominaisuudesta johtuen kuvan topologiset ominaisuudet voivat muuttua, joten alkuperäinen kuva ei ole muodostettavissa skeletonin perusteella. Zhang-Suen algoritmia on paranneltu sillä tavoin, että tuloksena saatuun skeletoniin jäävät diagonaaliset viivat ja 2 2 lohkot [7]. Matlabista löytyy valmis funktio, jolla ohennetaan kuvaa tällä algoritmilla. Algoritmia suoritetaan seuraavalla tavalla:

13 1. Jaetaan kuvaa kahteen eri alikenttään. Kuvassa 3.5 on havainnollistettu miten kuvaa jaetaan alikenttiin. 2. Ensimmäisessä ali-iteraatiossa poistetaan piste ensimmäisestä alikentästä, jos ehdot (e), (f) ja (g) pätevät. 3. Toisessa ali-iteraatiossa poistetaan piste toisesta alikentästä, jos ehdot (e), (f) ja (g ) pätevät: (e) T(p) = 1 (f) 2 min n (p), n (p) 3, jossa n (p) = p p ja n (p) = p p (g)(p p p ) p = 0 (g ) (p p p ) p = 0 (3.9) 1 2 1 2 1 2... 2 1 2 1 2 1... 1 2 1 2 1 2... 2 1 2 1 2 1......... Kuva 3.5. Alkuperäinen kuva jaettu kahteen alikenttään. Kuva 3.6. Ympyröiden kuvan ohennus Matlabin toteutetulla ohennusalgoritmilla. 3.4. Skeleton etäisyysmuunnoksen avulla Automaattinen kuidun tunnistus on tärkeä työkalu kuidun tutkimiseen ja tekstiilin käsittelyyn. Viime vuosina on kehitetty eri algoritmeja luonnollisen kuidun tunnistukseen. Tässä esitellään lyhyesti algoritmi, jota voidaan käyttää tietynmuotoisen tekokuidun tunnistuksessa. Algoritmin mukaan alkuvaiheessa sovelletaan kuidun kuvalle euklidinen etäisyysmuunnos. Kuten kappaleessa (2.2) mainittiin etäisyysmuunnoksen tuloskuvassa,

14 jokaisella binäärikuvan pikselillä on arvo, joka on yhtä suuri kuin sen etäisyys lähimmästä taustalla olevasta pikselistä. Kuvassa 3.7 on esitetty alkuperäinen kuva ja sen etäisyysmuunnoskartta. Kuva 3.7. Alkuperäinen binäärikuva (vasemmalla) ja sen etäisyysmuunnoskartta (oikealla). Seuraavassa vaiheessa etsitään maksimaaliset ympyrät etäisyysmuunnoskuvasta. Maksimaalisten ympyröiden keskipisteet muodostavat kuvan skeletonin. Tämän tarkoituksen takia vertaillaan kuvapikselin etäisyysmuunnosarvoa sen 3 3 naapuruston arvoihin. Jos ympyrä ei ole minkään sen 3 3 naapurustoympyrän sisällä, se on paikallinen maksimi (Maximal Disk; MD) [8]. Pikselin p naapurit ovat sen 8-naapurusto ja sen etäisyys vaakasuora- ja pystysuoranaapureihin on 1 ja diagonaalisiin naapureihin on 2. Jokaisen kuvapisteen etäisyysmuunnosarvoa verrataan sen naapureiden etäisyysmuunnosarvojen kanssa ja vähennetään siitä kahden pikselin etäisyyttä. Jos p:n etäisyysmuunnosarvo on suurin, niin p on erään maksimaalisen ympyrän keskipiste. Kaikkien paikallisten maksimaalisten ympyröiden keskipisteet eivät kuitenkaan ole globaalisten maksimaalisten ympyröiden (MD) keskipisteitä, koska ympyrä, joka ei ole minkään sen naapurustoympyröiden sisällä voi olla toisen kaukaisempana olevan ympyrän sisällä [8]. Yan Wan et. al. [8] esittivät algoritmin, jolla poimitaan maksimaalisten ympyröiden keskipisteet paikallisten maksimaalisten ympyröiden keskipisteiden avulla. Tämän algoritmin avulla valitaan paikallisten maksimaalisten ympyröiden keskipisteistä vain ne pisteet, jotka ovat globaalisten maksimaalisten ympyröiden keskipisteitä. Liitteessä 1 on kuva, jossa on esitetty skeletonin saamiseksi suoritetut vaiheet. Kuvan a-kohdassa on esitetty kuvan paikallisten maksimaalisten ympyröiden keskipisteet ja b-kohdassa globaalisten maksimaalisten ympyröiden keskipisteet. Kuvasta havaitaan, että globaalisten maksimaalisten ympyröiden keskipisteet eivät ole yhdistetty ja niiden yhdistämiseen käytetään toinen algoritmi, joka on esitetty tarkasti konferenssissa [8]. Kohinaisen reunan tapauksessa kuvan skeleton voi sisältää lyhyitä oksia, jotka eivät kuulu kuidun struktuuriin ja voivat häiritä kuidun tunnistusta. Karsitaan oksat, jotka ovat tiettyä mittaa lyhyempiä sopivalla karsinta-algoritmilla. Liitteessä 2 on

15 esitetty kaksi esimerkkiä, joissa havaitaan algoritmin toteutuksen eri vaiheet ja sen tulokset. Algoritmin saatuun skeletoniin on säilytetty kuidun topologiset ominaisuudet. Myös skeletonin pisteet ovat 8-connected, eli se on yhdistetty. 3.5. Karsinta-algoritmi Melkein kaikilla menetelmillä, joilla saadaan kappaleen skeletonia on oma karsintaalgoritmi. Tässä esitellään eräs algoritmi, joka on perusteltu morfologisiin operaatioihin [4, s. 545]. Tavallinen lähestymistapa käsin kirjoitettujen kirjaimien automaattisessa tunnistuksessa on jokaisen kirjaimen skeletonin analysoiminen. Nämä skeletonit ovat yleensä karakterisoitu oksilla, jotka ovat aiheutettu kirjainta muodostavien epäyhdenmukaisten viivojen eroosion aikana. Esitellään morfologinen tekniikkaa ratkaisemaan tämä ongelma. Oletetaan aluksi, että nämä oksat eivät ylitä tiettyä pikselimäärää. Kuvan 3.8 (a)-kohdassa on esitetty käsin kirjoitetun a kirjaimen skeleton. Kirjaimen vasemmalla oleva oksa on se osa, jota on poistettava. Ongelmaa ratkaistaan poistamalla oksan päätepiste peräkkäisessä prosessissa. Tietysti tämä lyhentää myös skeletonin muut haarat. Tässä muiden rakenteellisten tietojen puutteessa eliminoidaan haarat, jotka ovat kolmen pikselin pituisia tai lyhyempiä. Ohennetaan ensin joukko A rakennealkio-sarjalla {B}, joka on suunniteltu havaitsemaan vain kuvan päätepisteet. Eli X1 = A B, (3.10) missä {B} tarkoittaa kuvan (b)- ja (c)-kohdissa esitetty rakennealkiosarja (Ks. kaava 3.5). Rakennealkiosarja on koostunut kahdesta eri rakenteesta, kukin niistä on kierretty 90, näin ollen saadaan yhteensä kahdeksan alkiota. Rakennealkioiden kuvissa esitetty merkki viittaa don t care tilaan, eli sen alla voi olla 0 tai 1. Soveltamalla yhtälöä (3.10) kolme kertaa joukolle A saadaan joukko X1, joka on esitetty kuvan 3.8 d-kohdassa. Seuraavaksi palautetaan kirjain sen alkuperäiseen muotoon ilman oksia. Saadaksemme tavoitteen ensin muodostetaan joukko X2, joka sisältää kaikki joukon X1 päätepisteet (kuva 3.8(e)): X2 = ( X B ), (3.11) missä B ovat samat rakennealkiot, jotka ovat esitetty kuvan 3.8 (b)- ja(c)-kohdissa. Seuraavaksi dilaatioidaan päätepisteet kolme kertaa käyttäen joukko A erottimena: X3 = ( X2 H ) A, (3.12)

16 missä H on 3 3 rakennealkio, jonka kaikkien alkioiden arvot on 1. Lopulta joukkojen X3 ja X1 unioni tuottaa halutun tuloksen. Kuvan 3.8 (g)-kohdassa on esitetty algoritmin tulos, jossa on esitetty alkuperäinen kirjain, josta on poistettu vasemmalla oleva oksa. (a) Alkuperäinen kuva (b)b i, i = 1,2,3,4 (c) B i, i = 5,6,7,8 (d) (e) (f) (g) Kuva 3.8. Karsinta-algoritmin vaiheet.

17 4. JOHTOPÄÄTÖKSET Kuvan skeletonin määrittämiseksi mainituista menetelmistä keskiakselimuunnos on havaittu laskennallisesti raskaaksi, mutta se on yksikäsitteinen ja sitä hyödynnetään kuvan kompressiossa. Zhang-Suen algoritmi ohentaa kuvaa yhden pikselin paksuiseen skeletoniin, mutta alkuperäinen kuva ei ole muodostettavissa algoritmilla saadun skeletonin avulla, koska kuvan topologiset ominaisuudet eivät säily skeletonissa. Tämä algoritmi on havaittu tehokkaammaksi kuin keskiakselimuunnosalgoritmit. Tämä osoittautui myös ajamalla Matlabin valmiit funktiot keskiakselimuunnokselle ja ohennusalgoritmille. Tämän testin mukaan havaittiin että 256 256 kokoiselle kuvalle skeletonin laskeminen keskiakselimuunnosmenetelmällä kestää 1,5269 sekuntia ja ohennusalgoritmilla 0,8346 sekuntia. Etäisyysmuunnoksen avulla saadussa skeletonissa on samat topologiset ominaisuudet kuin alkuperäisessä kuvassa. Myös tällä menetelmällä saatu skeleton on yhdistetty. Tätä algoritmia käytetään tekokuidun tunnistuksessa ja kuidun reunoissa olevien häiriöiden johdosta tuotetut oksat poistetaan karsinta-algoritmilla. Siten tuloskuva on robusti muodon tunnistukseen. Morfologisen skeletonin (eroosio- ja avausoperaatioilla) huonona puolena on se, että se ei ole yhdistetty ja on paksumpi kuin yksi pikseli. Näitä huonoja puolia voidaan poistaa käyttämällä ohennus hit-or-miss operaatiolla. Eli tällä algoritmilla saatu tulos on yhdistetty ja yhden pikselin paksuinen. Näin ollen päätellään, että jokainen menetelmä voisi olla sopiva tiettyyn sovellukseen riippuen saadun skeletonin ominaisuuksista.

18 LÄHTEET [1] Changxian, S. & Yulong, M. Morphological Thinning Based on Image s Edges. IEEE International Conference on Communication Technology. Vol. 1, October 1998. [2] Fisher, R., Perkins, S., Walker, A., Wolfart, E. Image Processing Learning Resources. [WWW]. [Viitattu 7.4.2010]. Saatavissa: http://homepages.inf.ed.ac.uk/rbf/hipr2/skeleton.htm [3] Fisher, R., Perkins, S., Walker, A. & Wolfart, E. Image Processing Learning Resources. [WWW]. [Viitattu 24.4.2010]. Saatavissa: http://homepages.inf.ed.ac.uk/rbf/hipr2/strctel.htm [4] Gonzalez, R. C. & Woods, R. E. Digital Image Processing. 2nd edition. 791 p. India 2003, Pearson Education. [5] Kong, T.Y. & Rosenfeld, A. Topological Algorithms for Digital Image Processing. Vol.19, pp. 1-292, Elsevier Science 1996. [6] Kresch, R. & Malah, D. Skeleton-Based Morphological Coding of Binary Images. IEEE Transactions on Image Processing, Vol. 7, No. 10, pp.1387-1399, October 1998. [7] Lam, L., Lee, S.-W & Suen, C.Y. Thinning Methodologies-A Comprehensive Survey. IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 14, No. 9, pp. 869-885, September 1992. [8] Ritter, G. X. & Wilson, J. N. Handbook of Computer Vision Algorithms in Image Algebra: Thinning and skeletonization. CRC Press, 2001. [9] Wan, Y., Yao, L., Xu, B. & Zeng, P. A Distance Map Based Skeletonization Algorithm and its Application in Fiber Recognition. IEEE Conferences. pp. 1769-1774, July 2008. [10] Wikipedia. [WWW]. [Viitattu 5.04.2010]. Saatavissa: http://en.wikipedia.org/wiki/morphological_skeleton [11] [WWW]. [Viitattu 3.04.2010]. Saatavissa: http://www.cs.uta.fi/kuva/luennot/kuvanprosessointi8.pdf

19 LIITTEET (a) (b) (c) Liite 1. Kappaleessa 3.4 esitetyn algoritmin suoritusvaiheet (kuva lähteestä [9]). (a) Kuvan paikallisten maksimaalisten ympyröiden keskipisteet, (b) globaalisten maksimaalisten ympyröiden keskipisteet, (c) kuvan skeleton [8]. Liite 2. Tähti- ja trilobal muotoisten kuitujen skeleton käyttäen kappaleessa 3.4 esitettyä menetelmää (kuva lähteestä [9]). (a) Binäärikuva, (b) MD keskipisteet, (c) MD keskipisteet ovat yhdistetty, (d) lyhyet oksat ovat karsittu skeletonista karsinta-algoritmilla.