58
PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY DIPLOMOVÁ PRÁCE Metody modelování tělesa z rovinných řezů 2011 Bc. Markéta Krmelová

Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHOKATEDRA INFORMATIKY

DIPLOMOVÁ PRÁCE

Metody modelování tělesa z rovinných řezů

2011 Bc. Markéta Krmelová

Page 2: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Místopřísežně prohlašuji, že jsem celou práci včetně příloh vypracoval samostatně.

4.duben 2011 Bc. Markéta Krmelová

i

Page 3: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Anotace

Tato práce navazuje na bakalářskou práci, která se zabývala rekonstrukcí 3D ob-razu z počítačového tomografu, ve které byly uvedeny metody pro výpočet povrchutělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsánydalší metody modelování, obzvláště metoda Dividing cubes, metoda Opláštění kon-tur, metoda Marching Cubes 33 a jejich porovnání s metodou Marching Cubes.Dále bude představen objemový rendering. Součástí této práce je také vytvořeníprogramu, který bude demonstrovat představené metody na datách získaných zvýpočetního tomografu.

ii

Page 4: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Ráda bych na tomto místě poděkovala svému vedoucímu diplomové práce Ing.Michalovi Dobešovi, Ph.D., za obětavou spolupráci i za čas, který mi věnoval přikonzultacích. Nemalý dík však patří také mým rodičům a nejbližším přátelům zapodporu, které se mi od nich dostalo.

iii

Page 5: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obsah

1. Úvod 11.1. Rozvržení práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Algoritmy zobrazující povrch 32.1. Metoda opláštění kontur . . . . . . . . . . . . . . . . . . . . . . . 32.2. Metoda Marching Cubes . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.1. Vylepšení metody o filtrování malých částí . . . . . . . . . 42.3. Metoda Marching Cubes 33 . . . . . . . . . . . . . . . . . . . . . 72.4. Metoda Dual Contouring . . . . . . . . . . . . . . . . . . . . . . . 92.5. Metoda Dual Marching Cubes . . . . . . . . . . . . . . . . . . . . 92.6. Metoda Marching Tetrahedra . . . . . . . . . . . . . . . . . . . . 92.7. Metoda Dividing Cubes . . . . . . . . . . . . . . . . . . . . . . . 10

3. Metoda opláštění kontur 123.1. Výpočet řezů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2. Rekonstrukce povrchu opláštěním kontur . . . . . . . . . . . . . . 16

4. Dividing Cubes 214.1. Princip algoritmu Dividing Cubes . . . . . . . . . . . . . . . . . . 21

5. Marching Cubes 33 24

6. Algoritmy pro přímé zobrazování objemu 276.1. Metody nehledající povrch . . . . . . . . . . . . . . . . . . . . . . 276.2. Metody s jednoduchým zobrazením povrchu . . . . . . . . . . . . 306.3. Metody zobrazující povrch s normálou . . . . . . . . . . . . . . . 316.4. Metody uvažující integraci světla na dráze paprsku . . . . . . . . 33

7. A Simple and Flexible Volume Rendering Framework forGraphics-Hardware-based Raycasting 347.1. Ovládání programu . . . . . . . . . . . . . . . . . . . . . . . . . . 37

8. Porovnání metod pro zobrazení trojrozměrných dat 40

9. Závěr 42

10.Conclusion 43

Reference 44

i

Page 6: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

A. Uživatelská příručka 45A.1. Struktura CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45A.2. Ovládání aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

A.2.1. Zobrazit snímky . . . . . . . . . . . . . . . . . . . . . . . . 46A.2.2. Zobrazení 3D modelu metodou Surface renderingu . . . . . 47A.2.3. Zobrazení dat metodou Volume renderingu . . . . . . . . . 47

A.3. Vstupní data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

ii

Page 7: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Seznam obrázků

1. Originální mapa doktora Johna Snowa zobrazující ložiska choleryv Londýně roku 1854 [13] . . . . . . . . . . . . . . . . . . . . . . . 1

2. Vstupní objekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33. Sada řezů. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. Ukázka odhadu skutečného povrchu pokud nemáme další informaci

o tvaru tělesa mezi řezy. . . . . . . . . . . . . . . . . . . . . . . . 45. Výsledek bez filtrování malých částí. . . . . . . . . . . . . . . . . 56. Výsledek po odfiltrování malých částí. . . . . . . . . . . . . . . . 67. Díry vzniklé nejednosnačností algoritmu Marching Cubes. . . . . . 78. Dva různé způsoby triangulace povrchu jednoho případu. . . . . . 79. Všechny možné případy triangulace povrchu. . . . . . . . . . . . . 810. Vlevo rekurzivní dělení krychle. Vpravo odovídající octree. Zdroj [13] 911. Vlevo nahoře je zobrazeno původní těleso, vpravo nahoře aproxi-

movaný povrch získaný metodou Dual Marching Cubes, vlevo doleMarching Cubes a vpravo dole Dual Contouring. . . . . . . . . . . 10

12. 2 varianty umístění trojúhelníků v čtyřstěnu. . . . . . . . . . . . . 1013. 2 způsoby dělení krychle na čtyřstěny. . . . . . . . . . . . . . . . . 1114. Kontura a kontura s dírou. . . . . . . . . . . . . . . . . . . . . . . 1215. Všechny možné konfigurace. . . . . . . . . . . . . . . . . . . . . . 1316. Příklad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317. Nejednoznačnosti Marching Squares. . . . . . . . . . . . . . . . . 1418. Řez a příslušná hierarchie kontur. . . . . . . . . . . . . . . . . . . 1519. Nalevo je počet průsečíků s l lichý, tj. k je díra, vpravo je k vnější

kontura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1620. Kritérium překrytí kontur. . . . . . . . . . . . . . . . . . . . . . . 1721. Zobecněné válce. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1722. Správné a chybné propojení kontur. . . . . . . . . . . . . . . . . . 1823. Chybné spojení kontur. . . . . . . . . . . . . . . . . . . . . . . . . 1924. Maximální objem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2025. Označení vrcholů. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2426. Označení face. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2427. Označení. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2728. Výstup z programu Volume - maximum intensity projection. . . . 2829. Výstup z programu Volume - summed intensity projection. . . . . 2830. Výstup z programu Volume - average intensity projection. . . . . 2931. Výstup z programu Volume - zobrazní povrchu bez výpočtu normál. 3032. Výstup z programu Volume - zobrazní povrchu bez výpočtu normál

II. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3033. Výstup z programu Volume - Z-buffer gradient shadding. . . . . . 3134. Výstup z programu Volume - Voxel gradient shading. . . . . . . . 3235. Výstup z programu Volume - Gray-level gradient shading. . . . . 32

iii

Page 8: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

36. Maximum intensity projection. . . . . . . . . . . . . . . . . . . . . 3537. Transparent isosurface. . . . . . . . . . . . . . . . . . . . . . . . . 3538. Kombinace přímého zobrazení povrchu a izoplochy. . . . . . . . . 3639. Isosurface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3640. Sphere mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3741. Clipped volume rendering. . . . . . . . . . . . . . . . . . . . . . . 3742. Metody uvažující integraci světla na dráze paprsku. . . . . . . . . 3843. Refraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3844. Dialog aplikace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4645. Okno se snímky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4746. Okno s 3D modelem. . . . . . . . . . . . . . . . . . . . . . . . . . 4847. Okno s daty zobrazenými pomocí metody Volume renderingu. . . 48

iv

Page 9: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Seznam tabulek

1. Testy jednotlivých případů . . . . . . . . . . . . . . . . . . . . . . 26

v

Page 10: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

1. Úvod

Prakticky v každém odvětví lidské činnosti se můžeme setkat s nějakými daty.Specifickým typem dat jsou pak data objemová. Příkladem takovýchto dat jsounapříklad informace získané z výpočetního tomografu. Naším úkolem je pak tatodata zobrazit. Tento postup, který je obecně označován jako vizualizace objemo-vých dat, převádí vstupní data do grafické podoby.Vizualizace je použitelná v mnoha různorodých oblastech, jako je medicína,

fyzika, geografie či v dnes značně oblíbeném herním průmyslu.Jako první použil k vědeckým účelům vizualizaci doktor John Snow v roce

1855. Doktor Snow sestavil kartografický plánek, jehož kopii znázorňuje obrá-zek 1., s cílem nalézt zdroj epidemie cholery.

Obrázek 1. Originální mapa doktora Johna Snowa zobrazující ložiska cholery vLondýně roku 1854 [13]

Díky jeho přelomové myšlence se tehdy podařilo najít zdroje nákazy. Bylyjimi studny, které byly znečištěny kalem prosakujícím z nedaleké žumpy (oběti

1

Page 11: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

cholery jsou na obrázku znázorněny tečkami a studny křížky).Samotný proces vizualizace je realizován algoritmy, které umožňují zobrazení

rozsáhlých souborů prostorových dat. Většina těchto algoritmů má poměrně vy-soké nároky na výkon a paměť. Vizualizace využívá také poznatky i z jinýchdisciplín, než jen z počítačové grafiky a sice z odvětví počítačového vidění čiumělé inteligence.V dalších kapitolách se budeme zabývat algoritmy k vizualizaci dat, která byla

získána z výpočetního tomografu ve formě série snímků. Data byla zapůjčena slaskavým svolením radiodiagnostického oddělení nemocnice v Ústí nad Orlicí.

1.1. Rozvržení práce

