Bináris képek feldolgozása. Digitális képelemzés alapvető algoritmusai. Bináris képek. Bináris képfeldolgozás témái. Csetverikov Dmitrij

Hasonló dokumentumok
KÉPFELDOLGOZÁS. 10. gyakorlat: Morfológiai műveletek, alakjellemzők

11. Alakzatjellemzők. Kató Zoltán. Képfeldolgozás és Számítógépes Grafika tanszék SZTE (

Kétdimenziós alakelemzés. Digitális képelemzés alapvető algoritmusai. Alakelemzés feladatai. Kétdimenziós alakelemzés tárgyai. Csetverikov Dmitrij

7. Régió alapú szegmentálás

Debrecen. Bevezetés A digitális képfeldolgozás közel hetven éves múlttal rendelkezik. A kezdeti problémák

Képszűrés II. Digitális képelemzés alapvető algoritmusai. Laplace-operátor és approximációja. Laplace-szűrő és átlagolás. Csetverikov Dmitrij

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Diszkrét matematika 2.

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Diszkrét matematika 2.C szakirány

Közösség detektálás gráfokban

1. tétel - Gráfok alapfogalmai

Adaptív dinamikus szegmentálás idősorok indexeléséhez

A félév során előkerülő témakörök

Diszkrét matematika 1. estis képzés

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Morfológia. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia Intézet

A valós számok halmaza

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Térinformatikai adatszerkezetek

2018, Diszkrét matematika

Lényege: valamilyen szempont szerint homogén csoportok képzése a pixelekből. Amit már ismerünk:

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

III. Gráfok. 1. Irányítatlan gráfok:

Az objektum leírására szolgálnak. Mire jók? Sokszor maga a jellemző az érdekes: Tömörítés. Objektumok csoportosítására

Számítógépes Grafika SZIE YMÉK

A médiatechnológia alapjai

Diszkrét matematika 2.

Diszkrét matematika 1. estis képzés

2. ELŐADÁS. Transzformációk Egyszerű alakzatok

Rekurzió. Dr. Iványi Péter

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Diszkrét matematika 2. estis képzés

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

Nagy Gábor compalg.inf.elte.hu/ nagy

Diszkrét matematika 2.C szakirány

Loványi István vizsgakérdései kidolgozva (béta)

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Diszkrét matematika 2.C szakirány

Térinformatikai algoritmusok Elemi algoritmusok

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

(Solid modeling, Geometric modeling) Testmodell: egy létező vagy elképzelt objektum digitális reprezentációja.

Diszkrét matematika 2. estis képzés

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Geometria. a. Alapfogalmak: pont, egyenes, vonal, sík, tér (Az alapfogalamakat nem definiáljuk)

10. előadás Speciális többágú fák

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Algoritmuselmélet 12. előadás

Térinformatikai algoritmusok Elemi algoritmusok

17. előadás: Vektorok a térben

Diszkrét matematika 2. estis képzés

Algoritmusok és adatszerkezetek gyakorlat 07

Nem roncsoló tesztelés diszkrét tomográfiával

Shannon és Huffman kód konstrukció tetszőleges. véges test felett

Gépi tanulás a gyakorlatban. Bevezetés

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

Morfológia. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia Intézet

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Struktúra nélküli adatszerkezetek

2014. szeptember 24. és 26. Dr. Vincze Szilvia

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Ujjszámlálás Matlab segítségével

Programozási segédlet

NT Matematika 9. (Heuréka) Tanmenetjavaslat

Területi primitívek: Zárt görbék által határolt területek (pl. kör, ellipszis, poligon) b) Minden belső pont kirajzolásával (kitöltött)

Bevezetés a programozásba. 5. Előadás: Tömbök

Számításelmélet. Második előadás

Adatelemzés és adatbányászat MSc

Topológia-meg rz képm veletek és a vékonyítás új módszerei

Termék modell. Definíció:

Minták automatikus osztályba sorolása a mintát leíró jellemzők alapján. Típusok: felügyelt és felügyelet nélküli tanuló eljárások

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

20. tétel A kör és a parabola a koordinátasíkon, egyenessel való kölcsönös helyzetük. Másodfokú egyenlőtlenségek.

