Topologická kostra. Medial Axis. Straight Skeleton.

Podobné dokumenty
Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Geometrické vyhledání.

Algoritmizace prostorových úloh

Úvod do výpočetní geometrie. Základní vztahy.

Dynamické datové struktury III.

Úvod do mobilní robotiky AIL028

ÚLOHY S POLYGONEM. Polygon řetězec úseček, poslední bod je totožný s prvním. 6 bodů: X1, Y1 až X6,Y6 Y1=X6, Y1=Y6 STANOVENÍ PLOCHY JEDNOHO POLYGONU

GIS Geografické informační systémy

Dynamické datové struktury I.

Triangulace. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Geometrické vyhledávání

Kružnice, úhly příslušné k oblouku kružnice

Konvexní obálka množiny bodů.

Zobrazování těles. problematika geometrického modelování. základní typy modelů. datové reprezentace modelů základní metody geometrického modelování

Matematická morfologie

Dynamické datové struktury IV.

Vzorce počítačové grafiky

4. Digitální model terénu.

Operace s uzavřenými oblastmi v GIS

5. P L A N I M E T R I E

INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA

GIS Geografické informační systémy

VE 2D A 3D. Radek Výrut. Abstrakt Tento článek obsahuje postupy pro výpočet Minkowského sumy dvou množin v rovině a pro výpočet Minkowského sumy

P L A N I M E T R I E

od zadaného bodu, vzdálenost. Bod je střed, je poloměr kružnice. Délka spojnice dvou bodů kružnice, která prochází středem

Rozvinutelné plochy. tvoří jednoparametrickou soustavu rovin a tedy obaluje rozvinutelnou plochu Φ. Necht jsou

Omezíme se jen na lomené čáry, jejichž nesousední strany nemají společný bod. Jestliže A 0 = A n (pro n 2), nazývá se lomená čára uzavřená.

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

KMA/GPM Barycentrické souřadnice a

Semestrální práce z předmětu KMA/MM. Voroneho diagramy

Elementární plochy-základní pojmy

ZÁKLADNÍ PLANIMETRICKÉ POJMY

Generalizace. Přednáška z předmětu Tematická kartografie (KMA/TKA) Otakar Čerba Západočeská univerzita

Definice: Kružnice je množina bodů v rovině, které mají od daného bodu (střed S) stejnou vzdálenost

Syntetická geometrie II

Jana Dannhoferová Ústav informatiky, PEF MZLU

KRUHOVÁ ŠROUBOVICE A JEJÍ VLASTNOSTI

2. Vyšetřete všechny možné případy vzájemné polohy tří různých přímek ležících v jedné rovině.

1.1 Základní pojmy prostorové geometrie. Předmětem studia prostorové geometrie je prostor, jehož prvky jsou body. Další

Kapitola 5. Seznámíme se ze základními vlastnostmi elipsy, hyperboly a paraboly, které

PLANIMETRIE 2 mnohoúhelníky, kružnice a kruh

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Výpočetní geometrie Computational Geometry

Konvexní obal a množina

Fergusnova kubika, která je definována pomocí bodu P1, vektoru P1P2, bodu P3 a vektoru P3P4

Úvod do teorie grafů

1.1 Napište středovou rovnici kružnice, která má střed v počátku soustavy souřadnic a prochází bodem

Text úlohy. Která barva nepatří do základních barev prostoru RGB? Vyberte jednu z nabízených možností: a. Černá b. Červená c. Modrá d.

Úvod do mobilní robotiky AIL028

9 Prostorová grafika a modelování těles

Detekce kartografického zobrazení z množiny

autorovu srdci... Petr Hliněný, FI MU Brno 1 FI: MA010: Průnikové grafy

KŘIVKY A PLOCHY. Obrázky (popř. slajdy) převzaty od