Celá tato práce je rozdělena do třech velkých celků. V první části se budemezabývat metodami Surface renderingu. V druhé kapitole to bude souhrn těchtometod. Ve třetí kapitole se budeme podrobněji věnovat metodě Opláštění kontur.Čtvrtá kapitola bude představovat metodu Dividing Cubes a poslední kapitolatohoto celku představí metodu Marching Cubes 33. Druhým větším celkem bu-dou metody Volume renderingu. V šesté kapitole si popíšeme tyto metody. Vsedmé kapitole si představíme framework na zobrazování metod volume rende-ringu. Třetí část tvoří srovnání všech metod v závislosti na jejich použitelnostipro práci s daty z výpočetního tomografu.

2

Page 12: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

2. Algoritmy zobrazující povrch

Jednou z nejdůležitějších úloh počítačové grafiky je zobrazování prostorovýchmodelů. Tvorba reálného obrazu na základě počítačového modelu, nejčastěji 3D,se nazývá rendering. Máme dva typy zobrazení trojrozměrného objektu. Jednímje tzv. Surface rendering (povrchové zobrazení), kde vytváříme geometrickou re-prezentaci povrchu tělesa. Metody na tomto principu nepracují přímo s daty, alesnaží se povrch aproximovat sítí trojůhelníků a až poté data zobrazují. Výhodoutohoto přístupu je snížení množství dat, kde místo celé mřížky vzorků zůstanepouze povrch tělesa.V této části si uvedeme několik algoritmů, které převádějí data reprezentující

objemová tělesa do povrchové reprezentace. Velmi častá je aproximace povrchusítí trojúhelníků.

2.1. Metoda opláštění kontur

Existuje několik možností, jak zaznamenat těleso. Jednou z nich je pomocíjeho hranice v jednotlivých řezech, tzv. konturách.

Obrázek 2. Vstupní objekt.

Princip této metody je následující. Z výpočetního tomografu získáme saduřezů tělesa. V nich pak hledáme kontury reprezentující povrch tělesa v jednotli-vých řezech. Hlavním problémem je, jak přiřadit jednotlivé kontury k sobě a jakje následně aproximovat sítí trojúhelníků.

Obrázek 3. Sada řezů.

Nevýhodou této metody, stejně jako tomu je u jiných metod surface rende-ringu, je, že dostaneme pouze odhad skutečného povrchu. Jelikož nemáme in-

3

Page 13: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

formaci o tělese mezi jednotlivými konturami, tak je zde průběh povrchu pouzeodhadován. K lepší aproximaci je potřeba znát další informace o tvaru tělesa.

a) b) c) d) e)

Obrázek 4. Ukázka odhadu skutečného povrchu pokud nemáme další informacio tvaru tělesa mezi řezy.

Této metodě se budeme podrobněji věnovat v kapitole 3.

2.2. Metoda Marching Cubes

Tato metoda, jejíž princip byl prvně publikovan v roce 1987 W. Lorensenema H. Clinem v knize Computer graphics, patří mezi nejčastěji implementovanémetody, hledající povrch tělesa. Autoři vytvořili tento algoritmus k nalezení izo-plochy v tomografických datech a k jejímu pokrytí sítí trojúhelníků.Vstupem algoritmu je objem dat (hodnoty hustoty uspořádané v pravidelné

mřížce) a konstanta pro práh. Výstupem je izoplocha ve formě sítě trojúhelníků.Hlavní myšlenka, jak samotný název tohoto algoritmu napovídá, spočívá v

tom, že data, která jsou uložena v pravoúhlé prostorové mřížce (tu si můžemepředstavit jako kolekci krychlí naskládaných vedle sebe), postupně procházíme.Pro všechny krychle o straně h (kde h jsou rozestupy mezi jednotlivými vzorkydat) na základě hodnot funkce v krajních bodech mřížky, vygeneruje každé krychlitrojúhelníky, které nejlépe aproximují zvolenou izoplochu. Vrcholy těchto trojú-helníků leží na hranách krychle.Takto získaných trojúhelníků bývá velké množství, neboť pro každou krychli

mohou vzniknout až 4. Například pro zpracování tomografických dat v rozlišení100 × 100 × 100 vzorků obdržíme řádově až 4 miliony trojúhelníků. Druhouslabinou je, že způsob triangulace povrchu se určuje pouze na základě hodnotosmi vrcholů tvořících krychli a ne globálně s ohledem na její okolí. Proto sevyskytují potenciálně nejednoznačné případy, kdy nemůžeme s jistotou říci, kudyhledaný povrch prochází.Podrobnější popis a způsob implementace této metody je popsán v bakalářské

práci [3].Později tato metoda byla upravena o možnost filtrování malých částí (šumu

vzniklého v počítačovém tomografu).

2.2.1. Vylepšení metody o filtrování malých částí

Výsledný obraz z výpočetního tomografu je závislý na hustotě tkáně v těle.V těle se nacházejí tkáně s podobnou hustotou, či různou hustotou na povrchu

4

Page 14: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

a uvnitř. Z tohoto důvodu je někdy obtížné určit práh vymezující hranice jed-notlivých tkání. Tento nepříjemný fakt navíc do výsledného obrazu zanáší maléčásti, které ve výsledném obraze tvoří šum. Zatímco určit práh vymezující hra-nice jednotlivých tkání je poměrně težký úkol, fitrování malých částí je o poznánísnadněji řešitelné.Při řešení tohoto problému je potřeba určit, které trojúhelníky k sobě patří

(tj. tvoří souvislou část tkáně) a dále podle námi zvolenéhé hodnoty odfiltrovatty části, které jsou menší.Tento problém lze řešit průchodem mřížky ještě před samotným výpočtem

trojúhelníků. Při tomto průchodu uvažujeme pouze body, které patří do tělesa,tj. mají hustotu větší než je stanovený práh. Procházíme postupně mřížku apři prvním nalezení bodu, patřícímu do zobrazované množiny, přiřadíme tomutobodu index. Tento index postupně přiřazujeme všem jeho sousedům (ve smyslušestisousednosti) a sousedům jeho sousedů a tak dále. Když už nemáme žádnýbod, který bychom mohli přidat, zvýšíme index. Opět projdeme postupně celoumřížku a pro první neoznačený bod, který má větší hustotu než je práh, celýpostup opakujeme. Když už máme označeny všechny body, spočítáme počty bodůs jednotlivými indexy. Ty body, které určují objekt menší než je zvolená hodnota,nebudou do výpočtu trojúhelníků metodou Marching Cubes zahrnovány.Výsledek tohoto vylepšení je zobrazen na obrázku 6. Pro srovnání jsou stejná

data zobrazena nevylepšenou metodou Marching Cubes na obrázku 5.

Obrázek 5. Výsledek bez filtrování malých částí.

5

Page 15: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 6. Výsledek po odfiltrování malých částí.

6

Page 16: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

2.3. Metoda Marching Cubes 33

Tato metoda byla představena v roce 2003 v článku [4]. Tento algoritmusbyl navržen pro to, aby eliminoval nedostatky původní metody Marching Cubes.Jak bylo výše řečeno, metoda Marching Cubes nebere v úvahu globální pohledna těleso a tím mohou vznikat nejednoznačnosti. Jednou z nejednoznačností jemožnost vzniku děr, která je zobrazena na obrázku 7.

Obrázek 7. Díry vzniklé nejednosnačností algoritmu Marching Cubes.

Dalším typem nejednoznačnosti je topologická struktura tělesa (obr. 8.).

Obrázek 8. Dva různé způsoby triangulace povrchu jednoho případu.

Metoda Marching Cubes 33 používá rozšířenou tabulku, kde namísto 15 růz-ných případů jak aproximovat povrch tělesa v krychli uvažuje 32 případů. Princi-pielně tato metoda pracuje úplně stejně jako metoda Marching Cubes, jen v ne-jednoznačných případech se dopočítává, který případ použije. Více podrobností otéto metodě nalezneme v článku [4]. Obrázky v této subkapitole jsou převzaty zjiž zmiňovaného článku [4]. V rámci této práce byla tato metoda implementovánaa budeme se jí podrobněji věnovat v jedné z následujících kapitol.

7

Page 17: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 9. Všechny možné případy triangulace povrchu.

8

Page 18: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

2.4. Metoda Dual Contouring

Tato metoda vychází z metody Marching Cubes. A byla představena včlánku [8]. Tato metoda zjednodušuje pravidelnou mřížku do struktury zvanéOctree mřížka (Octree je stromová struktura, která má pro každý interní uzelprávě 8 potomků viz. obrázek 10.) tím, že sloučí sousedící bunky sítě, ve kte-rých je povrch tělesa plocha. Tato metoda vždy produkuje těleso bez děr. Mávšak často za následek praskliny v povrchu mezi přilehlými octree buňkami. Tatonepříjemnost se obvykle řeší pomocí nějakého záplatování.

Obrázek 10. Vlevo rekurzivní dělení krychle. Vpravo odovídající octree. Zdroj [13]

2.5. Metoda Dual Marching Cubes

Další modifikací metody Marching Cubes a metody Dual Contouring, kteráeliminuje jejich nedostatky, je metoda Dual Marching Cubes. Tuto metoda bylapředstavena v článku [7] Scottem Schaeferem a Joe Warrenem.Metoda je založená na zarovnávání vrcholů mžížky ke dvěma implicitním

funkcím. Tato metoda dává velice dobré výsledky. Narozdíl od metody MarchingCubes negeneruje takové množství trojúhelníků. Pokud sousedící trojúhelníkytvoří témeř rovinu, tak jsou nahrazeny větší plochou.Pro srovnání je přiložen obrázek 11. přejatý z článku [7], kde je zobrazeno