Képrekonstrukció 9. előadás

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

15. A VERSENYRENDEZÉS

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Formális nyelvek - 9.

3D Számítógépes Geometria II.

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Régió alapú szegmentálás. Digitális képelemzés alapvető algoritmusai. 2. példa: Elfogadható eredmények. 1. példa: Jó eredmények. Csetverikov Dmitrij

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

Készítette:

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Mérési struktúrák

Valószínűségi változók. Várható érték és szórás

Példák jellemzőkre: - minden pixelérték egy jellemző pl. neurális hálózat esetében csak kis képekre, nem invariáns sem a megvilágításra, sem a geom.

Diszkrét matematika 2.C szakirány

Átírás:

Bináris képek feldolgozása Digitális képelemzés alapvető algoritmusai Csetverikov Dmitrij 1 Alapok Még egy kis digitális geometria Futam-hossz kód és komponens-analízis Eötvös Lóránd Egyetem, Budapest csetverikov@sztaki.hu http://vision.sztaki.hu Informatikai Kar 2 Középvonal 3 Távolság-transzformáció Távolság-transzformáció és középvonal 4 Vékonyítás és váz Bináris képek Bináris képfeldolgozás témái Két osztályba soroltuk a pixeleket: objektum (figure) háttér (ground, or background) A továbbiakban az algoritmusokban objektum értéke 1 háttér értéke 0 Az illusztrációkban objektum fekete háttér fehér Bináris (kétszintű) képeket kétféleképpen kaptunk küszöböléssel összefüggősséget nem vizsgáltunk régió alapú szegmentálással összefüggő régiók Adatstruktúrák futam-hossz kód (run-length code) lánc-kód (chain code) Összefüggősség-elemzés összefüggő objektum-régiók keresése tipikusan, küszöbölés után Régiók leírása váz morfológia alak

Összefüggősség objektumra és háttérre Lyukok és határok p S q S 4 connected set 8 connected set are p and q connected?? S hole S S set 4 border 8 border interior pixel Ellentmondást kapunk, ha ugyanazt az összefüggősséget alkalmazzuk S objektumra és S háttérre is. S és S pixelpárjai "kereszbe" összekötve Megoldás: más összefüggősség a két halmazra ha 8-as S-re, akkor 4-es S-re ha 4-es S-re, akkor 8-as S-re Lyuk az S halmazban az S által körülvett S-komponens Az S határpixele olyan S-pixel, amelynek S-beli szomszédja van az S-re alkalmazott összefüggősség értelmében Az S belső pixele minden nem határpixel Összefüggő komponensek Futam-hossz kód Az "összekötve" reláció ( ) reflexív: p p szimmetrikus: ha p q, akkor q p tranzitív: ha p q és q r, akkor p r x,y label S L 1 label L 2 Az "összekötve" reláció ekvivalencia-reláció Bináris képet összefüggő komponensekre bont. maximális összefüggő halmazokra Összefüggő komponens-analízis: összefüggő komponensek keresése Bináris képet vízszintes futamokkal reprezentálunk. futam: objektum-pixelek maximális összefűggő sorozata angolul: run-length code, RLC Egy R futamot az alábbiakkal kódolunk: x, y az első pixel koordinátái S a futam hossza, pixelben L a futam címkéje: R az L-ik komponenshez tartózik