Téma 5: PLANIMETRIE (úhly, vlastnosti rovinných útvarů, obsahy a obvody rovinných útvarů) Úhly 1) Jaká je velikost úhlu? a) 60 b) 80 c) 40 d) 30

ŘEŠENÉ PŘÍKLADY DESKRIPTIVNÍ GEOMETRIE. ONDŘEJ MACHŮ a kol.

APLIKACE SKELETONU P I AUTOMATIZOVANÉ KARTOGRAFICKÉ GENERALIZACI.

AB = 3 CB B A = 3 (B C) C = 1 (4B A) C = 4; k ]

Vzdálenost uzlů v neorientovaném grafu

2. přednáška z předmětu GIS1 Data a datové modely

Další plochy technické praxe

Kartografické generalizační algoritmy

1/15. Kapitola 2: Reálné funkce více proměnných

10. Analytická geometrie kuželoseček 1 bod

Úvod do mobilní robotiky AIL028

ZBORCENÉ PŘÍMKOVÉ PLOCHY ŘEŠENÉ PŘÍKLADY

Pracovní listy MONGEOVO PROMÍTÁNÍ

ŠROUBOVICE. 1) Šroubový pohyb. 2) Základní pojmy a konstrukce

Konvexní útvary. Kapitola 4. Opěrné roviny konvexního útvaru v prostoru

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Úhly a jejich vlastnosti

Každá kružnice má střed, označuje se S. Všechny body kružnice mají od středu S stejnou vzdálenost, říká se jí poloměr kružnice a označujeme ho r.

Interaktivní modely pro Konstruktivní geometrii

9. Je-li cos 2x = 0,5, x 0, π, pak tgx = a) 3. b) 1. c) neexistuje d) a) x ( 4, 4) b) x = 4 c) x R d) x < 4. e) 3 3 b

[obr. 1] Rozbor S 3 S 2 S 1. o 1. o 2 [obr. 2]

17 Kuželosečky a přímky

Kuželoseč ky. 1.1 Elipsa

Cyklografie. Cyklický průmět bodu

Konvexní obálka množiny bodů.

Algoritmy pro ořezávání 2D polygonů

1. Dva dlouhé přímé rovnoběžné vodiče vzdálené od sebe 0,75 cm leží kolmo k rovine obrázku 1. Vodičem 1 protéká proud o velikosti 6,5A směrem od nás.

mapa Moravy podle J.A.Komenske ho, roku 1627

KONSTRUKTIVNÍ GEOMETRIE

Metamorfóza obrázků Josef Pelikán CGG MFF UK Praha

11 Zobrazování objektů 3D grafiky

Dvěma různými body prochází právě jedna přímka.

Algoritmy používané ve výpočetní geometrii

Základní topologické pojmy:

Voroného konstrukce na mapě světa

SHODNÁ A PODOBNÁ ZOBRAZENÍ V ROVINĚ

Jana Dannhoferová Ústav informatiky, PEF MZLU

Generování sítě konečných prvků

Rastrová reprezentace

GIS Geografické informační systémy

Je-li dána hranolová nebo jehlanová plocha s podstavou v rovině σ a rovina řezu ρ:

Kristýna Bémová. 13. prosince 2007

11 Vzdálenost podprostorů

MONGEOVO PROMÍTÁNÍ - 2. část

Bézierovy křivky Bohumír Bastl KMA/GPM Geometrické a počítačové modelování Bézierovy křivky GPM 1 / 26

Shodná zobrazení v rovině

Transkript:

Topologická kostra Medial Axis. Straight Skeleton. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie. Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 1 / 53

Obsah přednášky 1 Ukázka použití 2 Formulace problému 3 Medial Axis 4 Straight skeleton Použití skeletonů omáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 2 / 53

Ukázka použití 1. Rekonstrukce tvaru střechy Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikovanétopologická geoinformatiky kostra a kartografie. Přírodovědecká fakulta UK.) 3 / 53