těleso pomocí metody Marching Cubes, Dual Contouring a Dual Marching cubes.Z obrázku je patrné, že nejlepší výsledky z těchto metod dává metoda DualMarching cubes.

2.6. Metoda Marching Tetrahedra

Tato metoda byla poprvé uvedena B.A. Paynem a A.W. Togou v knize SurfaceMapping Brain Function on 3D Models [6] v roce 1990. Tato metoda je jakýmsi

9

Page 19: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 11. Vlevo nahoře je zobrazeno původní těleso, vpravo nahoře aproximo-vaný povrch získaný metodou Dual Marching Cubes, vlevo dole Marching Cubesa vpravo dole Dual Contouring.

pokusem o odstranění nejednoznačností v metodě Marching Cubes. Princip spo-čívá v tom, že se krychle rozdělí na 5 čtyřstěnů a trojúhelníky se umísťují do nich.Toto rozdělení je možné 2 způsoby, které se musejí z důvodu zachování návaznostitrojúhelníků sítě pravidelně střídat. Vznikají 2 varianty umístění trojúhelníků viz.obr. 12.

Obrázek 12. 2 varianty umístění trojúhelníků v čtyřstěnu.

Pro jeden vrchol uvnitř a 3 vně vznikne jeden trojúhelník a pro 2 vrcholyuvnitř a 2 vně vzniknou 2 trojúhelníky.Problém děr byl v tomto algoritmu zcela vyřešen, ale na úkor neúměrného ná-

rustu počtu trojúhelníků a nutnosti střídání způsobu dělení krychle (To je nutnépro zachování spojitosti povrchu). Toto dělení je zobrazeno na obrázku 13. Zlep-šení návaznosti lze vylepšit dělením na 6 či 24 čtyřstěnů, ale počet trojúhelníkůje pak neúnosný. Z tohoto důvodu tento algoritmus není v praxi příliš používán.

2.7. Metoda Dividing Cubes

Tento algoritmus byl přestaven v roce 1988 v publikaci Two Algorithms forthe Three-Dimensional Reconstruction of Tomograms [1]. Jeho autory jsou H.E.

10

Page 20: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 13. 2 způsoby dělení krychle na čtyřstěny.

Cline, W.E Lorensen, S.Ludke, C.R. Crawford a B.C. Teeter. Autoři řešili pře-vážně problém pomalého vykreslování tělesa, který vzniká při rasterizaci obrov-ského množství malých plošek. Místo plošek se zde vykreslí pouze povrchové bodys normálou, které mají takovou velikost, že se zobrazují do jednoho obrazovéhobodu. Touto modifikací se značně zvýší rychlost vykreslování. Díky tomu, žekaždý bod má svojí normálu, lze vypočítat světelné podmínky při rotaci tělesači změně polohy světelného zdroje. Nevýhodou této metody je ztráta informaceo tom, ke které ploše bod náleží, a nemožnost přiblížení tělesa. Tento algoritmusdává stejně kvalitní výsledky jako algoritmus Marching Cubes, přičemž efektivněvyužívá možností rastrového displeje a negeneruje nezobrazitelné detaily. Více setéto metodě a její implementaci budeme věnovat v kapitole 4.

11

Page 21: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

3. Metoda opláštění kontur

Tato metoda se skládá z několika dílčích problémů, které si popíšeme a nastí-níme jejich možná řešení. Jedním z nich je problém, který byl zmíněn v úvodutéto práce a sice problém hledání hranic tělesa v datech. V této části se budemezabývat problematikou výpočtu jednotlivých kontur. Nejprve uvedeme použitouterminologii.Z výpočetního tomografu získáme data ve formě série snímků. Z nich chceme

vypočítat sadu řezů. Sadou řezů rozumíme množinu řezů S, přičemž každý řez seskládá z množiny kontur, které odpovídají průniku hranice tělesa a roviny řezu.Kontura je orientovaný jednoduchý uzavřený polygon ci = p1, p2, . . . , pn, kde

i je index kontury v rámci řezu a pk, k = 1, . . . , n jsou vrcholy polygonu před-stavující průnik tělesa a roviny řezu. Dále se předpokládá, že se kontury v rámcijednoho řezu neprotínají. Definujeme dva typy kontur: Vnější kontura a Díra,které jsou pro ilustraci znázorněny na obrázku 14. Vnější obrysy jsou oriento-vány proti a vnitřní ve směru hodinových ručiček.

Obrázek 14. Kontura a kontura s dírou.

3.1. Výpočet řezů

V následující části si popíšeme, co vše je potřeba pro výpočet řezů. Nejprveje zapotřebí vypočítat průnik tělesa s rovinou řezu, sestavit jednotlivé kontury anastavit jim orientaci.Jednotlivé kroky si detailně rozebereme:

1. Hledání průniku tělesa s rovinou řezu

K výpočtu průniku tělesa s rovinou řezu použijeme metodu Marching Squa-res, jejímž výstupem bude hranice tělesa.

Máme danou dvourozměrnou mřížku s indexy i a j (odpovídající krokůmna ose x a y) s rozestupem h. Mřížka je o rozměru m × n (hodnoty i =0, ...,m− 1 a j = 0, ..., n− 1). Označme si fij = f(x0+ ih, y0+ jh) hodnotyfunkce v jednotlivých bodech mřížky a f0 hodnotu, pro kterou hledámekřivku.

12

Page 22: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Každému bodu mřížky přiřadíme fij = f(x0+ ih, y0+jh). Každému čtverciv mřížce spočítáme index a z tabulky hran zjistíme, na kterých hranách ležíkoncové body úseček. Každé úsečce interpolujeme polohu krajních bodů nazákladě hodnot v mřížce. Nakonec úsečku vykreslíme.

Pokud se na popsaný postup zaměříme detailněji, tak něděláme ve skuteč-nosti nic jiného, než že pro každý vrchol čtverce určíme zda je vnitřnímbodem plochy ohraničené izokřivkou f(x, y) = f0. To určíme z podmínkyfij ≥ f0. Je zřejmé, že je-li jeden bod vnitřním bodem (fij ≥ f0) a druhývnějším bodem (fij < f0), pak musí křivka f = f0 procházet někde mezitěmito body. Na obrázku 15. jsou znázorněny všechny možné konfigurace.Díky ním můžeme každému čtverci jednoznačně přiřadit index.

Obrázek 15. Všechny možné konfigurace.

Index čtverce můžeme vyjádřit jako číslo ve dvojkové soustavě takto:index = 20A + 21B + 22C + 23D, kde A,B,C,D jsou hodnoty 0 nebo 1,podle toho, zda body A,B,C,D jsou vnitřními nebo vnějšími body. Celkověindex nabývá hodnot 0 . . . 15 a přesně nám rozlišuje jednotlivé případy.

Poté, co získáme daný index, se podíváme do tabulky úseček příslušícíchk danému čtverci. Odtud zjistíme, na kterých hranách leží konce úseček.Vzdálenost krajního bodu úsečky od krajních bodů mřížky by bylo možnéponechat h

2 , ale to by nám dávalo jen hrubý výsledek. Proto je vhodnějšípoužít lineární interpolaci.

A = 3 B = 3

C = 6D = 2 3

4 2

1

x

y

Obrázek 16. Příklad.

13

Page 23: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Tuto interpolaci si ukážeme na příkladu. Mějme čtverec viz. obr. 16. Hod-noty funkce v jednotlivých bodech máme napsané u jednotlivých vrcholů.Zadanou hranicí je hodnota funkce f0 = 4.

V našem případě, když dosadíme do vzorce index = 20A+21B+22C+23D,dostaneme index = 0+0+4+0 = 4. Pokud se podíváme do tabulky úsečekdefinovanou obrázkem 15., najdeme v ní, že krajní body úsečky leží nahranách 2 a 3. Na zálkadě lineární interpolace nyní spočítáme vzdálenostx a y od krajních bodů. Označíme si a hodnotu ve výchozím bodě a b vkoncovém. Nyní hledáme funkci ve tvaru:I(u) = mu+ n,I(a) = 0,I(b) = h,

kde h je délka hrany čtverce.

I(u) = f0−ab−a

.V našem případě tedy:

x =f0 − f(D)

f(C)− f(D)h =4− 26− 2

h =h

2,

y =f0 − f(B)

f(C)− f(B)h =4− 36− 3

h =h

3.

Jelikož toto číslo počítáme ze dvou koncových bodů hrany bez ohledu nato, ve kterém se nacházíme čtverci, bude výsledná křivka na společné hraněspojitá. Propojením celé mřížky dostaneme kompletní vrstevnici. Chybaoproti původní vrstevnici v principu nemůže být větší než je rozlišení h.

Při použití metody Marching Squares vznikají nejednoznačnosti. Na ob-rázku 17. není možné rozhodnout zda použít spíše úsečky v prvním řádku,nebo ve druhém.

Obrázek 17. Nejednoznačnosti Marching Squares.

V rámci algoritmu se jedná naštěstí pouze o věc konvence - pokudprvní a druhý řádek nekombinujeme bude výsledná křivka všude plynulenavazovat. Při použití případů z prvního řádku bude mít křivka tendencitvořit nesouvislé struktury, při použití případů z druhého řádku se budou

14

Page 24: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

tvořit souvislejší celky.

2. Sestavení kontur

