vizuali zácia

20
Vizuali Vizuali zácia zácia

Upload: storm

Post on 14-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Vizuali zácia. Vizualizácia. Vizuali zácia je reprezentácia dát pomocou obrazu. Vizualizácia skalárnych dát. Skalárne dáta sú dáta, kde je pre každý bod daná jedna hodnota Pre reprezentáciu takýchto dát sa najčastejšie používajú tieto spôsoby: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Vizuali zácia

VizualiVizualizáciazácia

Page 2: Vizuali zácia

VizualizáciaVizualizácia Vizualizácia je reprezentácia dát pomocou obrazu

Page 3: Vizuali zácia

Vizualizácia skalárnych dátVizualizácia skalárnych dát Skalárne dáta sú dáta, kde je pre každý bod daná jedna hodnota Pre reprezentáciu takýchto dát sa najčastejšie používajú tieto spôsoby:

grafy, ak sa jedná o vyjadrenie funkčnej závislosti povrchové metódy, ktoré zobrazujú len nejaký povrch (plochu) reprezentujúci dáta, napr. izoplochu objemové metódy, ktoré priamo zobrazujú celý objem dát (tzv. volume rendering)

graf povrchová metóda objemová metóda

Page 4: Vizuali zácia

Povrchové metódyPovrchové metódyPríklad: Povrchová reprezentácia 3D skalárnych dát Majme danú kocku s dĺžkou hrany 100 s ľavým dolným predným vrcholom v bode (0,0,0). Nech sú dané hodnoty v každom voxeli (x,y,z) kocky takto:

inakzyxzyxf

zyxakzyxf

222