Formulace problému 2. Formulace problému Dáno: Uzavřený, ohraničený region C v R 2. Hledáme: Topologická kostra C. Topologická kostra (tzv. skeleton), výsledek procesu zvaného skeletonizace. Skeletonizace provádí dekompozici C na posloupnost jednodušších 1D entit (linie, křivky). Cílem zjednodušení tvaru C při zachování její tvarové charakteristiky (redukce množství informace). Diskrétní varianta skeletonu: Hranici C tvoří uzavřená lomená čára tvořená n vrcholy p i, použití diskrétní varianty skeletonu reprezentované posloupností úseček. Výhodné pro geoinformatiku, snadnější výpočty. Dva typy skeletonu: Medial Axis Straight skeleton Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 4 / 53

Formulace problému 3. Ukázka skeletonu Medial Axis Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 5 / 53

Medial Axis 4. Medial Axis tzv. Střední osa, (Blum 1967) Analogie střední osy v přírodě: vypalování trávy v nějaké oblasti C. Formální definicie vycházejí z pojmu maximální disk (resp. maximální kruh). Definice 1: Medial Axis je množina všech bodů, které mají nejméně dva nejbližší body na hranici C. Definice 2: Množina středů všech vnitřních maximálních disků k množiny C. Maximální kruh: Nechť k(s, r) je maximální kruh vepsaný do oblasti C tak, že: k(s, r) tečný k C ve dvou a více bodech p i. k(s, r) neobsahuje žádné další body P i. Pro oblast C existuje nekonečně mnoho různých k. Množina všech středů S při translaci k po C tvoří Medial Axis. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 6 / 53

5. Ukázky Medial Axis Medial Axis Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 7 / 53

Medial Axis 6. Medial Axis Transformation Definice 3: Medial Axis M množiny C označovaná jako M(C) představuje takovou množinu bodů q, pro které existují nejméně dva různé body p i, p j na hranici C takové, že vzdálenost d(q, p i ) = d(q, p j ) a obě vzdálenosti jsou minimálními vzdálenostmi mezi bodem q a hranicí C. M(C) = {q q p i = q p j = min{ p m m C}, } p i, p i, p j C, m C} Bod q je označován jako bod skeletonu. Proces transformace C v M(C)označován jako Medial Axis Transformation. Poloměr maximálního kruhu R(q) = min{ q u u C, q M(C)} u Střední osa je množina obecných křivek (pro diskrétní množiny parabol). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 8 / 53

Medial Axis 7. Zobecněný Voroného diagram V předchozí přednášce předpoklad: generátory p i jsou pouze body. Generátorem mohou být i 1D/2D entity: linie, lomené čáry, kruhové oblouky, kružnice,... Takové V(p i ) nemusejí být konvexní, hranice buněk obecné křivky. Nechť L je množina generátorů L = {L 1,..., L n }, kde L i představuje bodový, liniový nebo plošný generátor (generátory se vzájemně neprotínají). Minimální vzdálenost mezi q a L i, kde L i = {p 1,..., p n } d s (q, L i ) = min{ q p j p j L i } Takové Voronoi diagramy nazýváme Voronoi diagramy generované L a označujeme jako V(L, d) = {V(L 1 ),..., V(L n )} Medial Axis M(C) úzce souvisí s V(L, d). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 9 / 53

8. Ukázka V(L, d) Medial Axis Okabe et al, 2000. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 10 / 53

Medial Axis 8. Voroného diagramy s bodovými a liniovými generátory Nechť L i L představuje bod či liniový segment. Nechť koncové body linie L i označeny jako p i1 a p i2. q p i1 p R i1 d s(p, L i) = q p i2 p R i2 (q p i1) (q p i1) T (p i2 p i1 ) p i2 p i1 (p i2 p i1) p R i3 = R 2 \ [R i1 R i2] Jaký tvar budou mít bisektory L i, L j? Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 11 / 53