Vstupem této části algoritmu je množina úseček S = s1, s2, ..., sn, zekterých chceme sestavit kontury. Koturu sestavujeme tak, že k němupřidáváme úsečky z množiny S a zároveň je z této množiny odebíráme.Úsečku přidáváme k mnohoúhelníku, který právě vytváříme, pokudněkterý její krajní bod inciduje s jedním ze dvou stávajících krajních bodůpolygonu. Pokud již nemůžeme k mnohoúhelníku žádné další úsečky přidata přitom není množina S prázdná, začneme vytvářet další konturu stejnýmzpůsobem.

3. Nastavení orientace kontur

Nastavení orientace kontur vyžaduje znalost hierarchie kontur v rámci řezu.Po sestavení kontur totiž nevíme, zda-li je kontura vnější nebo se jedná odíru.

X

E

FCB

DA

A

X

F

E

C

B

D

Obrázek 18. Řez a příslušná hierarchie kontur.

K určení hierarchie kontur v rámci jednoho řezu vytváříme tzv. strom vno-ření, který je zobrazen na obrázku 18. K vytvoření stromu je třeba určit,která kontura je vnější a která je díra. Využijeme faktu, že kontura je dí-rou, leží-li uvnitř jiné kontury. K tomu využijeme technika Ray-crossingu. Vprvním kroku zjistíme nejlevější průsečík přímky q s konturou k. Označímejej Pk. V druhém kroku zjišťujeme počet průsečíků přímky q s konturou lnalevo od Pl. Platí, že k je uvnitř l právě tehdy, když je počet průsečíkůlichý (viz. obr. 19.).

15

Page 25: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

k

l l k

Obrázek 19. Nalevo je počet průsečíků s l lichý, tj. k je díra, vpravo je k vnějšíkontura.

3.2. Rekonstrukce povrchu opláštěním kontur

V další fázi algoritmu, do které vstupuje množina mnohoúhelníkových kontur,se snažíme nalézt odhad původního tvaru povrchu ve formě trojúhelníkové sítě.Ve své podstatě se jedná o interpolaci křivek plochou, která je aproximovaná sítítrojúhelníků. Tyto algoritmy, které náleží do rodiny oplašťovacích algoritmů, jsoupublikovány zhruba od poloviny 70. let.Konstrukce pláště kontur není v obecném případě triviální úlohou. Při řezání

objektů totiž dochází ke ztrátě informací o datech mezi řezy. Tyto informace přirekonstrukci chybějí a proto je výsledkem jen hrubá aproximace povrchu.Metody opláštění kontur lze podle použitého principu rozdělit na Objemové

metody a Povrchové metody.Objemové metody vyžadují vzdálenost mezi řezy shodnou nebo alespoň porov-

natelnou s hustotou vzorků v řezu. Vzorky v řezech jsou chápány jako prostorovámřížka a pro vyplnění kontur se používají standardní algoritmy na hledání izo-lochy (například algoritmus Marching Cubes). Čím větší je však vzdálenost mezisousedními řezy, tím více tento přístup selhává, neboť je založen na překrývánípromítnutých kontur.Povrchové metody pracují přímo s řezy a interpolují postupně dvojice soused-

ních korespondujících kontur pásy trojúhelníků.Vzájemné přiřazení kontur je klíčovým problémem, na kterém závisí výsledná

rekonstrukce povrchu. Pro zjištění, zda jsou dvě kontury sousední (patří stejnémuobjektu) neexituje jednoznačný postup. K řešení je potřeba mít další informaceo struktuře vzorkovaného objektu. Jiný postup volíme v případě, kdy rekonstru-ujeme několik kulovitých útvarů a jiný postup při rekonstrukci objektu stromovéstruktury.Pro úplnost uveďme několik heuristických postupů:

- Plocha překrytí kontur. Nejjednodušší a současně nejpoužívanější heu-ristikou je dostatečná velikost plochy překrytí kontur v sousedních řezech.Překrytí je definováno jako velikost oblasti průniku kolmé projekce kon-tur. Poměr velikosti plochy překrytí k ploše větší z kontur, případně ploševzniklé jejím sjednocením porovnáváme se zadanou konstantou. Tento po-stup je použitelný pouze pro jednoduché tvary objektů při dostatečně malévzdálenosti řezů. Pokud zpracovávaná data nejsou dostatečně hustá pro

16

Page 26: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

překrytí obrysů stejného objektu v sousedních řezech, pak tyto metody vy-tvářejí více objektů.

Velikosti překrytí lze hrubě odhadnout plochou průniku obdélníkových obá-lek (bounding boxes), nicméně s rostoucí členitostí a protáhlostí je odhadstále nepřesnější. Mnohem přesnější je rasterizovat kontury do dvou bito-vých map a po vyplnění zjistit velikost průniku logickou operací AND jakopočet společných pixelů. Obr. 20.

Obrázek 20. Kritérium překrytí kontur.

- Zobecněné válce. Pokud má těleso stromovou strukturu kruhového čioválného průřezu, pak tyto data nejsou vhodná pro použití překrývajícíhokritéria. Využívá se tedy metody zobecněných válců, která používá globál-nější pohled na datovou množinu. Tuto metodu navrh Soroka v roce 1981.Válce tvoří řezy ve tvaru elips, jejichž středy leží přibližně na přímce (od-chylují se o méně než je zadaná chyba). K popisu jednotlivých elips námpak stačí pouze úhel natočení hlavní poloosy, souřadnice středu a délkypoloos (obr. 21.).

Obrázek 21. Zobecněné válce.

Podobnou metodu navrh Mayers v roce 1992. Jeho metoda pracovala vetřech krocích. V prvním se z elips sestavily válcové úseky, ty se ve druhémkroku pospojovaly do objektů. Ve třetí jsou nalezena větvení. Snahou této

17

Page 27: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

metody je sestavit co nejdelší válcové úseky. Uvedený postup je vhodný krekonstrukci dlouhých vláknitých či větvících se struktur bez cyklů. Slabýmmístem metody je první krok, při kterém může dojít ke spojení vzdálenýchvzájemně posunutých elips a k následnému šíření chyby.

- Strom minimálního pokrytí v grafu kontur. Tato metoda oproti před-cházející pracuje globálněji. Vznikla, aby se předcházelo propagacím chybvzniklých v prvním kroku algoritmu Zobecněných válců.

V první fázi se setaví graf možných spojnic kontur tak, aby každé kon-tuře odpovídal jeden uzel a každé možné spojnici (spojnice je každá možnádvojice kontur v sousednich řezech) jedna hrana. Tyto hrany jsou pak ohod-noceny podle vzdálenosti kontur. V tomto grafu potom hledáme strom mi-nimálního pokrytí. Tento strom se pak rozdělí na větvící se a nevětvící seúseky. Na obrázku 22. je znázorněno správné a chybné propojení kontur.

Obrázek 22. Správné a chybné propojení kontur.

Tato metoda dává pro větvení lepší výsledky než metody dříve uvedené anedochází zde k šíření lokálních chyb. Stejně jako přechozí metoda všakšpatně hledá objekty s cykly. Může tedy vytvářet chybné hrany, které pro-pojí oddělené objekty, které jsou blízko sebe.

Nyní, když už máme vzájemně přiřazené kontury, se dostáváme k poslednímuproblému, jako je nalezení meziřezového propojení, tj. vytvořit trojúhelníkovousíť z jejich bodů.

18

Page 28: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Propojení kontur

Tento problém můžeme chápat jako problém interpolování množiny rovinnýchkřivek plochou. Požadavkem je najít síť trojúhelníků, takovou, že trojúhleníkypokrývají celou plochu a vzájemně se nepřekrývají.Dva hlavní problémy jsou větvení a spojování kontur. Tyto dva problémy jsou

vzájemně symetrické (stačí jen zaměnit pořadí řezů).Některé z uvedených metod umí spojovat pouze kontury ve vztahu 1:1 a

triangulovat víko. Složitější algoritmy pak dovedou i interpolovat jednoduché ivícenásobné větvení (1 : 2 popřípadě 1 : n) nebo dokonce obecné větvení (m : n).Jednou z možných metod je tzv. Toroidní graf. V roce 1975 Keppel v [2]

tuto úlohu formuloval jako úlohu, která využívá teorie grafů, tj. na problém hle-dání cyklu s minimální cenou v toroidním grafu. Množina uzlů odpovídá všemmožným úsečkám propojující vrcholy sousedních kontur. Hrany pak představujítrojúhelníky, které vzniknou ze dvojice úseček se společným vrcholem. Aby byladodržena podmínka vzájemně se nepřekrývajících trojúhelníků, bereme v úvahupouze vodorovné a svislé hrany. Úlohu můžeme zjednodušit, pokud naleznemepočáteční nejlepší spojnici. Cesta pak v této spojnici začíná a končí.Metody využívající grafové algoritmy nám dávají optimální výsledek, ale jsou

výpočetně náročné pro kontury s mnoha vrcholy. Časová složitost těchto me-tod je O(n2). Častěji se tedy využívají heuristické algoritmy, které nezkoumajícelý obvod kontury, ale pouze definují kritéria, která musí splňovat nově přidanýtrojúhelník.Možná kritéria mohou být definována jen pro jeden trojúhelník (lokální met-

riky), nebo definována globálně. Častěji se využínají lokální metriky.

- Minimální povrch je nejjednodušší kritérium, protože se dá snadno určit(je to objem trojúhelníku). Nehodí se však pro případy, kdy jsou konturyvůči sobě vzájemně posunuty (obr. 23.).

Obrázek 23. Chybné spojení kontur.

