Pilditöötluse ja kujundituvastuse alused...Kärpimine (pruning) Mõned operatsioonid nagu...
Transcript of Pilditöötluse ja kujundituvastuse alused...Kärpimine (pruning) Mõned operatsioonid nagu...
Pilditöötluse ja kujundituvastuse alused
Morfoloogiline pilditöötlus
Erik Ilbis Raimond Tunnel
Hulgateoreetilisi tehteid
Morfoloogias defineeritakse veel kaks tehet:
• Nihe punkti z võrra.
• Reflektsioon (alguspunkti suhtes)
Morfoloogilistest operatsioonidest
• Toimuvad kahe elemendi vahel (originaalpilt + struktureerimiselement / kernel)
• Mõlemad elemendid kuuluvad vaadeldavasse ruumi (näiteks binaarpiltide hulk)
• Tulemus kuulub ka sinna ruumi
Näiteid struktureerimiselementidest (kernelistest)
Laiendamine (dilation)
B võib olla näiteks:
Selliste punktide z hulk, kuhu nihutatud B katab vähemalt ühe A punkti.
B on tavaliselt sümmeetriline oma keskpunkti suhtes, seega B reflektsioon on B ise.
Erodeerimine/kulutamine (erosion)
Selliste punktide z hulk, kuhu nihutatud B sisaldub täielikult A-s.
B-d võivad olla samad, mis laiendamise korral.
Laiendamine ja erosioon on duaalsed operatsioonid. Kehtib:
Morfoloogiline avand (opening)
Avand: • silub objekti kontuuri • elimineerib kitsad sillad kahe osa vahel • elimineerib väljaulatuvad mügarikud
Erosioon, millele järgneb laiendamine sama struktureerimiselemendiga.
Morfoloogiline sulund (closing)
Laiendamine, millele järgneb erodeerimine sama struktureerimiselemendiga.
Sulund: • silub objekti kontuuri • ühendab väiksed tühimikud kahe objekti vahel • täidab väiksed tühimikud objekti sees
Avand ja sulund on duaalsed, kehtib:
Avand ja sulund Avand
Sulund
Avand ja sulund
Originaalpilt
Laiend
Sulund
Pihtas-möödas transformatsioon? (hit-or-miss transformation)
B - Otsitav element X ja tema taust/ümbrus. W - Otsitav element X koos ümbrusega
Vaatame veidi lähemalt mõlemalt ühisosa poolt: A erosioon (kulutus) X-ga annab meile kõik punktid A-s, kuhu X tervenisti ära mahuks.
Pihtas-möödas transformatsioon? (hit-or-miss transformation)
Teine pool leiab meile kõik punktid, kuhu X-i ümbrus ära mahuks:
Tulemus (ühisosa):
Piirjoone eraldamine (boundary extraction) B
Leiab binaarpildil A olevate objektide piirjooned.
Kasutatakse ka näiteks 5x5 struktureerimiselementi, mille korral piirjooned tulevad 2-3 punkti laiused.
Juhul, kui teatud nihete korral mingi osa struktureerimiselemendist jääb pildist A väljapoole, siis eeldatakse, et seal asuvad 0-id.
Regiooni/ala täitmine (region filling) B
Eeldame, et meil on mingi objekti ühendatud piirjoon. Piirjoon koosneb ühtedest ja selle sisu nullidest. Ühendatuks loeme vertikaalis, horisontaalis või ka diagonaalis kokkupuutuvaid punkte.
Teame ka punkti p selle piirjoone sees.
Järgnev algoritm annab meile objekti täite:
Suurendame k-d niikaua kuni:
Tulemus on objekti täide. Võttes ühendi piirjoonega saame täidetud objekti.
Sidususkomponentide väljatoomine (extraction of connected components)
B
Võimaldab üle lugeda või hinnata sidusa komponendi punktide arvu.
Analoogne regiooni täitmise algoritmiga: • teame punkti p objekti seest • algoritm lõppeb, kui resultaat enam
samme tehes ei muutu
Originaal Lävend (threshold) Kulutatud (erode)
Resultaat
Kumerhulga kest/kate (convex hull)
Kumerhulk - hulk, kus iga kahe elemendi (punkti) vahel on sirgjoone segment (hulgas sisalduv sirgjoon).
Hulga A kumerhulga kest - vähim kumerhulk, mis sisaldab endas hulka A.
B1
B2
B3
B4
Algoritm: Teeme hulgaga A neli erinevat töötlust. Iga töötluse tulemus olgu Di (i = 1, 2, 3, 4). Hulga A kumerhulga kest saadakse Di-de ühendina.
Kui Xik=Xi
(k-1), siis Di=Xik ja k=0, i++
Kumerhulga kest/kate (convex hull)
Antud algoritm võib leida suurema kumerhulga kui vaja. Selle lahendamiseks võib ära lõigata leitud kumerhulga need osad, mis ületavad esialgse objekti A mõõtmed.
Hõrendamine (thinning) B1
B3
B2
B5
B6
B7
B8 B4
Ühe struktureerimiselemendiga
Struktureerimiselementide hulgaga
P-m (hit-or-miss) transformatsiooni kasutatakse siin ainult elemendi enda sobitamisel A-sse. Elemendi ümbrusi ei võrrelda.
Paksendamine (thickening) B1 B5
B3
B4 B8
B7
B6 B2
Ühe struktureerimiselemendiga
Struktureerimiselementide hulgaga
Analoogne hõrendamisega, kuid hulgateoreetilise vahe asemel võetakse ühend. Struktureerimiselementides on nullid ja ühed vahetatud.
Praktikas kasutatakse ka algoritmi, kus hõrendatakse vastava objekti tausta ja võetakse täiend.
Skelett (skeleton)
Skeletti saab väljendada erosiooni ja sulundi abil
- k järjestikkust erosiooni elemendiga B
K on maksimaalne erosioonide arv, mil pilt A ei erodeeru tühjaks pildiks.
Skelett (skeleton)
Erosioonide ja sulundiga leitud skelett ei pruugi olla: • minimaalselt erodeerunud • võimalikult hõre (thin) • ühendatud (connected)
Nende omaduste täitmiseks on tavaliselt vaja heuristilisi täpsustusi algoritmis.
Skeleti põhjal on võimalik taastada ka esialgne pilt. Kasutades igal erosiooni sammul leitud skeleti alamhulki.
k - mitmendat erosiooni sammu me vaatame (laiendamine toimub sama palju kordi kui erodeeriti) K - mitu erosiooni sammu kokku tehti
Skelett (skeleton)
Kärpimine (pruning)
Mõned operatsioonid nagu hõrendamine (thinning) või skeleti leidmine võivad jätta pildile parasiit-elemente (müra). Samuti võib juhtuda, et mõnest andurist tulnud pilt sisaldab elemente, mis pildi juurde ei kuulu ja takistavad meil seda analüüsimast.
Seetõttu on meie eesmärk eemaldada parasiit-elemendid ja selle juures võimalikult vähe kahjustada meile huvi pakkuvat regiooni.
B1
B4
B3
B2
B5
B6
B7
B8
Otspunktide leidmise struktureerimis- elemendid
Oletame, et eesmärk on elimineerida mingi ühendatud joone pealt välja ulatuv haru, mida ei tohiks olla. Juhul, kui see haru ei ole joone otspunktidele liiga lähedal, siis me saame seda teha.
Kärpimine (pruning)
Esimese sammuna hõrendame (thinning) pilti joone otspunktide tuvastamise elementidega. Tehes seda kolm korda, saame lahti tollest kolme punkti pikkusest parasiit-harust.
Kärpimine (pruning)
Kahjuks kadus ära ka suur osa meile vajalikust informatsioonist. Selle taastamiseks leiame järelejäänud joone otspunktid kasutades juba tuntud otspunktide leidmise elemente.
Seejärel laiendame X2-te ühtedest koosneva 3x3 elemendiga C kolm korda ja piirame tulemust esialgse kujundiga A.
C
Kärpimine (pruning)
Mõnikord võib juhtuda, et parasiit-komponedid püütakse uuesti üles laiendamise käigus, sest needki on A elemendid. Selle probleemi lahendamiseks on olemas ka keerulisemaid algoritme. Vaadeldud algoritmi mõte on selles, et teatud asju saab parandada rakendades lihtsalt järjest morfoloogilisi operatsioone.
Originaal Kärbitud tulemus
Põhilised struktureerimiselementide tüübid (kõiki kasutati siin mingite operatsioonide juures)
Paksendamine (thickening) kasutas üleval olevate täiendeid.
Otspunktide leidmise elemendid
Mustvalgete (grayscale) piltide operatsioonid Vaatleme pilte kui funktsioone
G = [0;255] tavaliselt
Juhul, kui tehteid tehes (+, -) läheb tulemus hulkade piiridest välja, siis võtame lähima elemendi, mis vastavasse hulka kuulub.
Laiendamine (dilate)
(s, t) - punkt, millel me funktsiooni rakendame x, y - muutujad Df - pildi f määramispiirkond ( ) Db - struktureerimiselemendi/-pildi määramispiirkond ( )
Paneb punkti (s, t) maksimaalse halltooni väärtuse, mis on võimalik saada originaalpildi f ja struktureerimispildi b kattuvate punktide halltoone liites.
Erodeerimine (erosion)
Analoogne laiendamisega (dilate), kuid summa asemel on vahe ning võetakse miinimum.
Näide ühemõõtmelisel juhul
Avand (opening) ja sulund (closing)
Defineeritud samamoodi nagu binaarpiltide korral.
Kehtib duaalsus.
Ühemõõtmelisel juhul:
• Avand silub graafikut allapoole
• Sulund silub graafikut ülespoole
Veel morfoloogilisi mustvalgete piltide operatsioone
• Morfoloogiline silumine (smoothing)
• Morfoloogiline gradient
• Kõvakübara transformatsioon (top hat transformation)
• Textural segmentation
• Granulometry
Slaidide tegemisel kasutatud tarkvara:
• Google Docs http://docs.google.com
• Corel Paint Shop Pro XI http://apps.corel.com/lp/psppxi/5658/index.html
• Online LaTex Equation Editor http://www.codecogs.com/latex/eqneditor.php
Pildid ja materjal raamatust Digital Image Processing, Second Edition Gonzalez, Woods; 2002 http://www.imageprocessingplace.com/DIP-2E/dip2e_main_page.htm