9. Tvary bisektorů Medial Axis Existují 4 typy bisektorů v závislosti generátorů. Typ 1: Generátory p i, p j jsou body: bisektorem přímka kolmá p i, p j. Typ 2: Generátorem bod p i1 a úsečka L i, kde p i1 L i : bisektorem přímka kolmá L i procházející bodem p i1. Typ 3: Generátorem bod p i1 a úsečka L i, kde p i1 / L i : bisektorem parabola. Typ 4: Generáty L i, L j tvořeny úsečkami: bisektorem osa úhlu. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 12 / 53

Medial Axis 10. Ilustrace tvarů bisektorů Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 13 / 53

11. Typy vrcholů Q Medial Axis Existují 4 typy bisektorů v závislosti generátorů. Typ 1: 3 bodové generátory p i, p j, p k, trojice hran je typu 1. Typ 2: Generátory vrcholu Q představují bod p i, úsečka L j a bod p j1 L j. Hrany jsou typu 1,2,3. Typ 3: Generátory vrcholu Q představují úsečka L i a dva body p j, p k / L i. Hrany jsou typu 1,3. Typ 4: Generátory vrcholu Q představují úsečky L i, L j a bodem p ij L i. Hrany jsou typu 2,3,4. Typ 5: Generátory vrcholu Q představují bod p i a dvě úsečky L j, L k, p i / L j, p i / L k. Hrany jsou typu 3,4. Typ 6: Generátory vrcholu Q představují tři úsečky L i, L j, L k, p i / L j, p i / L k. Hrany jsou typu 4. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 14 / 53

Medial Axis 12. Ukázka typů vrcholů Q Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 15 / 53

Medial Axis 13. Ukázka V(L, d) s bodovými a liniovými generátory Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 16 / 53

Medial Axis 14. Souvislost Medial Axis a Voroného diagramu Nechť L = C, tj. množina generátorů tvořena segmenty tvořícími hranici oblasti C. Nechť V(L, d) představuje Voronoi diagram nad množinou C s generátory L. Medial Axis M(C) tvořena V(l, d), z něhož odstraněny hrany ležící vně C. M(C) = V(l, d) h(v(l, d)) / C. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 17 / 53

Medial Axis 15. Medial Axis a její konstrukce Metody konstrukce Medial Axis lze rozdělit do tří skupin: Exaktní metody Konstrukce s využívající definici M(C) jako posloupnosti parabolických oblouků. Voronoi diagramy Voronoi teselace či zobecněné Voronoi teselace. Vzdálenostní metody Dekompozice C na konvexní podoblasti, hledány konvexní oblasti protnuté M(C). Pokud je hranicí C křivka, pak C aproximována mnohoúhelníkem C. Následně konstruována M(C ). Výsledkem diskrétní varianta Medial Axis. Většina algoritmů poměrně komplikovaná, použijeme aproximační algoritmus spadající do 2. skupiny. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 18 / 53

Medial Axis 16. Konstrukce Medial Axis aproximací V(L, d) Algoritmus založen na souvislosti M(C) tvořena V(L, d). Exaktní konstrukce V(L, d) však poměrně složitá, algoritmus používá přibližné řešení. Jak modelovat liniové generátory? Vytvořena pomocná množina generátorů Ω. Každý liniový generátor L i pokryt dostatečně hustou množinou bodových generátorů Ω = {ω i }. Voronoi generátor V(L, d) s liniovými generátory aproximován Voronoi diagramem V(P + Ω) s bodovými generátory. Pokud ω i ω j 0, pak V(P + Ω) V(L, d) Následně z V(P + Ω) odstraněny hrany ležící vně C. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 19 / 53

Medial Axis 17. Ilustrace konstrukce Medial Axis aproximací V(L, d) Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 20 / 53

18. Výsledek konstrukce Medial Axis Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 21 / 53