- Směr přiřazení je kritérium preferující ty spojnice, jejichž směr se moc

19

Page 29: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

neliší od směru spojnice těžišť kontur. Zde nastává problém v případě za-vinutých kontur.

- Maximální objem. Objemem rozumíme objem klínu, který tvoří trojú-helníková záplata a spojnice těžišť kontur (obr. 24.). U konkávních částíkontur se snažíme tento objem minimalizovat.

Obrázek 24. Maximální objem.

- Minimální délka spoje. Toto kritérium bere v úvahu délku úsečky, kteráspojuje sousední kontury.

Mezi globální metriky patří například Ohodnocení mírou zásluh. Jednot-livé trojúhelníky na začátku ohodnotíme tak, že zásluha je rovna převrácené hod-notě délky. V další fázi dolaďujeme zásluhy sousedních trojúhelníků. Postupněodstraňujeme trojúhelníky, jejichž zásluha je nulová.Obecně nelze říci, které kritérium je nejlepší, protože pro každé kritérium lze

najít případ, kdy toto kritérium selhává.

20

Page 30: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

4. Dividing Cubes

4.1. Princip algoritmu Dividing Cubes

• Načteme objemová data a prahovou konstantu, pro kterou hledáme povrch.

• Do paměti načteme čtyři sousedící řezy.

• Vytvoříme krychli, kterou definujeme 8 body dvou sousedících řezů.

• Ve všech osmi vrcholech vypočítáme vektor gradientu - jednotlivé složkyvypočítáme jako rozdíl mezi předchozím a následujícím sousedem ve směrukaždé osy.

• Ohodnotíme každou krychli. Krychle je:

– Vnitřní - pokud intenzita všech vrcholů je menší než prahová konstanta

– Vnější - pokud intenzita všech vrcholů je větší než prahová konstanta

– jinak protínají povrch hledaného obrazu

• Rozdělíme všechny krychle na a × b × c subkrychlí, které jsou velké jakozobrazované body. Denzitu každého vrcholu vypočítáme lineární interpo-lací.

• Procházíme jednotlivé subkrychle a hledáme ty, které leží na hranici tělesa(některé vrcholy leží uvnitř a některé vně).

• Interpolujeme vektor gradientu těchto krychlí.

• Vypočítáme intenzitu světla každého povrchového bodu, projekcí normálo-vého vektoru podél směru pohledu .

Pro účely této práce byl algoritmus mírně poupraven. Hlavní myšlenka tétoúpravy spočívala v tom, že pokud krychle je celá vně nebo celá uvnitř, tak lineárníinterpolací nezískáme subkrychli, která by byla na hranici tělesa. Pro takovétokrychle je zbytečné počítat gradienty a subkrychle. Díky tomuto drobnému vy-lepšení dochází k značnému urychlení výpočtu při zobrazování objemových dat.Velikost tohoto zrychlení závisí na povaze zobrazovaných dat.Hlavním problémem této metody je zvolení počtu subkrychlí. Z výpočetního

tomografu nezískáváme data v pravidelné krychlové mřížce a je tedy potřebavypočítat poměr počtu subkrychlí v jednotlivých směrech.Z parametrů výpočetního tomografu získáme vzdálenosti mezi řezy a mezi

jednotlivýmu vzorky v rámci jednoho řezu. V naší implementaci metody DividingCubes jsou tato data uložena v ini souboru. Víme tedy poměry jednotlivých

21

Page 31: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

vzdáleností. Zvolíme počet subkrychlí pro jednu vzdálenost a pro ostatní dvědopočítáme pomocí tohoto poměru.Následující obrázky ukazují některé výsledky v závislosti na počtu subkrychlí:

1× 1× 2 2× 2× 4

5× 5× 10 8× 8× 16

Vykreslení této metody je sice rychlejší, než je tomu u algoritmu MarchingCubes, ale výpočet bodů narůstá s počtem subkrychlí. Kromě vysoké paměťovénáročnosti, jak již bylo řečeno, není zde možnost přiblížení tělesa. Přiblížením by

22

Page 32: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

vznikaly mezery mezi body a těleso by nebylo celistvé.Rovněž jako metodu Marching Cubes lze i tuto metodu obohatit o vylep-

šení, při kterém jsou filtrovány malé části, jak bylo popsáno a implementováno vmetodě Marching Cubes.

23

Page 33: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

5. Marching Cubes 33

Jak již bylo řečeno, tato metoda byla navržena tak, aby eliminovala jeden znedostatků metody Marching Cubes a sice ten, že tato metoda nebere v úvahutopologickou strukturu tělesa. Jednoduchý algoritmus může vést k tomu, že mo-delované těleso může obsahovat díry (jak je vidět na obrázku 7.). Stejná konfigu-race může být aproximována různými způsoby a jednoduchá 256 vstupová lookup tabulka metody Marching Cubes nedokáže rozhodovat mezi způsoby. K tomupotřebujeme zavést pojem korektní topologie a pozitivní vrchol. Vrchol nazývámepozitivní, pokud leží uvnitř zobrazovaného tělesa. Vrchol, který je vně nazývámenegativní vrchol. Řekneme, že výsledná síť je korektní, pokud je homeomorfnís F−1(α), kde F je stejná jako f v každém vrcholu a v každé krychli nezměníznaménko více jak jednou. Pokud je tato podmínka splněna, pak se vyvarujemedírám. Pokud aplikujeme stejný test na přilehlé krychle, tak nám to zajistí ply-nulý přechod mezi jednotlivými krychlemi.

Obrázek 25. Označení vrcholů.

K vyřešení nejednoznačností na stěně krychle (zda jsou dva pozitivní vrcholyA0, C0 na úhlopříčce spojeny skrz stěnu, nebo, zda jsou spojeny mimo stěnu) sepoužívá tzv. face test. Jednotlivé stěny krychle nazýváme face. Jednotlivé face sioznačíme, jak ukazuje obrázek 26..

Obrázek 26. Označení face.

Face test pro stěnu face (číslo stěny) s hodnotami vrcholů A, B, C, D pakmůže vypadat například takto:

24

Page 34: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Face testinput : A,B,C,D, faceoutput: true or false

beginif (abs( A ∗ C −B ∗D ) < ε) thenreturn face >= 0

return face ∗ A ∗ (A ∗ C −B ∗D) >= 0end

Vyřešením těchto nejednoznačností sice předejdeme vzniku děr, nicméně námto nezaručuje správnou topologii, jak ukazuje obrázek 8. Musíme totiž vyřešiti vnitřní nejednoznačnosti. Vnitřní dvojznačnost nastává, když dva úhlopříčněprotilehlé vrcholy A0 a C1, patří do vykreslované oblasti. Tyto vrcholy totiž mů-žeme buď spojit vnitřkem krychle, vytvořením jakéhosi tunelu, nebo je propojovatvnitřkem nebudeme. Nejprve vyřešíme face nejednoznačnost. Pokud existuje ře-těz vrcholů patřících do tělesa (pojmenujme si je pozitivní vrcholy), spojující tytodva vrcholy, které jsou propojeny buď hranami, nebo skrz pozitivní stěnu (facetest vrátí hodnotu true), pak zde není vnitřní nejednoznačnost. Jinak musímevyřešit, zda jsou tyto vrcholy propojeny pouze skrz krychli. Předpokládejme, žejsou propojeny přez vnitřek krychle. Jelikož zde platí trilinearita, pak funkce Fnemůže změnit znaménko víckrát než jednou v jednom segmentu. Musí tedy exis-tovat rovina, která je rovnoběžná s jednou ze stěn P = (At, Bt, Ct, Dt), kde At

leží na stejné hraně jako A0 a Ct leží na stejné hraně jako C1, a jsou zde tytovrcholy propojeny skrze tuto rovinu.V následující tabulce 1. je popsáno, pro které případy je zapotřebí dělat testy.

Rovněž je zde uvedeno jaké typy testů jsou nutné k určení případu, kterýmbude krychle aproximována. Tyto případy nalezneme v již zmiňované tabulcepřípadů 9. Více znamének ve sloupci znamená nutnost testovat více face krychle.Pro zajímavost je v tabulce uveden i počet trojúhelníků, který je potřeba k tri-angulaci povrchu.Při implementaci této metody byla rozšířená tabulka převzata z již předsta-

veného článku [4].Tato metoda sice vyřešila nejednoznačnosti, které vznikají při použití zjedno-

dušené look up tabulky, ale problém s tím, že metoda Marching Cubes generujemnoho trojúhelníků, se zde ještě zvětšuje. Pro každou krychli může v případě 13vzniknout až 12 trojúhelníků, což je 3x více než je tomu v jednoduché metoděMarching Cubes.

25

Page 35: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Tabulka 1. Testy jednotlivých případůPřípad Face test Vnitřní test Výsledný podpřípad Počet trojúhelníků

0 01 12 23 - 3.1 2

+ 3.2 44 - 4.1 2

+ 4.2 65 36 - - 6.1.1 3

- + 6.1.2 7+ 6.2 5

7 - - - 7.1 3+ - - 7.2 5- + - 7.2 5- - + 7.2 5+ + - 7.3 9+ - + 7.3 9- + + 7.3 9+ + + + 7.4.1 9+ + + - 7.4.2 9

8 29 410 + + 10.1.1 4

- - - 10.1.1 4- - + 10.1.2 8- + 10.2 8+ - 10.2 8

11 412 + + 12.1.1 4

- - - 12.1.1 4- - + 12.1.2 8+ - 12.2 8- + 12.2 8

