1 / 20

Vizuali zácia

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:

storm
Download Presentation

Vizuali zácia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vizualizácia

  2. Vizualizácia Vizualizácia je reprezentácia dát pomocou obrazu

  3. 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: • 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) povrchová metóda objemová metóda graf

  4. Povrchové metódy Prí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: Ak si zobrazíme 2D rez stredom kocky rovnobežný s dolnou podstavou, dostaneme takýto obrázok:

  5. Povrchové 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:

  6. Povrchová 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)=128 f(x,y,z)=1 f(x,y,z)=200

  7. Algoritmus 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 trojuhloníky aproximujúce časť izoplochy bod vnútri izoplochy kocka bod vonku z izoplochy

  8. Algoritmus 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.

  9. A:H1 X:H B:H2 Algoritmus 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. Bod hrany X, v ktorom sa nadobúda hodnota H, zistíme pomocou lineárnej interpolácie. Platí: a teda:

  10. Algoritmus 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:

  11. Objemové 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é.

  12. Objemové 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é.

  13. Objemové zobrazenie priehľadnosť podľa hodnoty aj gradientu priehľadnosť len podľa hodnoty

  14. voxel V1 lúč 3D objem voxel Vn 2D obraz Objemové 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í: 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.

  15. Vizualizá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

  16. Vizualizá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.

  17. Vizualizá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é.

  18. častica Vizualizá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.

  19. sledovaný bod sktreakliny pre rôzne časové okamihy Vizualizá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.

  20. Vizualizá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.

More Related