"Visualising Video Sequences Using Direct Volume Rendering" von Gareth Daniel, Min Chen

Jorit Posset

Christian Prossenitsch

Funktioniert am besten auf ATI Karten. Horseshoe funktioniert auf NVidia Karten nicht.

Im Rahmen der Übung von Visualisierung 2 wurde das Paper "Visualising Video Sequences Using Direct Volume Rendering" von Gareth Daniel und Min Chen implementiert. Das in dem Paper vorgestellte System soll unter Anwendung von Volumenvisualisierungstechniken Videosequenzen 3-dimensional darstellen und visuell zusammenfassen. Starke Änderungen im Video sollen entsprechend visualisiert und leicht erkennbar gemacht werden.

Das Programm wurde mit dem Qt Framework implementiert. Als IDE kam Qt Creator zum Einsatz. Die Graphikpipeline wurde mit OpenGL 3.3 und GLSL implementiert.

Wenn das Programm gestartet ist, erscheint das Hauptfenster mit allen Optionen und Einstellungsmöglichkeiten. Mit dem Button "Select Video File" erscheint ein FileDialog, mit dem eine Videodatei ausgewählt werden kann. Es werden alle Formate unterstützt, für die ein Codec vorhanden ist. Wurde ein Video in einem unterstützten Format ausgewählt, wird unter "File Information" der Pfad und die Auflösung des Videos angegeben. Unter Settings kann das Start-Frame, die Step-Size (jedes i-te Frame wird verarbeitet) und das End-Frame angepasst werden. Mit einem Klick auf "Load Video" wird das Video geladen. Die zuvor ausgegrauten Visualisierungeinstellungen werden nach einem erfolgreichen Laden angezeigt. Unter Style kann der Visualisierungstil angepasst werden (Horseshoe oder Blockdarstellung).

Unter Metric kann man eine Differenzenmetrik auswählen. Die Differenzenmetriken stellen Unterschiede zwischen zwei benachbarten Frames dar. Jede Metrik berechnet sich anders. Durch die Auswahl einer Metrik werden starke Veränderungen der Videosequenz besser dargestellt. Mit dem "Raycasting step size" Slider kann die Step Size des Raycasting Algorithmus angepasst werden. Kleinere Werte bedeuten bessere (feinere) Ergebnisse, verbrauchen aber auch mehr Graphikleistung. Mit dem Slider im "Box Size" Menü kann die Größe der Box angepasst werden. Dazu muss als Style "Box" ausgewählt sein. Durch einen höheren Wert wird die Box verlängert und die Visualisierung kann genauer untersucht werden. Mit dem Slider unter dem Rendering-Fenster kann durch die Frames gescrollt werden.

Im rechten unteren Eck befindet sich die Transferfunktion. Durch einfaches Links-Klicken könne neuen Punkte gesetzt werden, welche die Deckkraft (opacity) der Transferfunktion angeben. Klickt und zieht man bereits vorhandene Punkte, können diese verschoben werden. Zu Beginn sind 2 Punkte unten links und rechts vorhanden. Diese können nur vertikal bewegt werden. Klickt man mit der rechten Maustaste auf einen Punkt, kann der entsprechende Punkt gelöscht werden. Mit einem Klick mit der mittleren Maustaste auf einen Punkt kann man dessen Farbe anpassen. Die Standardfarbe für neue Punkte ist schwarz. Die gesetzen Punkte sind mit geraden Linien miteinander verbunden.

Das Render-Fenster bleibt zu Programmstart standardmäßig weiß, da die Deckkraft der Transferfunktion zu Beginn auf 0 gesetzt ist. Durch Anpassung der Transferfunktion wird die Visualisierung sichtbar. Durch Links-Klicken und Bewegen der Maus kann die Visualisierung gedreht werden. Durch Drehen des Mausrads kann Hinein- und Hinausgezoomt werden. Durch Klicken und Bewegen der mittleren Maustaste ändert sich die Position der Kamera.

Binarys

Dokumentation

Quellcode