13 45 podpřípadů, testuje se všech 6 face a případně i vnitřek14 4

26

Page 36: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

6. Algoritmy pro přímé zobrazování objemu

V předchozí kapitole byl popsán jeden ze dvou způsobů renderingu- Surfacerendering. Druhým typem zobrazování je Volume rendering (objemový rende-ring), kde zobrazujeme celá data bez výpočtu povrchu tělesa. Nemusíme tedypředem vědět, zda vzorek patří nebo nepatří k zobrazovanému objektu. Metodyna bázi Volume renderingu můžeme rozšířit o možnost zobrazování poloprůhled-ných materiálů a struktur uvnitř jiných.Cílem této části je ukázat metody zobrazující trojrozměrná data objemovými

metodami (Volume rendering).Jednou z nejznámějších metod je tzv. Ray casting neboli metoda vrhání pa-

prsku. Zobrazování dat touto metodou lze dále členit na:

• metody pracující s daty bez hledání povrchu,

• metody hledající povrch, které nezjišťují normály,

• metody hledající povrch a jeho normály.

Budeme brát v úvahu data v trojrozměrné mřížce. Písmenem Ii si označímehodnotu intenzity i-tého vzorku podél paprsku. Písmenem J označíme množinuzapočítaných vzorků (vzorků zasažených paprskem, případně vyhovují nějakémudalšímu kritériu) viz. 27.

Obrázek 27. Označení.

6.1. Metody nehledající povrch

Tyto metody tím, že nehledají povrch a nevyžadují žádné předzpracování,jsou rychlé a proto se hodí zejména pro vytváření náhledu.

27

Page 37: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Jednou z těchto metod je Maximum intensity projection. Tato metodazobrazuje pouze nejjasnější struktury podél paprsku.Pro každý bod se vypočítává hodnota I pomocí vzorce: I = maxi∈J Ii.

Obrázek 28. Výstup z programu Volume - maximum intensity projection.

Jinou metodou je Summed intensity projection. Tato metoda počítá jasjako součet jasů podél paprsku pomocí vzorce: I =

∑i∈J Ii.

Obrázek 29. Výstup z programu Volume - summed intensity projection.

Obdobou toho je Average intensity projection, kde se navíc jas průměrujedle vzorce: I =

∑i∈J Ii|J | .

28

Page 38: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 30. Výstup z programu Volume - average intensity projection.

29

Page 39: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

6.2. Metody s jednoduchým zobrazením povrchu

Tyto metody vyžadují znalost hraniční hustoty tělesa, které chceme zobrazit.Prvnímu pixelu na dráze paprsku, který patří do tělesa, přiřadíme hodnotu jasupodle hloubky (vzdálenosti od plochy procházející okrajem snímků).

Obrázek 31. Výstup z programu Volume - zobrazní povrchu bez výpočtu normál.

Takto zobrazený povrch ale nevypadá příliš objemově. Potlačuje šum vzorko-vání a s ním i hrany a nespojitosti.Ještě jednodušší metodou je zobrazit první pixel na dráze paprsku s jeho

hodnotou. Tato metoda nezobrazuje tvar, ale pouze barvu povrchu objektu.

Obrázek 32. Výstup z programu Volume - zobrazní povrchu bez výpočtu normálII.

30

Page 40: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

6.3. Metody zobrazující povrch s normálou

Těmito metodami získáme kvalitnější zobrazení objektu, díky tomu, že sesnažíme odhadnout orientaci povrchu v místě dopadu paprsku. Zmíníme tři nej-známější metody pro odhad normál.První metodou je Z-buffer gradient shadding. Normálu aproximuje

vektorem, jehož kolmým průmětem do plochy obrazovky je vektor gradientu vpaměti hloubky. Složky normály vypočítáme:

n0 = Z(px + 1, py)− Z(px − 1, py),n1 = Z(px, py + 1)− Z(px, py − 1),n2 = 1,

kde [px, py] jsou souřadnice pixelu, pro který počítáme normálu. Na konci jepotřeba takto vypočítaný vektor normovat. Tato metoda zachycuje tvar tělesa,ale na zaoblených površích jsou vidět vrstevnice (obrázek 33.).

Obrázek 33. Výstup z programu Volume - Z-buffer gradient shadding.

Další metodou je metoda Voxel gradient shading, která odhaduje oprotipředešlé metodě normálu podle gradientu v binárním objemu vzorků. Složkygradientu nabývají hodnot {−1, 0, 1} a složky výsledné normály nabývají jednuz 27 hodnot. Složky gradientu spočítáme dle následujících vzorců:

n0 = b(px + 1, py, pz)− b(px − 1, py, pz),n1 = b(px, py + 1, pz)− b(px, py − 1, pz),n2 = b(px, py, pz + 1)− b(px, py, pz − 1),

kde [px, py, pz] jsou souřadnice pixelu a hodnota b(px, py, pz) nabývající 1 nebo

31

Page 41: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

0 představuje funkci příslušnosti pixelu k povrchu. Stejně jako v předešlé metoděse i zde objevují vrstevnice (obrázek 34.).

Obrázek 34. Výstup z programu Volume - Voxel gradient shading.

Třetí metoda, kterou si představíme, je metoda Gray-level gradientshading, která předpokládá, že na povrchu dochází k největší změně hodnotvzorků, tj. opět počítáme s tím, že normála bude ve směru gradientu, ale budemezde narozdíl od předchozí metody počítat s původními hodnotami. Složkynormály tedy vypočítáme:

n0 = f(px + 1, py, pz)− f(px − 1, py, pz),n1 = f(px, py + 1, pz)− f(px, py − 1, pz),n2 = f(px, py, pz + 1)− f(px, py, pz − 1).

Obrázek 35. Výstup z programu Volume - Gray-level gradient shading.

32

Page 42: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

6.4. Metody uvažující integraci světla na dráze paprsku

Metody na tomto principu kombinují vrhání paprsku s osvětlením objemovýchdat. Barvu pixelu ovlivňuje osvětlení elementů, které jsou na dráze paprsku ktomuto bodu.Jedním z představitelů těchto metod a jedinou metodou, kterou si zde předsta-

víme je Levoyova metoda. Tato metoda chápe objem jako pole voxelů a pracujeve dvou krocích. Voxel si označíme X = [x, y, z]. V prvním kroku vypočítávámebarvu C(X) a průhlednost α(X) jednotlivých voxelů. Barvu určujeme je podlePhongova osvětlovacího modelu. Průhlednost se určí klasifikací, tj. hledáme-lipovrch s hustotou h, pak pixelům s h(x, y, z) = h přiřadíme neprůhlednost 1a ostatním 0. Pro odstranění šumu, můžeme pixelům s hodnotou blízkou hle-dané hustoty přiřadit neprůhlednost blízkou 1 (v závislosti na velikosti odchylekhustot).Dále se v této medodě využívá toho, že člověk vnímá obrysy a hrany inten-

zivněji než pozvolné přechody. Proto chceme zdůraznit rozhraní mezi objekty apotlačit vliv vnitřních voxelů. Toho lze dosáhnout vynásobením výsledné neprů-hlednosti velikostí vektoru gradientu α

′(X) = |▽h(X)|α(X).

Ve druhém kroku vytváříme z C(X) a α(X) výsledný dvojrozměrný obraz.Pro každý pixel je do objemu vyslán paprsek. Ten prochází pole C(X) a α(X) aakumuluje hodnoty jasu dle vzorce Cout = Cin(1− α(X)) + C(X)α(X). Paprsekvstupuje do objemu s intenzitou Cin a je částečně utlumen průchodem. Barevnousložku každého pixelu tedy vypočítáme:

C(R) =∑k

i=0{Ci(R)αi(R)∏k

j=i+1(1− αj(R))}

33

Page 43: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

7. A Simple and Flexible Volume Rende-ring Framework for Graphics-Hardware-based Raycasting

Jak bylo v vředchozích kapitolách uvedeno, tak exituje mnoho metod slou-žících k zobrazení prostorových dat. Jedním z cílů této práce je tyto metodysrovnat. K tomuto srovnání využijeme software Single Pass Volume RaycastingDemo od autorů Simona Stegmaiera, Magnuse Strengerta a Thomase Kleina,kteří efektivně implementovali 10 nejzajímavějších zobrazovacích metod za po-mocí knihovny OpenGL. Celý program je navržen s plnou podporou pro nejno-vější grafické karty a díky tomu je samotné zobrazování velice rychlé a efektivní.Základním stavebním kamenem aplikace Single Pass Volume Raycasting Demoje framework od stejných autorů, který je možné v podobě knihovny zahrnout dojakékoliv aplikace v jazycích C a C++. Metody, které byly do programu vybránybyly zvoleny tak, aby ukázaly variabilitu a snadnost použití tohoto frameworku.Podrobnější informace o implementaci najdeme v článku [9], který byl publikovánv roce 2005.Všechny shadery v Simple and Flexible Volume Rendering Frameworku vy-

užívají raycastingu, který používá opakování funkce. Díky tomu se vykreslováníprovede v jediném průchodu, což má vliv předevsím na rychlost a kvalitu, kterádosahuje výborných výsledků. V této kapitole podrobněji popíšeme některé im-plementované metody a rovněž představíme samotný program.Jednoduchou modifikací základního přímého volume renderingu je maximum

intensity projection. Tato metoda byla již popsána v předešlé kapitole. Výstuptéto metody v aplikaci Single Pass Volume Raycasting Demo je vidět na ob-rázku 36.Autoři do výběru rovněž zahrnuli nejsnadněji implementovatelnou metodu