19. Nevýhody metody Medial Axis Nedořešená topologie, aproximovaná Medial Axis neprochází vrcholy. Pokud není množina Ω dostatečně hustá, tvar generované Medial Axis přibližný. Zlepšení tvaru: vzdálenost dvou libovolných sousedních bodů ω i, ω j ω i ω j = konst. V opačném případě nevhodný tvar DT (P + Ω) způsobí nahrazení rovných segmentů oscilujícími segmenty. Nutno volit body ω s konstantní hustotou závisející na délce L. Aproximace Medial Axis tvarově přijatelná až pro množiny bodů s velkou hustotou. Množina Ω může být výrazně větší než P! Pro velká n výrazný nárůst času nutného pro konstrukci V (P + Ω). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 22 / 53

20. Citlivost Medial Axis Medial Axis Značná citlivost M(C) vůči oscilacím bodů vstupní množiny C. Malá odchylka v poloze bodu vyvolá velkou změnu tvaru Medial Axis. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 23 / 53

Straight skeleton 21. Vlastnosti Straight Skeletonu Aichholzer et al, 1997. Pro konvexní útvary je Straight Skeleton = Medial Axis. Odstranění nevýhod Medial Axis: menší citlivost tvaru vůči šumu. topologická kostra tvořena pouze liniovými prvky. menší výpočetní složitost. Straight Skeleton pro řadu aplikací v geoinformatice vhodnější. Na rozdíl od Medial Axis, která je definována s využitím Voronoi diagramů, Straight Skeleton definován s využitím smršťovacího procesu (Shrinking Process). Algoritmus konstrukce Straight Skeletonu: Felkel & Obdržálek, 1997. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 24 / 53

Straight skeleton 22. Ukázka Straight Skeletonu Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 25 / 53

Straight skeleton 23. Straight Skeleton Definice: Straight Skeleton S uzavřené a ohraničené množiny C označovaný jako S(C) je tvořen sjednocením částí všech bisketorů b i incidujících stran e i, e j množiny C. Smršťovací proces: Posouváme li současně strany e oblasti C konstantní rychlostí v směrem dovnitř, jejich délky se zmenšují. Vrcholy C se pohybují po bisektorech b incidujících stran a tvoří S(C). Segmenty skeletonu tvoří ABN (Angular Bisector Network). Postup připomíná opakované ořezávání C, C se sesouvá sama sebe tak dlouho, dokud A(C) 0. Při smršťování C dochází ke vzniku dvojice událostí: Edge Event Split Event Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 26 / 53

Straight skeleton 24. Edge Event a Split Event Sesouvání hran probíhá s konstantní rychlostí, pořadí vzniku událostí závisí na vzdálenosti průsečíku dvou sousedních bisektorů od generující hrany. Edge Event: e 0, strana zaniká. Tento bod se stává novým uzlem S(C) stupně 3. Počet stran oblasti C se sníží o jednu, vznikne nová dvojice sousedících stran e i, e j. Split Event: Posunující se vrchol p rozdělí protilehlou hranu e v bodě q na dvě nové hrany e 1, e 2. C rozdělena na dvě podoblasti C 1, C 2. Bod q novým uzlem S(C). {C = C 1 C 2 C 1 C 2 = q e 1 C 1 e 2 C 2} Každá z podoblastí C 1, C 2 zpracovávána analogicky jako C. Rekurzivní řešení problému. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 27 / 53

Straight skeleton 25. Ilustrace Edge Event a Split Event Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 28 / 53

Straight skeleton 26. Degenerovaný Straight skeleton Pokud vrcholy C leží na kružnici, je S(C) je degenerovaný, obsahuje uzly vyšších stupňů. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 29 / 53