222

)50()50()50(35

255255),,(

35)50()50()50(0),,(

Ak si zobrazíme 2D rez stredom kocky rovnobežný s dolnou podstavou, dostaneme takýto obrázok:

Page 5: Vizuali zácia

Povrchové metódyPovrchové metódy Vidíme, že v obrázku sú hodnoty 0...255 a vyskytujú sa v ňom jasné štruktúry. Ak by sme si dali zobraziť celý 3D objem, dostaneme takýto obrázok:

Page 6: Vizuali zácia

Povrchová reprezentáciaPovrchová reprezentácia Keďže sú v obrázku viditeľné štruktúry, môže byť užitočné zobraziť si množiny bodov, pre ktoré je v každom ich bode rovnaká hodnota – tzv. izoplochy. Izoplochy sú plochy, nezobrazujú celé dáta, ale len povrch nejakej ich časti. Preto hovoríme o povrchovej reprezentácii.

f(x,y,z)=1 f(x,y,z)=128 f(x,y,z)=200

Page 7: Vizuali zácia

Algoritmus Marching cubesAlgoritmus Marching cubes Tento algoritmus sa používa na zostrojenie izoplochy. Výstupom je sieť trojuholníkov, ktoré sú aproximáciou izoplochy pre danú hodnotu.

Princíp metódy spočíva v tom, že si zvolíme malú kocku, ktorú postupne posúvame po celom 3D objeme. Pre túto malú kocku vždy zistíme, či jej vrcholy ležia vo vnútri danej izoplochy alebo vonku. Na základe toho určíme trojuholníky, ktoré aproximujú tú časť izoplochy, ktorá danú kocku pretína. izoplocha

kocka

trojuhloníkyaproximujúce časť izoplochy

bod vnútri izoplochy

bod vonku z izoplochy

Page 8: Vizuali zácia

Algoritmus Marching cubesAlgoritmus Marching cubes Kocka má 8 vrcholov a každý vrchol označíme buď 1 (ak je vnútri izoplochy) alebo 0 (ak je vonku). Tým nám vznikne 8-bitový kód a celkovo môže byť 256 takýchto kódov, ktoré zodpovedajú 256 rôznym polohám kocky voči izoploche. Na obrázku je 15 základných polôh, ostatné z nich vzniknú symetriou,rotáciou, prípadne inverziou.

Page 9: Vizuali zácia

Algoritmus Marching cubesAlgoritmus Marching cubes Teraz určíme vrcholy trojuholníkov. Pre všetkých 256 prípadov je zostrojená tabuľka, v ktorej nájdeme, na ktorých hranách budú vrcholy ležať. Keďže kocky sú obyčajne veľmi malé oproti rozmerom obrazu, býva ich veľké množstvo, a preto sa oplatí mať takéto informácie v tabuľke. Keď už nájdeme hrany, na ktorých budú ležať vrcholy trojuholníkov, potrebujeme určiť, kde presne sa tieto vrcholy budú nachádzať. Majme teda hranu, na ktorej sa nachádza vrchol. Nech hodnota v prvom vrchole je A je H1, a hodnota v druhom vrchole je B je H2. Ďalej nech hodnota izoplochy je H, t.j. izoplochu tvoria všetky body, kde f(x,y,z)=H.

A:H1

B:H2

X:H

Bod hrany X, v ktorom sa nadobúda hodnota H, zistíme pomocou lineárnej interpolácie. Platí:

a teda:

AB

AQHHHH

)( 121

12

1)(HH

HHABAQ

Page 10: Vizuali zácia

Algoritmus Marching cubesAlgoritmus Marching cubes Posledné, čo musíme vypočítať, sú normály k izoploche vo vrcholoch trojuholníkov. Tieto normály budeme potrebovať, ak budeme chcieť izoplochu osvetliť a tieňovať. Normálu vo vrchole trojuholníka opäť vypočítame pomocou lineárnej interpolácie. Zistíme, na ktorej hrane vrchol leží a potom urobíme lineárnu kombináciu normál vo vrcholoch hrán. Normálu vo vrchole hrany získame odhadom tak, že aproximujeme gradient v danom bode. Použijeme na to numerické derivácie:

h

hzyxfhzyxfzyxg

h

zhyxfzhyxfzyxg

h

zyhxfzyhxfzyxg

z

y

x

2

),,(),,(),,(

2

),,(),,(),,(

2

),,(),,(),,(

Page 11: Vizuali zácia

Objemové zobrazenieObjemové zobrazenie Pri objemovom zobrazení (volume rendering) nezobrazujeme len časť dát, ale snažíme sa zobraziť celý objem dát. Aby sme mohli vidieť “dovnútra”, potrebujeme špeciálnu techniku. Princíp volume renderingu spočíva v tom, že každému bodu objemu priradíme istú farbu a priehľadnosť. Tým zabezpečíme, že všetky časti objemu budú aspoň čiastočne viditeľné a vzájomne rozlíšiteľné.

Page 12: Vizuali zácia

Objemové zobrazenieObjemové zobrazenie Volume rendering sa teda skladá z nasledujúcich krokov:

1. Vytvorenie poľa farieb – v tomto kroku priradíme každému bodu objemu nejakú farbu. Farby sa prideľujú tak, aby body s rovnakou hodnotou f(x,y,z) mali rovnakú farbu. Farbu bodu označíme C(x,y,z).

2. Vytvorenie poľa priehľadností – každému bodu priradíme priehľadnosť. Tá má hodnoty od 0 (úplná priehľadnosť) do 1 (úplná nepriehľadnosť). Priehľadnosť označíme O(x,y,z) (opacity).

3. Upravenie priehľadnosti podľa gradientu – tento krok je nepovinný, používa sa, ak chceme zvýrazniť hrany v obraze (na hranách je veľká zmena v dátach - veľkosť gradientu je veľká). Postupujeme tak, že priehľadnosť O(x,y,z) vynásobíme veľkosťou gradientu g(x,y,z):

O’(x,y,z)=|g(x,y,z)|O(x,y,z)Takto dosiahneme, že oblasti, kde nastáva veľká zmena (t.j. hrany) budú menej priehľadné a teda budú zvýraznené.

Page 13: Vizuali zácia

Objemové zobrazenieObjemové zobrazenie

priehľadnosť len podľa hodnotypriehľadnosť podľa hodnoty aj gradientu

Page 14: Vizuali zácia

Objemové zobrazenieObjemové zobrazenie Keď máme priradené farby a priehľadnosti, musíme ešte z 3D objemu vytvoriť 2D obraz. To urobíme metódou vrhania lúča. Cez každý pixel 2D obrazu vyšleme do 3D objemu lúč, pomocou ktorého určíme výslednú farbu v danom pixeli. Nech na lúči leží n voxelov 3D objemu. Nech má najvzdialenejší voxel index 1 a najbližší index n. i-ty voxel označme Vi, aktuálny pixel 2D obrazu označme P. Potom platí:

n

i

n

ijjii VOVOVCPC

1 1

))(1()()()(

Vzorec môžeme chápať takto: Každý voxel prispieva k výslednej farbe svojou farbou. Tento príspevok je väčší, ak je voxel menej priehľadný, preto C(Vi)O(Vi). Zároveň však treba brať do úvahy aj priehľadnosť voxelov, ktoré ležia pred ním. Ak je pred ním nejaký uplne nepriehľadný voxel (O(Vj)=1), celý súčin bude nulový. Ak sú všetky predchádzajúce voxely úplne priehľadné, súčin bude 1, teda ich vplyv nebude žiadny.

2D obraz

lúč

3D objem

voxel V1

voxel Vn

Page 15: Vizuali zácia

Vizualizácia vektorových dátVizualizácia vektorových dát Vektorové dáta sú dáta, kde je v každom bode (voxeli) objemu daných niekoľko hodnôt, teda vektor. Vektorové dáta sa môžu zobraziť dvomi spôsobmi:

1. Redukcia na skalárne dáta – namiesto vektorov sa zobrazí nejaká ich skalárna charakteristika, napr. veľkosť,skalárny súčin s nejakým vektorom alebo len jedna zložka vektora. 2. Znázornenie samotných vektorov – pri tomto spôsobe sa snažíme nejakým spôsobom zobraziť skutočné vektory, teda ich najmä ich smer a prípadne veľkosť.

vektory veľkosti vektorov

Page 16: Vizuali zácia

Vizualizácia vektorových dátVizualizácia vektorových dát Ak chceme znázorniť samotné vektory, môžeme použiť rôzne nájstroje:

1. Vektorové glyfy – sú to grafické objekty, ktoré predstavujú vektory, t.j. dokážu nejakým spôsobom znázorniť smer vektora alebo jeho veľkosť. Typickým glyfom pre vektor je napr. šípka.

Page 17: Vizuali zácia

Vizualizácia vektorových dátVizualizácia vektorových dát 2. Prúdnice (streamlines) – prúdnice sú krivky, ktoré znázorňujú smer prúdenia daný vektorovým poľom. Majú tú vlastnosť, že dané vektory sú k nim dotykové.

Page 18: Vizuali zácia

Vizualizácia vektorových dátVizualizácia vektorových dát 3. Sledovanie častice (particle tracking) – princíp spočiva v tom, že si predstavíme časticu vloženú do vektorového poľa a sledujeme jej dráhu. Ak je vektorové pole statické, t.j. nemení sa v čase, dráha je v podstate prúdnicou. Ak je pole v čase premenlivé, potom dráha častice ukáže, ako prebieha prúdenie dané týmto poľom.

častica

Page 19: Vizuali zácia

Vizualizácia vektorových dátVizualizácia vektorových dát 4. Streakline – je to krivka, na ktorej v danom okamihu ležia všetky častice, ktoré v minulosti prešli určitým bodom.

sledovaný bodsktreakliny pre rôznečasové okamihy

Page 20: Vizuali zácia

Vizualizácia vektorových dátVizualizácia vektorových dát 5. Time line – je to skupina kriviek, ktorá vznikne tak, že naraz uvoľníme skupinu častíc ležiacich na jednej priamke alebo v jednej rovine a potom sledujeme ich dráhy

6. Blob tracing – v tomto prípade sledujeme nejaký väčší zhluk častíc

7. Stuhy (ribbons) – sú to zoskupenia kriviek (prúdnice, streakline), ktoré vytvárajú útvar podobný stuhe. Umožňujú zobraziť rôzne skrútenia vo vektorovom poli.