zobrazující izoplochu a sice metodu využívající hledání změny diference na drázepaprsku. Na následující obrázku 37. je výstup z programu, kde je izoplocha zná-zorněna poloprůhlednou barvou.Přístup přímého volume renderingu a metod, které pracují s izoplochou mů-

žeme kombinovat. Hledané těleso je pak můžné zobrazovat jako izoplochu a jejíokolí jako poloprůhledný objem. Tato kombinace je znázorněna na obrázku 38.U metod zobrazující data jako izoplochu je důležité vypočítávání odrazu světla

od povrchu. Jedním ze základních metod je self-shadowing znázorněný na ob-rázku 39.Stejná technika byla použita k implementaci image-based lightening. Použili

zde metodu sphere mappingu, která je založená na tom, že těleso zobrazuje jakovysoce odrazivý materiál. Těleso je zobrazeno jako zrcadlová plocha. Výsledek jemožno vidět na obrázku 40.Dalším zde implementovaným rozšířením volume renderingu je metoda vo-

lume clipping. Zde byla implementovaná tak, že v každém bodě vzorku se rozho-

34

Page 44: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 36. Maximum intensity projection.

Obrázek 37. Transparent isosurface.

duje, zda leží uvnitř, nebo vně clipping geometrie. Tato geometrije je definovanájako povrch vzdáleného pole generovaného z polygonální sítě. Detailní informaceo této metodě lze najít v [12]. V Single Pass Volume Raycasting Demo bylo polezvoleno ve tvaru válce se středovou osou procházející tělesem. Na obrázku 41. jezřetelně vidět, že uvnitř lebky je díra ve tvaru válce.Žádná z již zmíněných metod neuspěla v modelování nepřímého útlumu světla.

Proto se autoři rozhodli implementovat ve frameworku metodu Transluency sha-der. Tato metoda pracuje tak, že zmenšuje intenzitu světla na základě vzdálenosti,

35

Page 45: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 38. Kombinace přímého zobrazení povrchu a izoplochy.

Obrázek 39. Isosurface.

kterou musel paprsek urazit než prošel objemem k hledanému povrchu. Třídatěchto metod je již popsána v subkapitole „Metody uvažující integraci světla nadráze paprskuÿ. Na obrázku 42. je vidět výstup této metody.Dalším možným přístupem k zobrazování dat, který je zcela odlišný od již

zmiňovaných metod, je refrakce. Tato metoda je v porovnání s ostatními uvede-nými metodami mnohem obtížnější na výpočt, na druhou stranu je implementaceje poměrně přímočará. Výsledek je vidět na obrázku 43.

36

Page 46: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 40. Sphere mapping.

Obrázek 41. Clipped volume rendering.

7.1. Ovládání programu

Program se spouští pomocí konzolového programu runme.exe. V zobrazenémkonzolém okně vidíme postup při výpočtu. Po dokončení výpočtů se v novémokně zobrazí data. Pomocí pohybu myši lze tělěsem otáčet, při stisku pravéhotlačítka a pohybu myšli zmenšovat či zvětšovat velikost zobrazení. Další nastavenílze provádět pomocí klávesnice. My si představíme jen nejzákladnějí klávesovézkratky pro ovládání programu.

37

Page 47: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 42. Metody uvažující integraci světla na dráze paprsku.

Obrázek 43. Refraction.

38

Page 48: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

klávesová zkratka funkcionalita

ESC, q ukončení programuF1 - F10 přepínání mezi metodami zobrazenímezerník animace zobrazeníw zobrazení hranice dat< / > zmenšení / zvětšení vzdálenosti vzorků{ / } zesvetlení / ztmavení pozadím / j zmenšení / zvětšení hraniční hodnoty zobra-

zovaného povrchu. / , zmenšení / zvětšení absorbce světlal zobrazení směru světelného paprskuCtrl + myš změna pozice světla

Více o tomto programu naleznete na adrese [11].

39

Page 49: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

8. Porovnání metod pro zobrazení trojrozměr-ných dat

V předchozích kapitolách bylo představeno několik metod, které se používájíke zpracování trojrozměrných dat. V našem případě budeme porovnávat tyto me-tody z hlediska vhodnosti zobrazení dat získaných z výpočetního tomografu. Tytometody dělíme do dvou základních skupin. Jednou z těchto skupin je skupina al-goritmů, které přímo zobrazují objem. Tomuto přístupu se souhrnně říká Volumerendering. Tyto metody se dále člení na metody, které pracují s daty, aniž by hle-daly povrch zobrazovaného tělesa. Jako zástupci byly uvedeny metody Maximumintensity projection, Summed intensity projection a Average intensity projection.Z hlediska zobrazení dat získaných z počítačového tomografu mají tyto metodyspíše informativní charakter. Jsou snadno implementovatelné, ale v našem pří-padě ne moc vhodné. Další skupinou jsou metody, které sice hledají povrch, alenezjišťují normály. Zobrazovaná tělesa pak nevypadají prostorově. Proto v na-šem případě nejsou příliš vhodné. Z hlediska vhodnosti použití na data získaná zvýpočetního tomografu jsou metody, které zobrazují povrch a navíc k němu hle-dají normály, nejvhodnější. Jako zástupce této skupiny metod byly v této práciuvedeny metody Z-buffer gradient shadding, Gray-level gradient shading, Spheremapping a Clipped volume rednering. Každá tato metoda hledá normály na po-vrchu tělesa odlišně, ale nedá se říci, která z nich by dávala nejlepší výsledky,protože všechny metody produkují kvalitativně srovnatelné výsledky. Poslednízde představenou skupinou jsou algoritmy, které uvažují integraci světla na drázepaprsku. Jako zástupce zde byla uvedena Levoyova metoda. Celkově metody pra-cující přímo s objemem, obzvláště poslední dvě zmíněné skupiny těchto metod,dávají velice dobré výsledky. Hlavní výhodou je, že tyto metody mohou být im-plementovány velice efektivně a může být k vykreslování použita přímo grafickákarta, čímž se vykreslování výrazně zrychlí. Velkou nevýhodou těchto metod jeale, že pracují s celým objemem a tím pádem mají velké nároky na paměť.Druhou skupinou metod zpracovávajících trojrozměrná data jsou metody,

které z dat počítají geometrickou reprezentaci povrchu. Tyto metody nepracujípřímo s daty, ale snaží se je aproximovat sítí trojúhelníků, nebo body, a až pakdata zobrazují. Zde představené metody se dále dělí na metody objemové a povr-chové. Objemové metody chápou vzorky jako prostorovou mřížku. Tyto metodyvyžadují vzdálenost mezi řezy shodnou nebo alespoň porovnatelnou s hustotouvzorku v řezu. Zástupci této metody jsou metody z rodiny Marching Cubes a me-toda Dividing Cubes. Nejznámější metoda Marching Cubes pracuje na poměrnějednoduchém principu a proto je nejčastěji implementována. Tato metoda mádva hlavní problémy. Jedním je, že generuje mnoho trojúhelníků a tím neúměrnězatěžuje paměť. Tento neduh je řešen v metodě Dividing Cubes. Zde se nepo-čítají trojúhelníky, ale metoda počítá a zobrazuje pouze body a tím negenerujenezobrazitelné detaily. Tato metoda však není vhodná k zobrazování dat získa-

40

Page 50: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

ných z výpočetního tomografu, protože zde chybí možnost zoomování. Druhýmnedostatkem metody Marching Cubes je, že nebere v úvahu topologii tělesa. Tomá za následek, že těleso nemusí být souvislé (mohou se v něm objevit díry) aněkdy spojuje tělesa, která jsou blízko sebe. Prvním pokusem o vyřešení těchtonedostatků vznikla metoda Marching Tetrahedra. Tato metoda je však složitějšína implementaci a generuje mnohonásobně více trojúhelníků. Z tohoto důvoduse v praxi tato metoda neujala. Mezi nezdařilejší úpravy metody určitě patřímetoda Marching Cubes 33. Tato metoda bere v úvahu topologii tělesa a místo15 případů, kterými metoda Marching Cubes aproximuje krychle, má takovýchpřípadů 32. Výsledky této metody jsou velice dobré, avšak ani tato metoda neřešímnožství generovaných trojúhelníků. O co hůř, tato metoda jich generuje ještěvíc. Například pro data zápěstí metodou Marching Cubes získáme 207 714 trojú-helníků. Metodou Marching Cubes 33 získáme trojúhelníků o více jak 1 000 více(208 836). Další představená metoda Dual Contouring, narozdíl od dříve zmí-něných vylepšení metody Marching Cubes, řeší problém množství generovanýchtrojúhelníků. Tato metoda slučuje trojúhelníky, které tvoří rovinu do jedné struk-tury. Bohužel tato metoda není úspěšná, co do správného aproximování povrchutělesa. Sloučením této metody a metody Marching Cubes vznikla nová a jedno-značně nejlepší metoda metoda Dual Marching Cubes. Tato metoda nejen, žezachovává správnou topologii tělesa, tak také generuje méně trojúhelníků. Zcelajiný pohled na hledání povrchu má metoda Opláštění kontur. Ta patří do rodinyalgoritmů povrchových. Tyto metody jsou hlavně vhodné pro aproximování dat,která mají větší rozestup mezi vzorky. Což není případ výpočetního tomografu,takže spíše než výhody této metody se zde projevují její nevýhody a těmi jsoumnožství různých přístupů pro aproximování dat. Jiné přístupy jsou vhodnějšípro data válcového tvaru a jiné pro data s množstvím kulových útvarů. Prototato metoda není moc vhodná pro data získaná z výpočetního tomografu, kdese v jednom vzorku dat můžou vyskytovat jak data válcového tvaru, tak datakulového.Přístupy zobrazování dat jak volume renderingem, tak surface renderingem