Straight skeleton 27. Další vlastnosti Straight Skeletonu S(C) provádí dekompozici C na n monotónních polygonů, na rozdíl od V(p) mohou být nekonvexní. Každý bisektor b je průsečnicí dvojice polorovin definovaných indidentními hranami e, e. Vztah mezi počtem počtem bodů a počtem vrcholů S(C): Nechť r představuje počet reflexních (tj. nekonvexních) vrcholů v C, n s počet segmentů skeletonu. n s (M(c)) = 2n 3 + r n s (S(C)) = 2n 3 Platí pro nedegenerované skeletony. Pro nekonvexní C je S(C) tvořen menším počtem segmentů než M(C). Grafová reprezentace S(C): S(C) představuje binární strom tvořený n 2 uzly a 2n 3 hranami (nedegenerované skeletony). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 30 / 53

Straight skeleton 28. Konstrukce Straight skeletonu: LAV Pokud je C konvexní, užívána datová struktura List of Active Vertices (LAV) představovaná kruhovým seznamem. Pro nekonvexní oblasti v důsledku Split Event dochází pro každý reflexní vrchol k rozdělení C na dvě podoblasti. Pro každou podooblast uchováván samostatný LAV. Všechny LAV pro oblast C uloženy v kruhovém seznamu (SLAV), Set of Circular List of Active Vertices. Popis LAV: Všechny vrcholy V i uloženy ve dvojitém kruhovém seznamu. Každý vrchol V i obsahuje pointery na dvě sousedící hrany e i 1 = V i 1 V i a e i = V i V i+1. Pro každý vrchol V i je uchováván bližší z průsečíků bisektoru b i se sousedícími bisektory b i 1 a b i+1 označený jako I s počátečními body V i 1 a V i. Pro každé I uchovávány pointery na vrcholy V a, V b generující hrany e (ze kterých vznikl). Body I uchovávány v priporitní frontě Q dle vzdálenosti od hrany e i. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 31 / 53

29. Ilustrace LAV Straight skeleton Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 32 / 53

Straight skeleton 30. Princip Edge Event Nechť I představuje libovolný průsečík s dvojici pointerů na vrcholy V a, V b představující počáteční vrcholy hran e a, e b. V tomto kroku e 0, tj. strana zaniká. Bod I se stává novým vrcholem V a je přidán do LAV. Nový bod V musí uchovávat pointery na vrcholy V a, V b. Nutno provést update struktury LAV : Vrcholy V a, V b označeny jako zpracované. Z vrcholu V uchovat pointery na V a, V b. Přesměrovat předchůdce předchůdce V (tj. předchůdce V a ) na V a opačně. Přesměrovat následníka následníka V (tj. následníka V b ) na V a opačně. Další kroky: Konstrukce bisektoru b v bodě I. Opakování bodů C) - F). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 33 / 53

31. Update LAV, krok 1 Straight skeleton Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 34 / 53

32. Update LAV, krok 2 Straight skeleton Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 35 / 53

33. Update LAV, krok 3 Straight skeleton Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 36 / 53

34. Princip Split Event Straight skeleton Událost Split Event způsobena přítomností reflexního vrcholu, tj. vykytuje se pouze u C s nekonvexním vrcholem. Neplatí implikace, tj. přítomnost reflexního vrcholu automaticky nezaručuje vznik Split Event. Bod, ve kterém dochází k Split Event má stejnou vzdálenost od hran generujícího vrcholu V i a protilehlé hrany. V bodě A dochází k Edge Event, v bodě B ke split Event. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 37 / 53

Straight skeleton 35. Nalezení protilehlé hrany Test protilehé hrany: leží bod V uvnitř trojúhelníku tvořeného testovanou hranou a jejími bisektory? V praxi test existence průsečíku bisektoru b vrcholu V B a testované hrany e. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 38 / 53

36. Výpočet průsečíku B Straight skeleton Bod B leží na průsečíku bisektoru procházejícím vrcholem V a bisektorem tvořeným prodloužením stran incidujících s B a testované hrany e. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 39 / 53

Straight skeleton 37. Rozpad LAV při Split Event Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 40 / 53