Futam-hossz kódolás Az egyszerű rekurzív algoritmus vázlata Címke nélküli futam-hossz kód a bináris kép letapogatásával nyerhető Címkézett futam-hossz kód komponens-analízis külön művelet címke nélküli RLC alapján Egy kép simán visszaállítható RLC-jéből RLC vesztesség-mentes kódolás Két komponens-analízis algoritmust mutatunk be: 1 képen működő, egyszerű rekurzív algoritmust nem mindig hatékony 2 futam-hossz kóddal operáló, bonyolultabb algoritmust hatékony Képmátrixban megkeressük a következő be nem járt pontot. Rekurzív függvényhívással bejárjuk a szomszédokat. ezzel bejárjuk a kiinduló pont összefüggő komponensét A bejárt pixelekhez hozzárendeljuk az aktuális cimkét. Növeljük a cimkét és megismételjük az eljárást. Az egyszerű algoritmus tulajdonságai RLC alapú összefüggő komponens-analízis A programkód nagyon egyszerű. néhány sor ciklussal és rekurzív függvényhívással Nagy komponensek esetén nem hatékony. mély rekurzió lassú el is szállhat, ha túlcsordul a stack Nem lehet kontrollálni a komponens-bejárás sorrendjét. Csak akkor használjuk, amikor a komponensek kicsik. Bemenet: címke nélküli RLC Kimenet: komponens sorszámával cimkézett RLC Tipikus algoritmus címke-ekvivalencia táblát használ két menetben működik Az első menet három alapvető műveletet tartalmaz: új címke megnyítása létező címke továbbterjesztése ekvivalens címkék egyesítése, ekvivalencia-tábla kitöltése A második menetben az ekvivalencia-tábla alapján módosítjuk a címkéket. folytonos nővekvő címkesort kapunk

Az első menete áttekintése Az első menet inicializálása open L 1 L 2 propagate L 3 open open 8 connected runs Választunk objektum-összefüggősséget. gyakran a 8-összefüggősséget választjuk objektumra ezzel objektumot "preferálunk" háttérrel szemben Inicializáljuk a címke-ekvivalencia táblát: alapvető műveletek merge 4 connected runs futamok összefüggése E ii = 1 E ij = 0, i j A három alapvető művelet: új címke megnyítása (open) létező címke továbbterjesztése (propagate) ekvivalens címkék egyesítése (merge) Inicializáljuk a címke-számlálót: L = 0 Új, címke nélküli futam kezelése 1/2 Új, címke nélküli futam kezelése 2/2 Amikor egy új, címke nélküli R futamot találunk, az előző sorban vele összefüggő futamokat keresünk. Ha nincs összefüggő futam, új címkét nyítunk. hozzárendeljük L-t az R-hez növeljük L-t Ha egy összefüggő futam van, továbbterjesztjuk címkéjét. az összefüggő futam címkéje L L hozzárendeljük L -t az R-hez Ha több, R-rel összefüggő futam van, egyesítjuk az ekvivalens címkéket. az összefüggő futamok címkéi L k L kiválasztjuk a legkisebbet: L m < L k, k m hozzárendeljük L m-t az R-hez kitöltjük az ekvivalencia-táblát: minden k-ra E km = 1

Középvonal definíciója folytonos esetben Egyszerű alakzatok középvonala Egy alakzat középvonala az alábbi feltételeket teljesítő p(x, y) pontok halmaza: p(x, y) az alakzat egyik belső pontja p(x, y) egyenlő távolságon van két vagy több legközelebbi kontúrponttól A középvonal tükrözi az alakzat struktúráját. A középvonalat előállító műveletet középvonal-transzformációnak hívják. Angolul: medial axis, MA medial axis transform, MAT Egy lemez középvonala a lemez középpontja. Minden szögfelező a középvonal ága. Középvonal tulajdonságai Alakzat visszaállítása középvonalából Egy folytonos alakzat középvonala mindig összefüggő. egy diszkrét alakzat középvonala nem mindig összefüggő Egy alakzat visszaállítható középvonalából ha tudjuk az MA minden pontja és a legközelebbi kontúrpont közti távolságot egyébként, nem A középvonal egy alakzat kompakt és hatékony reprezentációja ha az alakzat hosszúkás részekből áll pl. betű, kromoszóma A középvonal torzítás- és zaj-érzékeny. kis alakzat-torzításra nagy középvonal-változás MA a beírt körök középpontjainak halmaza. Az alakzat visszaállítható, ha ismerjuk a körök sugarát. az összes beírt kör konvex burka vagy egyszerűen a lemezek uniója