se mohou i kombinovat. Tato kombinace je obzvláště výhodná v případě, kdychceme zobrazit kost (použijeme surface rendering) a také zajímá-li nás polohaostatních tkání vůči této kosti. K tomu je vhodné použít volume rendering ob-zvláště poloprůhledný.

41

Page 51: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

9. Závěr

Tato diplomová práce navazuje na bakalářskou práci [3], která se týkala me-tody Marching Cubes a její implementace. Hlavním cílem této práce bylo porov-nat metodu Marching Cubes s jinými metodami, které se používají k zobrazovánítrojrozměrných dat, a nalézt nejvhodnější metodu k zobrazování dat získaných zvýpočetního tomografu.Byly zde představeny dva základní principy zobrazování dat. Volume a Suface

rendering. Z hlediska paměťové náročnosti jsou vhodnější metody surface rende-ringu, které nezobrazují celá data, ale vypočítávají povrch zobrazovaného tělesa aten pak zobrazují. Mezi nimi je jednoznačně nejvhodnější metoda Dual MarchingCubes. Co se týče rychlosti jsou však vhodnější metody Volume renderingu, kterémůžeme vykreslovat přímo pomocí grafické karty.Součástí této práce je i software „Vizualizace datÿ, který implementuje některé

v této práci popsané metody. Tento program byl navržen s cílem předvést tytometody, ale je možné ho použít jako koncovou aplikaci pro zobrazení dat z CT.

42

Page 52: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

10. Conclusion

This MSc. thesis builds on bachelor thesis [3], which presents the MarchingCubes method and its implementation. The main goal of this thesis was comparethe Marching Cubes method with other methods, which could be used to displaythree-dimensional data, and find the most suitable method for displaying dataobtained from the computer tomograph.There were presented two basic principles of imaging data. Volume rendering

and Suface rendering. In terms of memory consumption is preferable surfacerendering methods that do not display all the data, but calculated body surfaceof the display will then appear. Among them is clearly the preferred methodDual Marching Cubes. As far as rates are more appropriate methods of volumerendering, which can draw directly from the graphics card.Part of this work is software ”Vizualizace dat”, which implements some me-

thods, which are described in this thesis. This program was designed to demon-strate this methods, but it can be used as an application for displaying data fromCT.

43

Page 53: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Reference

[1] Cline H. E., Lorensen W. E., Ludke S., Crawford C. R., Teeter B. C.: Twoalgorithms for the three-dimensional reconstruction of tomograms., MedicalPhysics, May 1988.

[2] Keppel E.: Approximating complex surfaces by triangulation of contour li-nes., IBM Journal of Research and Development, 1975.

[3] Krmelová M.: Rekonstrukce 3D obrazu z počítačového tomografu., Bakalář-ská práce, 2009.

[4] Lewiner T., Lopes H., Vieira A. W., Tavares G.: Efficient implementationof Marching Cubes’ cases with topological guarantees., Journal of GraphicsTools, 2003.

[5] Levoy M.: Efficient Ray Tracing of Volume Data., University of North Ca-rolina.

[6] Payne B.A., Toga A.W.: Surface mapping brain function on 3D models.,Computer Graphics and Applications, IEEE, 1990.

[7] Schaefer S., Warren J.: Dual Marching Cubes: Primal Contouring of DualGrids., Rice University.

[8] Schaefer S., Warren J., Ju T.: Manifold Dual Contouring., Rice University.

[9] Stegmaier S., Strengert M., Klein T., Ertl T.: A Simple and Flexible Vo-lume Rendering Framework for Graphics-Hardware–based Raycasting., Vo-lume Graphics, 2005.

[10] Sviták R. : Rekonstrukce povrchu objektů z řezů., Diplomová práce, Plzeň,2001.

[11] Volume Raycasting http://cumbia.informatik.uni-stuttgart.de/ger/research/fields/current/spvolren/

[12] Weiskopf D., Engel T., Ertl T.: Volume Clipping via Per-Fragment Operati-ons in Texture-Based Volume Visualization., Procceedings of IEEE Visuali-zation, 2002.

[13] Wikipedie. http://cs.wikipedia.org

[14] Žára J., Sochor J., Felkel P.: Moderní počítačová grafika., Computer Press,Brno, 2004.

44

Page 54: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

A. Uživatelská příručka

Součástí této práce bylo i vytvoření aplikace, která bude převádět data získanáz výpočetního tomografu do 3D reprezentace pomocí několika různých metod.Tato aplikace je tytvořená pro operacční systém Windows. Je programovaná

v jazyce C++ s použitím Win32Api a OpenGl.Po spuštění aplikace se objeví dialogové okno, pomocí kterého se vyberou

data, ketrá chceme zobrazit. Inicializace velikosti dat se načítá z ini souboru,který má stejný název jako soubor s daty. Některé vlastnosti lze přenastavit.Například zda chceme zobrazit pouze kost, nebo i kůži, hranice hustoty kostinebo kůže a také průhlednost kůže. Dále si můžeme zvolit zda chceme filtrovatmalé části nebo ne.Aplikace je distribuovaná se zdrojovými kódy, spustitelným souborem a také

jsou přiložena data získaná z CT.

A.1. Struktura CD

Struktura k této práci přiloženého CD je následující.

bin/ binární spustitelné souborydata/ ukázková vstupní datadoc/ diplomová práce (včetně zdrojových kódů v LATEXu)src/ zdrojové kódy aplikace a pomocných programůspvolren/ program Single Pass Volume Raycasting Demo

A.2. Ovládání aplikace

Aplikace se ovládá myší. Tlačítkem Otevřít se objeví klasický dialog na ote-vření souboru. Po načtení souboru se může změnit nastavení vykreslování. Mů-žeme zaškrtnout co chceme vykreslovat a případně upravit hranice hustoty kostia kůže. Hustota kosti i kůže je číslo od 0 do 255 a možná průhlednost kůže je 0 -100 %. Dále zde můžeme stanovit, zda chceme malé části filtrovat a co bereme,jako malou část.Nyní máme několik možností. Můžeme si nechat zobrazit pouze snímky, které

získáme z CT (tlačítko Zobrazit snímky), nebo nechat interpolovat tato data avykreslit 3D model.Pokud chceme k vykreslení použít nějakou metodu Surface renderingu, vybe-

reme jí a klikneme na OK. Pokud chceme data vykreslit pomocí metody Volumerenderingu, tak vybereme jednu z metod Volume renderingu a klikneme na tla-čítko Renderovat.Samozřejmě můžeme dialog zavřít buď tlačítkem Cancel nebo zavžením dia-

logu.

45

Page 55: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 44. Dialog aplikace.

A.2.1. Zobrazit snímky

Otevře se nám okno, kde bude první snímek, který jsme získali z CT. Na dalšísnímek se můžeme posouvat šipkou vpravo (o snímek zpět šipkou vlevo). Neboje možný posun při stisku levého tlačítka myši a posun myši doprava/doleva.Dále můžeme snímky mírně přiblížit či oddálit a to šipkama nahoru a dolů,

případně tiskem pravého tlačítka myši a pohyb nahoru a dolů.Přiblížení nesmí být moc veliké, jinak budou snímky nesouvislé.

46

Page 56: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 45. Okno se snímky.

A.2.2. Zobrazení 3D modelu metodou Surface renderingu

Otevře se nám okno, kde bude vykreslen interpolovaný objekt. Stisknutímpravého tlačítka myši a pohybem nahoru a dolů lze objekt přibližovat či oddalo-vat. Stisknutím levého tlačítka myši a jejím pohybem lze objektem otáčet.Dále se dá aplikace ovládat pomocí klávesnice. Použitím šipek se objektem

rotuje a stisknutím shift + šipky nahorů a dolů se objekt přibližuje či oddaluje.Záhlaví okna tvoří název použité metody.

A.2.3. Zobrazení dat metodou Volume renderingu

Otevře se nám okno, kde bude vykreslen objekt. Stisknutím pravého tlačítkamyši a pohybem nahoru a dolů lze objekt přibližovat či oddalovat. Velkým zvět-šením dostaneme nesouvislá data. Záhlaví okna tvoří název použité metody.

A.3. Vstupní data

Aplikace bere jako vstupní data soubory s příponou .dat, které jsou získányz CT. Dále ke každému takovému souboru musí existovat inicializační soubor.Struktura inicializačního souboru je:Columns=224Rows=256Start=1End=300

47

Page 57: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

Obrázek 46. Okno s 3D modelem.

Obrázek 47. Okno s daty zobrazenými pomocí metody Volume renderingu.

Bits=8SpacingX=0.888SpacingY=0.888

48

Page 58: Metody modelování tìlesa z rovinných øezùtělesa, zejména metoda Marching Cubes. V této práci budou podrobněji popsány další metody modelování, obzvláště metoda Dividing

SpacingZ=0.900SkinExtr=50BoneExtr=220

Columns, rows značí počet sloupců a řádků každého snímku (rozlišení), rozdílmezi start a end je počet snímků. Spacing je zvětšení, které je potřeba apliko-vat ve všech směrech, aby kost měla správné proporce. SkinExtr a BoneExtr jedoporučená hranicehustoty kosti a kůže.

49