38. Inicializace algoritmu Straight skeleton Inicializace algoritmu tvořena následujícími kroky: (A) Vrcholy V 1, V 2,..., V n přidány do LAV, každý z vrcholů nastaven atribut aktivní. (B) Každému vrcholu V i přidej pointery n dvě sousedící strany: e i 1 = V i 1 V i, e i = V i V i+1. (C) Pro každý vrchol V i spočítej bisektor b i. (D) Pro každý nereflexní vrchol V i spočteme bližší z dvojice průsečíků bisektoru b i s bisektory b i 1, b i+1 sousedních vrcholů V i 1, I i a označíme ho V i, tj. Edge Event. (E) Pro každý reflexní vrchol V i spočítej průsečík I i s protilehlou hranou e a označíme ho V i, tj. Split Event. (F) Každý vrchol V i uložíme do prioritní fronty Q na základě vzdálenosti d(e i, V i ) s informací, zda se jedná o Edge Event nebo SplitEvent. (G) Pro každý průsečík I i uložíme dvojici pointerů na vrcholy V a, V b představující počáteční body bisektorů, jejichž průsečíkem bod I i vznikl. Z bodů V a, V b lze identifikovat odpovídající hrany e a, e b. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 41 / 53

Straight skeleton 39. Implementace algoritmu Algoritmus využívá prioritní frontu Q a datovou strukturu LAV. Celková složitost O(n 2 ). Algoritmus 1: Straight Skeleton 1: Inicializace algoritmu, body A) - G). 2: Dokud Q není prázdné: 3: pop(i) z Q. 4: Pokud I Edge Event pprocessedgeevent(). 5: Jinak ProcessSplitEvent(). Metody ProcessEdgeEvent resp. ProcessSplitEvent tvořeny realizují zánik hrany resp. rozdělení LAV na dvě nové LAV a jejich uložení do SLAV. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 42 / 53

Straight skeleton 40. Implementace ProcessEdgeEvent() 1: Pokud vrcholy V a, V b průsečíku I označeny jako zpracované, ukonči. 2: Pokud se předchůdce vrcholu předcházejícího vrcholu V a rovsná V b, do skeletonu jsou přidány 3 následující hrany: V a I, V b I a V c I, kde bod V c je předchůdcem bodu V a a následníkem bodu V b. Ukonči. 3: Do skeletonu jsou přidány hrany V a I, V b I. 4: Modifikace struktury LAV: Označení vrcholů V a, V b, na které se odkazuje I, jako zpracované. Vytvoření nového vrcholu V se souřadnicemi odpovídajícími bodu I. Přidání vrcholu V do LAV, tj. napojení vrcholu na předchůdce V a a následníka V b. Napojení vrcholu V na hrany e a a e b, na které ukazují vrcholy V a, V b. 5: Pro každý nový uzel V vytvořený z I: Spočítej nový bisektor b mezi liniemi, na které ukazují e a a e b. Spočítej průsečíky tohoto bisektoru s průsečíky bisektorů ze sousedních vrcholů k V, dále viz D) -G). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 43 / 53

Straight skeleton 41. Implementace ProcessSplitEvent() 1: Pokud vrchol V průsečíku I označen jako zpracovaný, ukonči. 2: Přidej do skeletonu hranu V, I. 3: Modifikace struktury LAV: Označení vrcholu V, na které se odkazuje I, jako zpracované. Vytvoření dvojice nových vrcholů V 1, V 2 se souřadnicemi odpovídajícími bodu I. Nalezení protilehlé hrany v SLAV. Přidání vrcholů V 1, V 2 do SLAV a rozdělení LAV do dvou částí: průsečíky V 1, V 2 napojeny na své předchůdce a následníky. Napojení hran incidujících s V 1, V 2 na své předchůdce a následníky. 4: Pro každý nový uzel V vytvořený z I: Spočítej nové bisektory b z V 1, V 2. Spočítej průsečíky tohoto bisektoru s průsečíky bisektorů ze sousedních vrcholů k V, dále viz D) -G). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 44 / 53