Középvonal torzítás-érzékenysége DT-definíció folytonos esetre Távolság-transzformáció angolul: distance transform, DT Bemenet: egy vagy több alakzat Minden sarokból indul egy középvonal ág. csatlakozik a többi ághoz, mert folytonos MA összefüggő MA struktúrája függ a torzítás irányától Középvonal-transzformációt regularizálni kell. a legegyszerűbb megoldás a kontúrsimítás hatékonysága azonban nem biztos Kimenet: távolság minden belső pont és a legközelebbi kontúrpont között külső pontokra és kontúrpontokra nulla Euklideszi távolságot használunk. DT-definíció diszkréts esetre DT érzékeny kis torzításra Bemenet: egy vagy több alakzatot tartalmazó bináris kép Kimenet: távolság minden objektumpixel és a legközelebbi háttérpixel között háttérpixelekre 0, határpixelekre 1 vagy 2 Eredményképekben a távolságot intenzitással kódoljuk. nagyobb távolság vilagosabb pixel Euklideszi távolság diszkrét közelítését használjuk. pontosabb közelítés pontosabb, de lassúbb eredmény téglalap hibás téglalap távolság-transzformáció távolság-transzformáció Távolság-transzformáció továbbterjeszti a torzítást a két DT lényegesen különbözik

DT függ a távolság approximációjától A DT és a MAT közötti kapcsolat lemez DT finom approx. DT durva approx. téglalap, DT téglalap, MAT Az Euklideszi távolság finomabb approximációja nagyobb maszkot használ pontosabb eredményt nyújt lassúbb A DT gerincei a MAT ágai DT-gerinc a lokálisan legbelsőbb pontok sorozata keressünk DT-gerinceket, ezekből állítsünk össze MA-t MA meghatározása távolság-transzformációval A DT-MAT algoritmus összefoglalója Olyan egyszerűsített algoritmust adunk, amely 4-összefüggést használ objektum-pixelekre kap egy u(x, y) bináris képet kiszámítja az u DT (x, y) távolság-transzformációt u DT (x, y)-ből meghatározza az u MA (x, y) középvonalat Megjegyzések u DT (x, y) az (x, y) objektumpixel és a legközelebbi háttérpixel közti távolság u MA (x, y) egy bináris kép (x, y; i, j) a city-block távolság (x, y) és (i, j) között a gyakorlatban finomabb közelítést alkalmaznak, de az elv ugyanaz Algoritmus: Egyszerű diszkrét DT és MAT 1 DT inicializálása: u 0 (x, y) = u(x, y) 2 DT meghatározása minden k = 1, 2,...-ra rekurzívan kiszámítjuk a DT-t: u k (x, y) = u 0 (x, y) + min {u k 1 (i, j);(i, j) : (x, y; i, j) 1)} i,j megállunk, ha nincs több változás: u k (x, y) = u k 1 (x, y) minden (x, y)-ra az eredmény: u DT (x, y) = u k (x, y) 3 u MA (x, y) középvonal meghatározása DT-ből: {(x, y) : u DT (x, y) u DT (i, j); (x, y; i, j) 1}

Numerikus példa DT-MAT-ra Hámozás és kiterjesztés 1 2 2 2 2 2 1 1 2 2 2 2 2 1 1 2 2 2 2 2 1 1 2 2 2 2 2 1 1 2 3 3 3 2 1 1 2 2 2 2 2 1 u 0 (x, y) u 1 (x, y) u 2 (x, y) 1 1 1 2 2 2 2 2 1 2 2 1 2 3 3 3 2 1 3 3 3 1 2 2 2 2 2 1 2 2 1 1 u DT = u 3 = u 2 u DT maximumai u MA középvonal DT megáll, amikor k eléri az alakzat max. mérétének felét. "Megfordítással" az alakzat visszaállítható u DT maximumaiból. S ( 1) az S halmaz hámozása az S határának törlése S ( n) az S halmaz n-szeri hámozása a hámozás n-szeri megismétlése S (1) az S halmaz kiterjesztése felcseréljük S és S összefüggősségét hámozzuk az S halmazt S (n) az S halmaz n-szeri kiterjesztése a kiterjesztés n-szeri megismétlése Angolul: (n-step) shrinking (n-step) expanding Numerikus példák hámozásra és kiterjesztésre A vékonyítás és a váz definíciója shrink 8 connected set shrink 4 connected set Hámozás nem őrzi meg az összefüggősséget. eltűntethet objektumokat expand expand Vékonyítás: topológiát megőrző iteratív hámozás angolul: thinning Váz: a vékonyítás eredménye angolul: skeleton Definíció: Az S halmazt iteratív hámozással vázzá vékonyítjuk úgy, hogy megőrizzük az S összefüggősségét nem törlünk végpontokat 4 connected set 8 connected set