42. Vertex Event Straight skeleton Navrhovaná implementace nepostihuje situaci, kdy při Split Event protne vrchol smršťující se strany vrchol protilehlé strany. Protilehlá hrana není rozdělena na dvě nové hrany, C však rozdělena na dvě podoblasti C 1, C 2. Tato událost nazvána Vertex Event (Cacciola, 2004). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 45 / 53

Straight skeleton Použití skeletonů 43. Použití skeletonů Nejčastější použití skeletonizačních algoritmů: Extrake skeletounu pro automatizovanou vektorizaci. OCR (Optival Character Recognition), automatizované rozpoznávání textu. Biometrie. Kartografická generalizace. Automatizovaná rekonstrukce tvaru střechy. Automatické umisťování popisů v mapách. Segmentace dat. Offset polygonu. Dekompozice polygonu na monotónní oblasti. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 46 / 53

Straight skeleton 44. Sekvenční ztenčování Použití skeletonů Aplikace na rastrová data, provádí zeslabování rastrových linií. Aplikace erozního filtru 3 x 3. Použití pro OCR. Ukázka sekvenčního ztenčování s kroky po 10 iteracích. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 47 / 53

Straight skeleton Použití skeletonů 45. Kartografická generalizace prostorovou redukcí. Změna prostorové dimenze generalizovaného objektu s cílem zjednodušení jeho tvaru a zachování tvarových charakteristik. Nejčastější varianty: 2D 1D. 1D 0D. Využití generalizace prostorovou redukcí u prvků výrazně protáhlého tvaru (vodní toky, komunikace), které nelze v daném měřítku zobrazit plošně (v měřítku mapy menší šířka než cca 1mm). Jak dekomponovat prvek snížením dimenze? Aplikací skeletonizačního algoritmu, výsledkem lomená čára tvarově aproximující původní oblast C (Galanda, 2003; Cacciola, 2006). Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 48 / 53

Straight skeleton Použití skeletonů 46. Ukázka generalizace vodního toku prostorovou redukcí Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 49 / 53

Straight skeleton Použití skeletonů 47. Ukázka generalizace vodního toku prostorovou redukcí Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 50 / 53

Straight skeleton Použití skeletonů 48. Použití skeletonu při automatickém popisu vodních toků Automatizované umístění popisů kartografických prvků představuje poměrně složitý problém. U prvků tvarově členitých je vhodné umisťovat popis tak, aby kopíroval tvar tohoto prvku. Písmena jsou umísťována na zvolený segment skeletonu nebo rovnoběžně s tímto segmentem v zadaném odstupu. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 51 / 53

Straight skeleton 49. Rekontrukce tvaru střech Použití skeletonů K dispozici půdorys budovy + další datové zdroje (Laser Scanning). Jak z takových dat zrekonstruovat střechu? Fáze 1: První aproximací tvar střechy generovaný z půdorysu Straight Skeleton. Jednotlivé monotónní polygony S(C) představují roviny střechy. Fáze 2: Upřesnění tvaru střechy z dalších datových zdrojů (Lase Scanning). K dispozici mračno bodů M se známými prostorovými souřadnicemi x, y, z. Průměty bodů M v rovině xy leží v některém monotónním polygonu S(C). Body M ležící v jednom S(C) proložena regeresní rovina. Odlehlé body M vypuštěny (komín, chybný odraz) či opakovaně přesouvány mezi incidujícími polygony (tvar střechy neodpovídá Straight Skeletonu). Hledán takový polygon, od jehož regeresní roviny budou mít přeřazené body nejmenší vzdálenost. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 52 / 53

Straight skeleton Použití skeletonů 50. Znázornění rekontrukce tvaru střech Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Topologická geoinformatiky kostraa kartografie. Přírodovědecká fakulta UK.) 53 / 53