Vékonyítás példája A váz tulajdonságai bináris kép váz Definíció szerint a váz összefüggő halmaz. A középvonalhoz hasonlóan több ágból áll. követi hosszsúkás részekből álló objektum alakját más esetekben objektum és váza közti kapcsolat nem ennyire egyszerű Általában hasonlít a középvonalra. emiatt gyakran nem tesznek külonbséget MA és váz között a középvonalat is "váznak" nevezik vázszerű reprezentációról beszélnek, amely MAT-tal és vékonyítással is nyerhető De lehet egészen más is, mint a középvonal. pl. egy téglalap váza és középvonala Vékonyító algoritmus 8-összefüggő vázra Az algoritmus összefoglalója Tekintsünk egy p 1 pontot és 3 3-as környezetét. Legyen a háttér értéke 0, objektumé 1. Legyen TR(p 1 ) a 0 1 átmenetek száma a {p 2, p 3, p 4, p 5, p 6, p 7, p 8, p 9, p 2 } sorozatban. körbejárjuk a p 1 pontot megszámoljuk az átmeneteket Legyen NZ(p 1 ) a p 1 pont 1-es szomszédainak száma. p 3 p 2 p 9 p 4 p 1 p 8 p 5 p 6 p 7 p 1 pont és környezete Algoritmus: Vékonyítás 1 Az u 1 (x, y) és u 2 (x, y) segédképeket inicializáljuk az u 0 (x, y) bemeneti képpel. 2 Letapogatjuk u 1 -t, pontokat törlünk u 2 -ben. Akkor törlunk egy p 1 = 1 pontot, ha egyszerre teljesül 2 NZ(p 1 ) 6 (1) TR(p 1 ) = 1 (2) p 2 p 4 p 8 = 0 vagy TR(p 2 ) 1 (3) p 2 p 4 p 6 = 0 vagy TR(p 4 ) 1 (4) 3 Ha végig mentünk u 1 -n és nem volt törlés, megállunk. egyébként, másolunk u 1 = u 2 és a 2.lépésre ugrunk

Három példa, amikor p 1 = 1 nem törölhető Megjegyzések a vékonyító algoritmushoz 1 1 0 1 p 1 1 0 0 0 0 0 0 1 p 1 0 0 0 0 1 0 1 0 p 1 0 1 1 1 (a) (b) (c) (a) p 1 törlése kettészakíthat egy régiót. (b) p 1 törlése lerövidíthet egy vonalvéget. (c) 2 NZ(p 1 ) 6, (3, 4) is teljesül, de p 1 mégsem törölhető mert TR(p 1 ) = 3 1 Pixel körbejárása és az átmenetek számolása egyébként is hasznos művelet. Vékonyított képek elemzésére is alkalmazzák. vonal-végpontok keresésére vonal-kereszteződések keresésére, stb. Az algoritmus igazából nem 3 3-as, hanem 4 4-es ablakot használ. Mert körbejárja p 2, p 4 -t, amikor TR(p 2 ), TR(p 4 )-t számolja. p 3 p 2 p 9 p 4 p 1 p 8 p 5 p 6 p 7 A vékonyító algoritmushoz aszimmetriája Kiszámítja TR(p 2 )-t és TR(p 4 )-t. De TR(p 6 )-t és TR(p 8 )-t nem számítja ki. lásd (3, 4) p 3 p 2 p 9 p 4 p 1 p 8 p 5 p 6 p 7 Az aszimmetria révén egypixelnyi vastagságú vázat kapunk páras vastagságú vonalak esetén is. félpixelnyi eltolás lehet az "igazi" vázhoz képest Mellékhatás: bizonyos vonalak teljesen eltűnhetnek később erre példát adunk a gyakorlatban ez nagyon ritkán fordul elő