---
# System prepended metadata

title: Visual Computing

---

###### tags: `FS5
# Visual Computing

## 1. VL: Einführung
### 1.1 Visual Computing Definition
- VC eine Kombination mehrerer IT Bereiche, in denen überwiegend mit Bildern und Modellen gearbeitet wird
### Vier exemplarische Themenbereiche
#### 3D Internet
- Erweiterung des textuell aufgefassten Dokumentenbegriffs auf den Bereich der 3D Modelle
- Anwendungsmöglichkeiten
    - Modellerzeugung
    - Medical Computing
#### Skalierbare Objektmodellierung & -erkennung
- Heutige Erkennung auf hunderte Kategorieren beschränkt, nötig sind aber 10 Tausende
- neue Kategorien müssen anhand weniger Beispiele erlernbar sein.
#### Big Data / Visual Analytics
- geeignete Analyse und explorative Erschließung von abstrakten, heterogenen und großen Datenmengen kann in vielen Bereichen nützlich sein
- Visual Analytics kombinieren Ansätze von ML mit neuartigen Visualisierungsansätzen und/oder Mensch-Maschine Interaktionen
#### Scene Understanding
- Personen Detektion und Tracking (auch in komplexen Situationen)
- Anwendungen
    - Automotive Safety & Service Robotics
    - Homeland Security
    - multimediale Suche im Internet
    - Ambient Assisted Living
- Ziel: eine in Bildern erfasste Szene vollständig zu modellieren und darzustellen

### 1.2 Generalisierte Dokumente 
#### Retro-Digitalisierung vs Digital Creation
- Digitalisierung von 3D Objekten aufwendig und zeitintensiv
- Werkzeuge für Massendigitalisierung fehlen
- effektive 3D-Massiendigitalisierungswerkzeuge und Workflows zu erstellen ist wichtiges Ziel
#### Generative Modeling Language (GML)
- Progammiersprache zur Beschreibung von dreidimensionalen Formen
- generativer Ansatz
    - keine Objektlisten
    - Objekterzeugende Operationen werden zur Datenrepräsentation verwendet


## 2. VL: Wahrnehmung
### 2.1 Allgemein
#### Human-Computer Interaction (HCI)
- Mensch:
    - explizite Eingaben (Maus, Tastatur, Sprache, Gestik, ...)
    - implizite Interaktion (Kontextinformationen, Sensorik)
- Computer:
    - visuelle Ausgabe (Windows, Icons)
    - andere Ausgabemodalitäten (Sprache, Haptik)

#### Kognition
- Prozesse, die mit dem Wahrnehmen und Erkennen zusammenhängen (Beurteilen, Erinnern, Vorstellen, Gedächtnis, Planen, ...)

### 2.2 Modulares 3-Stufenmodell der menschlichen Informationsverarbeitung
- 3 Stufen
    - Wahrnehmung von Eindrücken mit den Sinnen
    - Entscheidung der Reaktion im Gehirn
    - Reaktion durch den Körper
![](https://i.imgur.com/PHli8Xa.png)
#### Untersysteme der Wahrnehmung und Reaktion
- Perception
    - visuell
    - akustisch
    - haptisch
- Ausgabe
    - stimmlich
    - motorisch
- Bearbeitungszeit
    - Perception: avg. 100ms
    - Cognition: avg. 70ms
    - Reaction: avg. 70ms

#### Klangwahrnehmung (audition)
- Hauptkomponenten von Klängen
    - Klangfarbe (timbre)
    - Tonlage (pitch)
    - Lautstärke (loudness)

#### Berührungswahrnehmung
- Komponenten
    - Tastsinn (tactile): Temperatur, Schmerz, Druck, Textur
    - Propriozeption: Wahrnehmung der Bewegung und Lage der eigenen Körperglieder
- Haptik interagiert stark mit Sehen und Hören
    - bei widersprechenden Informationen können Illusionen entstehen
    - Illusionen können für Infovermittelung verwendet werden

#### Motorische Benutzerausgabe
- diskret: Schalter, Buttons
- kontinuierlich: Hebel, Analogstick
- Beschränkt durch Geschwindigkeit, Stärke, Koordination, ...
- Neurologisch mit haptischem System verbunden (Reflexe)
- Muscle Memory: Relevante Positionen im Raum werden gelernt

### 2.3 Wahrnehmung

#### Das Auge
- visueller Reiz erzeugt physikalische Rezeption
- physikalische Reizung erzeugt neuro-physiologisches Signal
- Aufbau
    - optisch abbildende Elemente
        - Hornhaut (Kornea)
        - Linse (Scharfstllung)
    - Iris (Blendenmechanismus)
    - Retina (Netzhaut) mit Rezeptoren
        - Blinder Fleck wegen Sehnerv
        - fovea centralis: Bereich der höchsten Auflösung 

#### Photorezeptoren
- Stäbchen
    - 100-120 Mio
    - hauptsächlich außerhalb der Fovea
    - Empfindlichkeitsmaximum bei 498 nm (= "grün")
    - sind beim skoptischen Sehen (Nachtsehen) dominant
- Zapfen
    - 7-8 Mio
    - vor allem in Fovea
    - 3 Typen für Farbsehen
    - Empfindlichkeitsmaxima 
        - 420 nm (blau)
        - 534 nm (grün)
        - 564 nm (rot)
    - sind beim photopischen Sehen (Tagsehen) dominant

#### Signalverarbeitung in Retina
![](https://i.imgur.com/l2K3vcR.png)

- Horizontal Zellen
    - kombinieren mehrere Rezeptoren einer Region
- Amakrin-Zelle
    - Zeitliche Verarbeitung
- Bipolar-Zellen
    - Informationsfilter: sammeln, gewichten, weiterleiten
- Ganglien-Zellen
    - Integrieren Informationen
    - Kontrastwahrnehmung

#### Helligkeit
- brightness
    - wahrgenommene Lichtmenge einer selbstleuchtenden Lichtquelle (Bsp Lampe)
- lightness
    - wahrgenommene Lichtmenge von einer reflektierenden Oberfläche
    - ist nicht absolut sondern subjektiv
    - abhängig von:
        - Reizstärke
        - Vorherige Lichtsituationen (Adaption)
        - Lichtverhältnisse der Umgebung
- Konrast als Verhältnis
    - $m=k=\frac{L_{max}-L_{min}}{L_{max}+L_{min}}$ 
- Hell-Dunkel-Kontrast wichtige Empfindungsgröße für Formsehen, Objektsehen, ...
- Unterschied muss groß genug sein (>= 0.8%)

#### Erkennung kleiner Details
- begrenzt durch 
    - optische Eigenschaften des Auges
    - Abtastung durch Rezeptoren
    - nervöse Verarbeitung
- Maß
    - Kontrastempfindlichkeit
    - Schwellenkontrast

#### Frühe Wahrnehmung
- gewisse Änderungen werden schneller wahrgenommen als andere
    - Farbe
    - Richtung
    - Bewegung
    - Größe
    - Beleuchtung
- Aufmerksamkeit kann darüber gelenkt werden

#### Informationsextraktion
- Reiz $\neq$ Wahrnehmung
- weitere Faktoren
    - Kontext
    - Individuum
    - Erwartung
    - ...
- Wahrnehmung kein direktes Abbild der Realität
- Wahrnehmung steht mit Realität in einer Best-Fit-Relation
- Wahrnehmung adaptiert sich (z.B. bei Kopfstand)

#### Raumwahrnehmung 
- besteht aus
    - Tiefenwahrnehmung
    - Entfernungs- und Distanzwahrnehmung
    - Ausrichtung des Körpers im Raum
- Beteiligte Wahrnehmungssysteme
    - verstibuläres System (Innenohr)
    - haptisch-somatisches System
    - Auditives System
    - Propriozeptives System
    - Visuelles System

#### Depth Cue Theorie
- Raumwahrnehmung des visuellen Systems basiert auf Hinweisreizen
- 3 Kategorien
    - binokulare Depth Cues (beide Augen)
        - Disparität / Parallaxe
        - Akkommodition (variable Krümmung der Augenlinsen -> Scharfstellen)
        - Konvergenz (die Augen nach Innen drehen)
    - Pictorial Depth Cues (ein Auge)
        - Verdeckung
        - Fokus und Blur
        - Vertraute Größen
    - dynamische Depth Cues
        - Bewegungsparallaxe
        - Bewegung von Highlights
        - Interposition
- Auswertung von Depth Cues
    - Verschiedene Cues haben unterschiedlichen Informationsgehalt
    - nicht redundant sondern additiv
    - ein Depth Cue kann dominieren
    - unteschiedliche Depth Cues werden für verschiedene Tasks unterschiedlich gewichtet
- mögliche Tasks
    - Größeneinschätzung
    - Entfernung einschätzen
    - Navigation in 3D
    - Kollisionszeit abschätzen
- Raumwahrnehmung

### 2.4 Aufmerksamkeit
- Reiz $\neq$ Wahrnehmung
    - Reizaufnahme limitiert
    - Bruchteil der Informationen stehen zur kognitiven Verarbeitung zur Verfügung
    - Aufmerksamkeit und externe Faktoren wichtige Einflußfaktoren
- Wahrnehmung partielle Hypothese basierend auf unvollständigen Informationen

#### Aufmerksamkeit: Gateway to Memory
- Veränderungsblindheit
    - große Änderungen in einem Bild werden nicht erkannt
    - kommt dadurch, dass der Betrachter vor/während der Änderung abgelenkt wird
- Filter im Gehirn: bestimmte Dinge fokussieren, andere ignorieren
- 3 Typen
    - selektive
        - Zwischen mehreren Möglichkeiten wird eine Sache zum fokusieren ausgewählt
        - Augen folgen Objekten von Interesse
        - Cocktail Party Effekt
    - geteilt
        - Versuch durch "Multitasking" sich auf mehrere Dinge zu fokusieren
        - wirkt sich negativ auf Verarbeitung aus
        - Aufgaben beeinträchtigen sich gegenseitig
    - erfasst
        - ein äußerer Reiz zieht alle Aufmerksamkeit auf sich 

#### Gedächtnis
- Arbeitsgedächtnis
    - schneller Zugriff und schneller Verfall
    - eingeschränkte Kapazität
- Informationen können in chunks zerlegt werden (wie bei Telefonnummern)
- Daten werden gelöscht, sobald Task abgeschlossen ist
- Langzeitgedächtnis ist langsamer dafür aber wesentlich größer
    - langsamer Zugriff
    - Zugriff kompliziertes Verfahren, dass von vorherigen Zugriffen abhängt

## 3. VL: Erkennung
### 3.1 Computer Vision
- Digitale Bilder sind Matrizen aus Pixeln mit einem Grauwert
- Ziel
    - Wie kann man Obst in einem Raster von graustufen Zahlen erkennen
    - Wie kann man dort Tiefeninformationen rauslesen
- wichtige Komponenten der Bilderkennung
    - lokale Merkmale (z.B. Auge, Mund)
    - globale Anordnung der lokalen Merkmale (relative Position und Größe)
- ebenfalls wichtig
    - schnelle Generierung von guten Hypothesen
    - Segmentierung der Bildbereiche
    - Szenenkontext
- Bildaufbau nach Fischler und Elschlager
    - Modell hat zwei Komponenten
        - Teile (2D Bildfragmente)
        - Aufbau (Anordnung der Teile)
![](https://i.imgur.com/U9Esxpo.png)

### 3.2 Bayes Decision Theory
#### Wahrscheinlichkeit vs Wahrscheinlichkeitsdichte
![](https://i.imgur.com/OkxzCcA.png)
- Verteilung: $p(x)$
- WSK: $P(x)$
- WSK, dass $x$ im Intervall ($x_0,x_1$) liegt
    - $Pr(x_0<x<x_1)=\int_{x_0}^{x_1}p(t)dt$
- Für sehr kleine Intervalle ($x,x+\Delta x$) gilt $P(x)=p(x)$
#### a priori Wahrscheinlichkeit (Prior)
- Anteil einer Klasse an der Gesamtmenge. Konstante Werte, unabhängig vom Featurewert
- Bsp: Buchstabenhäufigkeit in einer Sprache - Buchstaben entsprechen einer Klasse

#### bedingte Wahrscheinlichkeit (Likelihood)
- sei $x$ ein Featurevektor, der bestimmte Eigenschaften beschreibt 
- $P(x|C)$ ist die Wahrscheinlichkeit, dass für ein Objekt der Klasse $C$ der Featurewert  $x$ gemessen wird

#### a posteriori Wahrscheinlichkeit (Posterior)
- $P(C|x)$ ist die Wahrscheinlichkeit, dass $x$ der Klasse $C$ angehört
- kann über Bayes Theorem bestimmt werden:
    - $P(C|k) = \frac{P(x|C)*P(C)}{P(x)}$
    - namentlich: $\text{Posterior}=\frac{\text{Likelihood x Prior}}{\text{Normalisierung}}$

#### Entscheidungsregeln
- Aufgabe eine Bayes Classfiers:
    - Fehlklassifikation minimieren
    - Entscheidungsgrenze bestimmen
- entscheide $C_1$, wenn 
    $P(C_1|x) > P(C_2|x) \\\iff P(C_1|x)P(C_1) > P(C_2|x)P(C_2) \\\iff \frac{P(x|C_1)}{x|C_2}>\frac{P(C_2)}{C_1} = \lambda$ 
- letzte Zeile ist der Likelihood Ratio Test

#### Naive Bayes Classifier
- bei mehr als zwei Merkmalen sind $P(x_1,x_2|C_k)$ und $P(x_1,x_2)$ mehrdimensional
- Schätzung der Dichte daher nicht immer möglich
- Naive Bayes Classifier nimmt an, dass Merkmale statistisch unabhängig sind
    - $P(x_1,x_2|C_k) = P(x_1|C_k)*P(x_2|C_k)$
- Annahme in Realität oft falsch
- liefert trotzdem gute Ergebnisse zum Vergleich

### 3.3 Gesichtsdetektion
#### Appearance-Based Methods
- Prinzip
    - Erscheinungsmodell aus großen Sammlungen von Bildern lernen
    - am häufigsten Sliding Window Ansatz
- 3 Wichtige Aspekte
    - Repräsentation des Objekts 
        - lokale Merkmale
        - globale Anordnung der Merkmale
    - Trainingsdaten
        - sowohl positive Beispiele (Gesichter)
        - als auch negative Beispiele (kein Gesichter)
    - Klassifikator und Lernmethode

#### Sliding Window Approach
- Bild wird mit einer bestimmten Fenstergröße gescannt
- nach jedem Durchlauf wird das Bild verkleinert
- dadurch können Gesichter erkannt werden, die vorher zu groß waren 

#### Ausführliches Beispiel (**ÜBERSPRUNGEN**)

#### Erkennungsarten
- Gesichtserkennung zählt zu biometrischen Verfahren
    - Einsatzgebiet: sicherheitstechnisch, kriminalistisch, forensisch
    - Zweck: Identifikation oder Verifikation natürlicher Personen
- Verifikation
    - die zu verifizierende Person muss User-ID / Namen mitteilen
    - biometrisches System entscheidet, ob die Person zum zugehörigen Referenzmerkmalsdatensatz gehört (1:1)
    - "Passt Name zum biometrischen Bild?"
- Identifikation
    - zu erkennende Person offenbart ausschließlich ihr biometrisches Charakteristikum
    - System ermittelt durch Vergleich mit Referenzmerkmalsdatensätzen aller Nutzer den zugehörigen Namen / User-ID (1:n)
    - "Zu wem gehört der Fingerabdruck?"

## 4. VL: Fourier **AUF LÜCKE**
![](https://i.imgur.com/Ev5Adcb.png)

## 5. VL: Bilder
### 5.1 Bildverbesserung
- Verbesserung und Aufbereitung für den Betrachter
- Anwendungsspezifisch, keine "allgemeine Theorie"
- Angewandte Methode abhängig von Bild und Betrachter

#### Methoden
- Ortsraum
    - direkte Manipulation der Pixelwerte
    - Pixel- / Filteroperationen
- Frequenzraum
    - Bildtransformation
        - Discrete Fourier Transform (DFT)
        - Discrete Cosine Transform (DCT)
    - Manipulation der Transformierten
    - Rücktransformation in den Bildbereich

#### Typische Anwendungen
- Korrektur von Nicht-Linearitäten der Kamera
- Anpassung Helligkeit / Kontrast
- Bild ausgleichen

#### Histogramm
- graphische Darstellung der Häufigkeitsverteilung skalierter Merkmale
- gibt Informationen über
    - Bilddynamik
        - Bereich reeller Lichtintensitäten, er auf der Grauwertskala abgebildet wird
    - Bildkontrast 
        - Bereich der Grauwertskala, der zur Darstellung der Bildinformation ausgenutzt wird
    - Bildhelligkeit
        - Beleuchtungsstärke
- Bildhelligkeit = Mittelwert aller Grauwerte
- Bildkontrast = Varianz aller Grauwerte
- ![](https://i.imgur.com/eml6J5P.png)

#### Pixeloperationen
- Pixel wird unabhängig von seiner Nachbarschaft modifiziert
    - Negativ
    - Tresholding 
    - Fensterung (hervorheben eines bestimmten Intensitätsintervals im Bild)
    - Histogrammausgleich (LÜCKE)
    - Mittelung (Rauschunterdrückung mit Hilfe von $n$ Bildern über die gemittelt wird)

### 5.2 Bildfilterung
#### Im Ortsraum
- Filtermasken
    - Pixelmanipulation abhängig von seiner Nachbarschaft
    - Faltung mit einer $k \text{ x } l$ Matrix (Konvolution)
- Median ist nicht linear, kann also nicht durch Faltung umgesetzt werden

#### Im Frequenzraum
- Faltung im Ortsraum entspricht Multiplikation im Frequenzraum (und umgekehrt)
- Durch Multiplikation jeder Frequenz-Komponente $F(u,v)$ anhand einer Gewichtungsfunktion (=Filter) kann man bestimmte Frequenzen erniedrigen/erhöhen
- zugehörige Veränderungen werden durch Rücktransformation im Ortsraum sichtbar
- selektive Beseitigung von Frequenzkomponenten heißt Fourier-Filtering
- Filterarten
    - Tiefpass
    - Hochpass
    - Bandpass
- idealer Tiefpass
    - Abschneiden von Frequenzen $f>D_0$
    - radialsymmetrisch zum Ursprung
    - physikalisch nicht realisierbar
    - stattdessen Gausscher Tiefpass
- idealer Hochpass analog

#### Frequenzraum vs Ortsraum
- schnellere Berechnung (FFT)
- einfache Handhabung (Filterdesign im Frequenzraum intuitiv)
- Ortsraumfilter nur eine Approximation der Frequenzraumfilter

### 5.3 Bildkompression
- Bildkompression versucht Menge der Daten zur Repräsentation visueller Informationen zu reduzieren
    - Eliminierung von Redundanzen über
        - Kodierungen
        - Nachbarschaftsbeziehungen (räumlich, zeitlich)
        - psychovisuelle Eindrücke

#### Kompression
- verlustlos
    - Variable-Length-Coding (Huffman Code, arithmetischer Code)
    - Bit-Plane Coding (Bit-Plane Splicing)
    - Predictive Coding
    - Lempel-Ziv-Welch-Algorithmus (GIF, TIFF)
- verlustbehaftet
    - nicht alle Bildeigenschaften werden berücksichtigt
    - exakte Rekonstruktion ggf. nicht mehr möglich
    - Qualitäts-Kompressions-Verhältnis oft einstellbar
    - Modelle der menschlichen Wahrnehmung werden verwendet
- Audio
    - unkomprimiert: AIFF, WAV
    - verlustlos: Apple Lossless (ALAC), MPEG-4-ALC
    - verlustbehaftet: MP3, WMA, AAC
- Bilder
    - unk: BMP, RAW
    - VLL: GIF, PNG
    - VLB: JPEG
- Video
    - unk: nicht praktikabel
    - VLL: nicht praktikabel
    - VLB: H.264, WMV, MPEG-4 üart 2

#### Harmonische Transformation
- Daten werden in Frequenzanteile zerlegt
    - Bsp Fourier- und Wavelet-Transformation
    - JPEG typischer Vertreter

#### JPEG
- Algorithmenfamilie
- für Fotos mit fließenden Farbübergängen optimiert 
- ungeeignet für Bilder mit viel Kontrast, Liniengrafiken oder Text
- Kompressionsraten von 12-15 für verlustfrei, 35 für noch gute Bilder

#### JPEG Prozess
1. Umwandlung in YCbCr-Farbraum
    - $Y$ = Helligkeitswert
    - $C_R$ = Abweichung von Grau in Richtung rot
    - $C_B$ = Abweichung von Grau in Richtung blau
    - ![](https://i.imgur.com/Lsa9tkn.png)
2. Farb-Subsampling
    - verlustbehaftete Komprimierung
    - möglich wegen höheren Genauigkeit des Auges im grünen Bereich
    - Farbdifferenzwerte $C_R,C_B$ werden für kleines Gebiet (meist 2x2) gemittelt und zusammengefasst

3. Diskrete Kosinustransformation
    - Umwandlung der Bildinformationen in den Frequenzbereich
        - Rasterung der von $Y,C_B,C_R$ in 8x8 Blöcke
        - Blöcke werden DCT unterzogen und als Vektoren interpretiert
    - Ziel 
        - Informationen in Darstellung überführen, die für Folgeschritte besser ist
        - Filterung hoher, vom Auge nicht wahrnehmbarer Frequenzen
    - Vorteil von DCT
        - Wenn benachbarte Bildpunkte sich kaum unterscheiden (= keine scharfen Kanten) sind die meisten Koeffizienten gleich Null

4. Quantisierung
    - Beseitigung von Informationen, die nicht/kaum vom Auge wahrgenommen werden

5. Kodierung der Koeffizienten
    - aus 8x8 Blöcken wird sequentieller, eindimensionaler Bitstrom erzeugt
    - DC Koeffizienten werden als Differenzen zum vorhergehenden DC Koeffizienten kodiert
    - Koeffizienten werden entlang einer Zick-Zack-Kurve kodiert
        - hohe Frequenzanteile oft klein/Null, entsteht für die weitere Kompression eine günstige Reihenfolge
- Bis hier noch noch keine explizite Kompression sondern grobe Transformation der Bilddaten
- Kompression über Huffman-Algorithmus oder arithmetisches Codieren

## 6. VL: Bildverarbeitung
### 6.1 Deblurring von Bildern
- sei angenommen, dass Bild *g* eine verwischte Version von Bild *f* mit einem Kernel *a* ist : $g=a(f)$ bzw $G=A*F$ in Fourierraum
- naiver Ansatz für Deblurring: $F=A^{-1}G$
    - numerisch unrealistisch, da Werte fom Gaussfilter extrem sein klein werden
    - Es gibt immer Bildrauschen
- Lösungsansatz
    - komplex konjugierte Matrix $A^*$ verwenden
    - $G=A*F \\ A^* *G=A^* *A*F \\ = |A|^2*F$
    - mit $|A|^2>0$ gilt für die Rekonstruktion $F=\frac{A^*}{|A|^2}G$
    - rekonstruiertes Bild hat so keine reellen Zahlen mehr

#### Jaques Hadamard
- korrektgestellte Probleme wenn
    - Lösung existiert
    - Lösung eindeutig
    - Lösung hängt in einer vernünftigen Topologie kontinuierlich von den Daten ab
- Blurring ist korrekt gestellt, Deblurring nicht

### 6.2 Einschrittverfahren
#### Wiener Filter
- Lösen des Rauschproblems durch Regularisierung des Filters im Fourierraum $F=\frac{A^*}{|A|^2+R^2}G$
- **R** ist Signal-Rauschen Verhältnis
- **R** entscheidet, was verstärkt wird
    - zu groß (=Tiefpass)
        - Erhalt grober Strukturen
        - Verwischt Kanten
        - Entfernt Rauschen
    - Zu klein (=Hochpass)
        - Entfernt grobe Strukturen und Kanten
        - Verstärkt Rauschen
    - Optimal (=Bandpass)
        - Erhalt grober Strukturen
        - Verstärkt Kantenstrukturen
        - Entfernt Rauschen
- Vorteile
    - schnell
    - häufig verwendet
    - beliebt (= viel Know-How)
    - leicht zu implementieren
- Nachteile
    - nur ein Filter für das gesamte Bild
    - keine lokalen, spezifischen Verbesserungen
    - nur ein Wert für R
- durch lokale oder iterative Verfeinerungen verbesserbar

#### Mehrkomponentenverfahren
- Scale-Space-Ansatz
    - zum Schärfen wird der Laplace-Operator, multipliziert mit unabh. Konstante t, vom Bild abgezogen $L_{\text{schärfer}} = L_0 - t(L_{xx}+L_{yy})=L_0-t*\Delta L$
    - Hinzufügen zusätzlicher Terme (Ableitungen höherer Ordnung) kann das Ergebnis weiter verfeinert werden ![](https://i.imgur.com/6O2n1Fz.png)

### 6.3 Mehrschrittverfahren
#### Energie
- $E(L)=\frac{1}{2}\int_{x,y}L^2dxdy$
- sagt aus, wieviel Intensität in den Pixeln vorhanden ist
- Minimierung der Energie führt zu optimalem Bild
- berechenbar über Variationsrechnung oder iterative Prozesse
- Variationsableitung
    - Notation $\delta E(L)$
    - für $E(L)=\frac{1}{2}\int_{x,y}L^2dxdy$ gilt $\delta E(L)=L$ mit Minimum $\delta E(L)=0$
    - trivial: $L=0 → \delta E(L)=0$
    - stattdessen $E(L)=\frac{1}{2}\int\int_{x,y}L_x^2+L_y^2 dxdy$
        - $\delta E(L)=-\Delta L$ (Laplace-Operator von oben)
        - Überführung in partielle DGL $L_t=-\delta E(L)$
        - Lösung iterativ bestimmen

- alternativ
    - Perona-Malik
        - Rauschen wird verwischt
        - Kanten verstärkt
        - Smart Energy Term und Stopzeit
    - Totale Variation
        - Rauschen wird verwischt
        - Kanten verstärkt
        - Smart Energy Term und Distance Penalty 

#### Perona-Malik
- Heat Equation $L_t=\Delta L = \nabla (\nabla L)$ wird modifiziert zu $\delta_tL=\nabla(c\nabla L)$
- *c* (=Conductivity Coefficient) kann klug gewählt werden (DETAILS AUF LÜCKE)
- Perona-Malik-Gleichung
    - $c(·)$ eine Funktion der Gradientenstärke, die die Diffusion dort reduziert, wo Kanten sind
    - zwei Möglichkeiten für *c*
        - $c_1 = exp{-\frac{|\nabla L|^2}{k^2}}$
        - $c_2 = (1+\frac{|\vec{\nabla L}|^2}{k^2})^{-1}$
    - k bestimmt Einfluss der Kantenstärke
        - hohes *k* → nur starke Gradienten (Kanten) bleiben
        - kleines *k* → fast alle Gradienten (Kanten, Rauschen) bleiben
- Implementierung
    - keine analytischen Methoden
    - iterativ $L^{(t+1)}=L^{(t)}+\Delta t * (\nabla(c(|\nabla L|^2)*\nabla L))$
        - $L_0$ Original Bild
        - $\Delta t$ kleiner Zeitschritt
    - Iteration muss irgendwann stoppen (nach *n* Schritten / wenn $L^{t+1}$ gut aussieht)
- Stoppzeit
    - Signal-Rausch-Verhältnis steigt während der Evolution an, fällt aber irgendwann wieder ab → stoppt nicht bei optimaler Lösung
    - Stoppzeit benötigt

#### Eingeschränkte Evolution 
- Es muss sichergestellt werden, dass Perona-Malik konvergiert
- Stoppzeit dann nicht nötig
- Versuch eine kluggewählte Energie zu minimieren und Distance Penalty hinzuzufügen
    - zusätzlich zum Modell des Bildes wird ein Rauschmodell angenommen
- Totale Varianz
    - $E(L)=\int\int_{x,y}(|\nabla L| + \lambda(g-a(L))^2)dxdy$
    - bei T.V. wird Energie minimiert
    - $\lambda$ ist von Rauschen abhängiger Parameter. T.V. konvergiert gegen optimale Lösung

## 7. VL: Grafikpipeline

### 7.1 Hardware
- es gibt verschiedene Computer-Paradigmen, die sich teilweise überschneiden
- P1: Large-Scale-Computing
    - Host- und Terminal-Systeme
- P2: Desktop/Personal Computing
    - PCs
- P3: Networked Computing
    - Rechner kommunizieren
- P4: Mobile Computing
    - Laptop, Tablet, Smartphones, ...
- ZP1: Collaborative Computing
    - Multi-Touch-Tables
- ZP2: VR
    - nicht-immersive (Bildschirm)
    - immersive (VR-Goggles)
- AR
    - nahtlose Integration zwischen virtuellen und realen Objekten
    - Wahrnehmung soll erweitert werden
    - Kriterien: virtuelle Informationen sollen relevant bzgl und synchron mit der echten Welt sein
- ZP3: Ambient / invisible
    - Gestenerkennung
- Wearable
    - Gadgets können direkt am Körper getragen werden

### 7.2 Computergrafik
- Uncanny Valley
    - beschreibt Beziehung zwischen Ähnlichkeit eines Objektes zum Menschen und der emotionalen Reaktion darauf
    - kurz vor absoluter Ähnlichkeit tritt ein Tief auf (=uncanny valley)
    - Objekte hier sind besonders gruselig

### 7.3 Grafikpipeline
- Anwendung (CPU): produziert Modellierung der Daten
- Geometrieverarbeitung (GPU): produziert 2D-Koordinaten und zusätzliche Daten (z-Buffer, Farbwerte, ...)
- Rasterisierung (GPU): produzierzt ein Rasterbild (Bildspeicher)
- Ausgabe: Speichern/Anzeigen des Bildes

#### Anwendung
- beschäftigt sich mit Eingabe grafischer Daten
    - Generierung von 3D-Modellen
    - Abtastung realer Objekte
- Repräsentation von 3D-Daten mithilfe graphischer Primitive
    - Dreiecke
    - Linien
    - Punkte
- Transformation
    - Translation, Rotation, Scherung, Skalierung, ...
- Räumliche Datenstrukturen
    - für View-Frustum-Culling, Occlusion Culling/z-Buffer und Kollisionserkennung genutzt
- Einteilung der Datenstrukturen
    - Hüllkörperhierarchie (Bounding Sphere Hierarchy)
    - Raumunterteilung (Gitter, hierarchisch: k-d Tree, Quadtree, Binary Space Partition)
- Hüllkörperhierarchien
    - einfache Form um den eigentlichen Körper herum 
    - ermöglicht einenfachen Schnittest mit anderen Primitiven (Kugeln, Quader)
    - Hüllkörperhierarchie wird aus mehreren Hüllkörpern zusammengesetzt
    - Konzept wie bei Hitboxen
- Raumunterteilung
    - Achsenparllele Gitter
        - Objekt in mehreren Zellen enthalten (Objektredundanz)
        - kann sich der Geometrie nicht anpassen
        - speicheraufwändig
        - effizient traversierbar
    - Quad-/Octree
        - Raum wird in Gitter augeteilt und aus diesem ein Baum berechnet
        - Octree ist Quadtree in 3D
    - Binary Space Partition
        - bei BSP wird Raum binär unterteilt
        - an durch Polygone induzierten Ebenen wird geteilt
        - jeder Knoten im Baum entspricht einer Ebene, die den Raum in zwei Halbräume teilt

#### Geometrieverarbeitung
- Simulation der Beleuchtung
    - Zunächst Bestimmung der Leuchtdichten des Primitivs
    - Flat Shading
        - Normale des Primitivs ergibt einheitliche Helligkeit
    - Gouraud Shading
        - Normale in den Eckpunkten ergibt Helligkeitswerte für die Eckpunkte
        - Helligkeitswerte der Eckpunkte werden linear interpoliert
    - Phong Shading
        - Eckpunkt-Normalen werden für jeden Punkt linear interpoliert und normiert
        - Helligkeitswert ergibt sich aus interpolierter Normale
- Phong
    - Gesamtbeleuchtung: $I_{total}=I_{amb}+I_{diff}+I_{spec}$
    - Ambiente Komponente $I_{amb}$ ist richtungsunabhängig, dafür aber abhängig vom Umgebungslicht *C* und der Materialkonstanten *k*: $I_{amb}=k_{amb}*C_{amb}$
    - Diffuse Reflexion abhängig von Richtung des Lichts (***L***) und Oberflächennormale (***N***) $I_{diff}=k_{diff}C_{light}(\textbf{N}*\textbf{L})$
    - Spiegelnde Reflexion ist abhängig von Richtung der Reflexion (***R***), der Betrachtungsrichtung (***V***) und der Rauheit *m* des Materials $I_{spec}=k_{spec}C_{light}(\textbf{R}*\textbf{V})^m$
- Perspektivische Transformation und Clipping 
    - liegen Objekte voreinander, sieht man nur den nähsten Punkt (außer bei Transparancy)
    - Clipping bezeichnet das Abschneiden von Objekten am Bildausschnittsrand
    - Painter Algorithmus
        - Objekte werden vom tiefsten z-Wert aus angefangen zu zeichnen
        - hintenliegende Objekte werden bei Überlappung einfach überzeichnet
        - Probleme bei Transparenz und "im Kreis"-Überlappungen ![](https://i.imgur.com/Yq75gs9.png)

- Culling
    - Rückseiten machen ca. Hälfte aller Flächen aus, sind aber nicht sichtbar
    - man schließt sie explizit aus Berechnungen aus
    - Fläche ist Rückseite, wenn Skalarprodukt von Sehstrahl *s* und Normale *n* positiv ist: $n*s>0$

- Projektion in VL 8

#### Rasterisierung
- Prozess, bei dem Primitive in Pixel zerlegt werden
- zusätzlich: Pro Pixel eine Verdeckungsrechnung und Shading
- Bresenham-Algorithmus (Rasterierung von Linien)
    - Algorithmus zum Zeichnen von Linien zwischen zwei Punkten
    - $\Delta x := x_2 - x_1 \geq 0$
    - $\Delta y := y_2 - y_1 \geq 0$
    - Bedingungen durch Vertauschen immer einhaltbar
    - Algorithmus muss genau $max\{\Delta x, \Delta y\}+1$ Pixel zeichnen
    - ![](https://i.imgur.com/k6MKWvN.png)
- Scanline Algorithmus (Rasterierung von Polygonen)
    - scannt Pixelebene von oben nach unten mit einer "Scan Line"
    - Schnittpunkte mit Polygon werden gesucht
    - Schnittpunkte werden nach wachsender X-Koordinate sortiert
    - fülle Pixel zwischen Paaren aufeinanderfolgender Schnittpunkte
    - es wird Parität mitgeführt und nur bei ungerader Parität ein Pixel gesetzt
- z-Buffer Algorithmus
    - zu Bildpunkten wird z-Wert gespeichert
    - Initialisierung
    - Bildspeicher → Hintergrundfarbe
    - z-Speicher → höchstmöglichen z-Wert
    - alle Objekte werden nacheinander, ohne bestimmte Reihenfolge, gerastert
    - für alle Punkte (x,y) eines Punktes
        - berechne seinen z-Wert
        - falls dieser Wert kleiner ist, als der bereits gespeicherte Wert für (x,y) überschreibe ihn
        - setze zugehörigen Farbwert in Bildspeicher
    - Vorteile
        - jede Szene mit jeder Art von Objekten behandelbar
        - Komplexität unabhängig von Tiefenkomplexität
        - Objekte können nachträglich eingefügt werden
        - leicht in Hardware realisierbar
    - Nachteile
        - pro Bildpunkt nur ein Objekt gespeichert → Abtastfehler
        - Transparzenz nicht realisierbar
        - Genauigkeit des z-Buffers beschränkt
            - getrennte Objekte erhalten selben z-Wert → Objektreihenfolge beim Abtasten bestimmt Farbe

## 8. VL: Transformationen
- 5 Arten von Koordinaten
    - Objektkoordinaten
        - legen Lage von 3D-Objekten Lokal fest
    - Weltkoordinaten
        - beschreiben gesamte Szene
    - Projektionskoordinaten
        - erhält man nach Anwendung der Projektionstransformation (parallel, perspektivisch)
    - Normierte Koordinaten
    - Bildschirmkoordinaten
        - stellen Szene in Fenster einer gewählten Größe und Position dar
- 5 Arten von Transformationen
    - Modelling Transformation
        - Modelle im Raum Anordnung
    - Viewing Transformation
        - Betrachtungspunkt positionieren
    - Projection Transformation
        - sichtbaren Ausschnitt der Szene (aka Viewing Volume) auf 2d projezieren
    - Normalizing Transformation
    - Viewport Transformation
        - Umwandlung in Bildschirmkoordinaten

### 8.1 Transformationen und affine Abbildungen
- mathematisch: $\Phi(v) = A(v)+I(b)$
- ***A*** ist lineare Abbildung ***I*** ist Translation
#### Eigenschaften 
- Bilden Geraden auf Geraden ab
- Beschränkte Objekte bleiben beschränkt
- Verhältnisse bleiben erhalten
- Parallelität bleibt erhalten

#### Homogene Koordinaten
- jede 3D affine Abbildung durch 4x4 Matrix realisierbar

### 8.2 Skalierung, Scherung, Rotation
- affine Abbildungen Skalieren, Scherung, Rotation lassen den Ursprung invariant
- kein Translationsanteil → 3x3 Matrizen wären ausreichend

#### Skalierung
- wird durch eine Diagonalmatrix beschrieben

#### Scherung
- ![](https://i.imgur.com/qCitJvS.png)

#### Rotation
- Rotation um beliebigen Vektor (LÜCKE)
- Rotation um beliebigen Punkte
    - verschieben des Rotationszentrums zum Ursprung
    - Rotation
    - Rückverschiebung zum Rotationszentrum

####
- Reihenfolge von Transformationen nicht kommutativ

#### Rechenaufwand
- oft sinnvoller zuerst die ganze Transformation als viele Matrix-Vektor-Multiplikationen zu berechnen

### 8.3 Projektion
#### Beispiele
- Aufriss
- Isometrische Perspektive
- Zentralperspektive
- Vogelperspektive

#### Eigenschaften
- können sich durch homogene 4x4 Matrizen beschrieben werden
- Geraden auf Geraden abgebildet
- Schnitte von Geraden bleiben erhalten
- Flächen auf Flächen abgebildet
- Reihenfolge von Punkten auf projektive
- Winkel werden verändert 
- Parallelität geht oft verloren

#### Perspektivische Projektion (LÜCKE)
- entspricht natürlicher Wahrnehmung
- Längenverhältnisse und Winkel ändern sich
- Parallelität geht verloren
- keine affinen Abbildungen
- vom Blickpunkt weitentfernte Objekte werden kleiner dargestellt

#### Parallelprojektion
- weniger realistisch
- Winkel bleiben im Allgemeinen gleich
- Parallelität bleibt erhalten

#### Kanonisches Sichtvolumen (LÜCKE)
- perspektivische Projektion wird zerlegt in
    - perspektivische Transformation
    - anschließende Parallelprojektion
- nach perspektivischer Projketion ist das Sichtvolumen ein Würfel
- durch Rotation in den Augpunkt, wird Würfel achsenparallel

### 8.4 3D-Interaktion
#### 3D Interaktion mit 2D-Input
- Problem
    - Mehrdeutigkeit
- Ansätze
    - Multi-Window
    - Direktes 2D-Maus-Mapping
    - Manipulatoren
- Manipulatoren
    - häufig in 2D 
        - Kästen in Grafikprogrammen zum Skalieren, Rotieren, Verschieben
        - Drag-and-Drop
        - einfach zu implementieren
    - immer häufiger in 3D
        - für Transformationen
        - für Navigation der Kamera
        - schwieriger umzusetzen

## 9. VL: 3D-Visualisierung
### 9.1 3D-Daten
- Messwerte werden in 3D Raum verteilt
- können gleichmäßig oder unterschiedlich verteilt sein
- Wert kann skalar oder höherdimensional sein

#### Gewinnung
- Terrain
    - an beliebigen Position x,y wird Höhe gemessen → ergibt 3D Position
    - Oberflächeninformationen (Bsp Vegetation) wird mithilfe von Satellitenbildern gewonnen → Skalarer Wert
- Laser Scanning
    - Laserstrahl wird auf Oberfläche projiziert 
    - Rückstrahlendes Licht wird gemessen
    - Abstand Laserquelle-Kamera ist bekannt
    - Distanz zur Oberfläche über Triangulation ermittelbar
- Range Images
    - aus Range Image r(u,v) ergibt sich Pixelinformation (u, v, r(u,v))
- Medizinische Bilddaten
    - MRI
    - CT
    - Ultraschall
    - Produzieren einen "Stapel" an 2D Daten
    - riesige Datenmengen

### 9.2 Triangulation von Punktwolken
- unstrukturierte Punktmenge $s_i=\{x_i,y_i,z_i\}$ auf Oberfläche S heißt Punktwolke
- für Oberflächen ohne Falten gilt
    - Punkte können auf Ebene projiziert und in 2D trianguliert werden
    - 2D-Dreiecksnetz wird dann entsprechend von $z_i$ deformiert
- bei idealer Trianglulation sind alle Winkel 60° 
    - bessere numerische Stabilität
    - verinfacht Post-Processing
- Voronoi-Diagramm
    - für jeden Punkt $s_i$ kann eine Voronoi-Zelle defineirt werden
        - Zelle enthält alle Punkte, die näher an $s_i$ als allen anderen Punkten sind
        - Kanten der Zelle: zwei nächste Punkte
        - Knoten der Zelle: drei nächste Punkte
- Delaunay Triangulation
    - man betrachtet den dualen Graph eines Voronoi-Diagramms
    - Zentren benachbarter Polygone werden mit Linien verbunden, die zur gemeinsamen Kante orthogonal sind
    - Dreiecksnetz ist eine Deulaunay Triangulation, wenn alle Umkreise von alle Dreiecken leer sind
    - nicht erlaubt: ![](https://i.imgur.com/9WuTtUg.png)
    - Korrektur über Edge Flipping: ![](https://i.imgur.com/SSMAR1a.png)

### 9.3 Indirekte Volumenvisualisierung
- Menge von Volumendaten enthält viele Informationen
    - langsames Rendering
    - Verdeckte Elemente
- man zeigt nicht alles nur eine Teilmenge
- 2D: Konturlinie
    - eine Linie entlang derselben Höhe
    - Ausrichtung des Gefälles orthogonal zur Konturlinie
- 3D: Isoflächen
    - Trennung zwischen verschiedenen Strukturen (Eingrenzung dieser)
    - Voxel an solchen Eingrenzungen bilden Isoflächen, wenn sie gleiche Intensität haben
    - Isoflächen sind implizite Flächen 
    - $i(x)=V(x)-\tau=0$ 
    - V(x) ist Voxelwert, $\tau=const$ ein festgelegter Isowert
    - Datenmenge wird nach i(x)>0 (innen) und i(x)<0 (außen) geteilt
    - ![](https://i.imgur.com/FIvJNyJ.png)
- 2D: Marching Squares
    - Bildzellen durch vier umgebende Pixel definiert
    - ![](https://i.imgur.com/U3zQMXW.png)
    - Pixel werden betrachtet, wenn sie größer-gleich dem Isowert sind (="Set Pixel")
- 3D: Marching Cubes
    - analoge Idee für Marching Square
    - Volumenzelle durch umliegende 8 Voxel definiert
#### Große Polygonmodelle und Performance
- Marching Cubes erzeugt viele Dreiecke → hoher Rechenaufwand
- Culling von Geometrie (GPU)
    - Backface Culling 
    - View-Frustum Culling
        - Polygone die ganz oder teilweise außerhalb des View-Frustums befinden
    - Occlusion Culling
- Meshreduktion (CPU)
    - Anzahl der Polygone wird verringert
- Mesh-Glättung
    - Ziel
        - entfernen von Löchern
        - Reduzierung von Artefakten
    - Challenge
        - Volumen erhalten
    - Laplacesche Glättung
        - Betrachtung von Regenschirm-Regionen 
        - ![](https://i.imgur.com/ZNqxU6V.png)
        - Reduzierung hochfrequenter Oberflächeninformationen
        - dadurch Reduktion von Krümmungen

### 9.4 Direkte Volumenvisualisierung (LÜCKE)
#### Volumen Rendering Pipeline
- Abtastung
    - Voxelwerte werden an bestimmten Orten angesammelt
    - Position der Orte durch Abtastdistanz $\Delta s$ bestimmt 
    - Abtastdistanz sollte kleiner als die Hälfte der Rasterauflösung sein
    - Abtastpositionen oft zwischen Rasterpositionen
        - Wähle geeignete Interpolationsmethode
- Klassifikation und Beleuchtung
    - für jeden Abtastpunkt wird Anteil (Farbwert) und Abschwächungsfaktor (Transparenz) berechnet
    - beleuchteter Anteil wird berechnet
- Komposition
    - Akkumulation der abgetasteten, klassifizierten und beleuchteten Werte
    - Volumen-Rendering-Gleichung wird numerisch approximiert
    - zwei Unterschritte
        - Back-to-Front-Komposition
        - Front-to-Back-Komposition

## VL 10: X3DOM
- benötigte Informationen für Rendering von 3D-Szenen
    - Objektgeometrie
    - Transformationen (Positionierung)
    - Materialien (Texturen)
    - Kameras (Ansichten)
    - Lichter
    - Spezialeffekte
- Daten haben untereinander komplexe Beziehungen
    - verschiedene Objekte verwenden gleiches Material
    - gleiches Objekte an mehreren Orten instanziiert
- Szenengraphen strukturieren diese Informationen

### 10.1 Szenengraph
- gerichteter, azyklischer Graph
    - gerichtet: jede Kante hat Richtung
    - azyklisch: eine Zyklen im Graph
    - Szenengraph hat Wurzelknoten
    - kein Baum: Knoten kann mehrere Elternknoten haben
- Traversierung des Graphen zum Rendering
    - Anwendung startet an der Wurzel
    - Kindknoten werden rekursiv abgearbeitet
    - fertig, wenn gesamter Graph traversiert wurde 
    - Operationen bei Traversierung hängen von Knoten ab
        - Gruppierungen: Gruppe eingeschaltet → traversiere Kindknoten, sonst skip
        - Transformationen: Anwendung der Transformationsmatrix auf alle Kindknoten
        - Objektdaten: tatsächliches Objekt, dass gezeichnet wird
    - Während Traversierung werden verschiedene Zustände aktualisiert
- Vorteile
    - Wiederverwendbarkeit von Objektdaten
    - Semantische Gruppierung dieser
    - Transformationshierarchie ermöglicht Transformation von kompletten Gruppen

### 10.2 X3DOM
- deklarative Szenengraph-API auf Basis von X3D im DOM
    - deklarativ: Szenengraph wird durch strukturiertes Textformat beschrieben
    - X3D: Szenengraphstandard
        - XML basiert
        - benötigt traditionell sog. X3D-Player
    - DOM: HTML Document Object Model
        - Dokumentenbaumstruktur und API in HTML
- erlaubt Verwendung von X3D im DOM durch reine Implementierung in JavaScript mit WebGL als Rendering Backend

## 11. VL: Informationsvisualisierung
- Definition:
    - Nutzung interaktiver, visueller Datenrepresentationen um Erkennung von Zusammenhängen zu erleichtern

### 11.1 Informationsdesign
- Daten dürfen nicht verzerrt werden
- Informationen sollen erhalten werden
- typische Fehler
    - falsche Skalierung
    - Verzerrung, Farben, Größenverhältnisse
    - zu volle Grafiken
    - keine Legenden

### 11.2 Datentypen
#### 1D Daten / Zeitreihen
- nur eine Spalte mit Datenwerten
- Bsp: Verteilungen
- typische Visualisierung
    - Kuchendiagramm
        - beliebt für Anteildaten
        - Werte über Größe abgebildet
        - Objekte als Farben abgebildet
        - kleine Wertunterschiede schwer erkennbar
    - Balkendiagramm
        - gut zum Vergleichen von Werten
        - Werte über Größe abgebildet
- Zeitreihen
    - Werte über Zeit ermittelt
    - more or less 2D, aber eher 1D
    - Darstellung über Liniengrafik
    - Probleme
        - bei vielen Zeitreihen gleichzeitig wirds unübersichtlich (Lösung Wertfilter)
        - lange Zeitreihen schwer abbildbar
#### 2D Daten
- Scatterplot 
    - Daten werden auf x/y-Position, Farben, Größen, abgebildet
    - intuitiv und leicht lesbar
    - Problem: Overplotting = zu viele Überschneidungen 
- Scatterplotmatrix (nD)
    - alle Paare an Datenspalten bekommen ein Scatterplot → bilden alle zusammen eine Matrix
    - gut für paarweise Korrelationen und Abhängigkeiten
    - Probleme
        - viele Dimensionen sind unübersichtlich
        - limitierter Platz für einzelne Plots
        - nur paarweise Abhängigkeiten sichtbar
- Parallele Koordinaten
    - Koordinatenachsen parallel anstatt orthogonal
    -  aus Punkt im Scatterplot wird Linie in parallelen Koordinaten
    -  Abhängigkeiten über mehrere Dimensionen erkennbar
    -  Achsenanordnung wichtig, da bei Schneidungen die "Graphen" nicht mehr unterscheidbar werden
    -  Umsortierung der Achsen kann hilfreich sein
    -  Probleme
        -  Overplotting = zuviele Linien (filtern)
        -  viele Dimensionen machen den Plot zu lang
#### Hierarchien + Graphen
- Node-Link-Diagramm
    - jeder Datenpunkt ein Knoten
    - Eltern-Kind-Beziehung durch Kante dargestellt
    - Position der Knoten wichtig
    - Probleme: Layout
        - Kanten mit möglichst wenigen Überschneidungen
        - bei Hierarchien sollen Elemente einer Ebene auf einer Ebene dargestellt werden
        - begrenzter Platz und Lesbarkeit
    - Probleme
        - viele Knoten / große Graphen sind schnell unübersichtlich
- Treemap
    - Kasten fixer Größe wird rekursiv aufgeteilt
        - beginnend mit Wurzel
        - Kasten wird anhand Teilbaumgröße geteilt
        - Abwechslung zwischen horizontaler und vertikaler Teilung
    - Probleme
        - Überlappungen führen zu schlechter Lesbarkeit
        - Vergleich der Größen von Rechtecken mit verschiedenen Dimensionen schwierig

### 11.3 Interaktion
- Interaktionen ermöglichen Datenexploration
- Reduzieren viele Probleme der Visualisierung (bsp Überlappungen)

#### View Transform
- Navigation
    - Zooming 
    - Panning
    - Reorganization
- Highlighting

#### Visual Mapping
- Auswahl von Daten, die abgebildet werden sollen
- Farbschemaänderung

#### Datentransformation
- Datenfiltern
- Ändern der Normalisierung

## 12. VL: Farben
### 12.1 Dimensionalität und Farbattribute
- menschliche Farbwahrnehmung hat 5 Dimensionen
    - Helligkeit (brightness)
        - Attribut, nach dem eine Fläche mehr oder weniger Licht abzustrahlen scheint
    - relative Helligkeit (Lightness)
        - Helligkeit einer Fläche relativ zur Helligkeit einer gleich beleuchteten Fläche (gilt nur für bezogene Farben) ![](https://i.imgur.com/KtZHAnQ.png)
    - Farbton (Hue)
        - Attribut, nach dem eine Fläche rot, gelb, grün, blau oder eine Kombination von zwei von ihnen, erscheint
        - achromatische Farben: Wahrgenommene Farbe ohne Farbton (grey-scale)
    - Farbigkeit (Colourfulness)
        - Attribut, nach dem Fläche mehr oder weniger farbig empfunden wird
    - Buntheit (Chroma)
        - Farbigkeit einer Fläche relativ zur Helligkeit einer gleich beleuchteten Fläche, die weiß  ![](https://i.imgur.com/A23PA00.png)
- Sättigung lässt sich durch Helligkeit und Farbigkeit beschreiben
- $\text{Sättigung}=\frac{\text{Farbigkeit}}{\text{Helligkeit}}=\frac{\text{Buntheit}}{\text{relative Helligkeit}}$
- bezogene Farben werden in Bezug zu anderen Farben, unbezogene Farben isoliert wahrgenommen
- $\text{Buntheit}=\frac{\text{Farbigkeit}}{\text{Helligkeit von Weiß}}$
- $\text{Relative Helligkeit} = \frac{\text{Helligkeit}}{\text{Helligkeit von Weiß}}$

### 12.2 Berechnung von Farbattributen (LÜCKE)
- Farbvalenz entspricht der Interpretation eines Farbreizes ![](https://i.imgur.com/dkJqv42.png)


### 12.3 Objektfarben, Lichtmatrix, CIEXYZ-Farbraum
- CIEXYZ Farbkoordinaten (Farbvalenzen) für Lichtart *l* sind definiert als ![](https://i.imgur.com/Y1FZ9ZQ.png)

#### CIE Chromaticity Diagramm
![](https://i.imgur.com/Zvs0Tp3.png)
- CIEXYZ modelliert die erste Phase des Farbsehens des Auges

### 12.4 Metamerie
- zwei unterschiedliche Farbreize $g,f$ werden gleich wahrgenommen $Ag=Af$
- Beleuchtungsmetamerie
    - Reflektionsspektren sind metamer unter der Lichtart *l* wenn $Lr_1=Lr_2,r_1 \neq r_2$
    - also wenn Farben je nach Licht gleich oder unterschiedlich erscheinen
- Beobachtermetamerie
    - zwei Farbreize erzeugen bei gleichen Betrachtungsbedingungen für Person A gleiche und für Person B unterschiedliche Farbvalenzen
    - Farbvalenz = Interpretation des Farbreizes 

### 12.5 Gegenfarbtheorie 
- nur Formeln → LÜCKE

### 12.6 Stevenssche Potenzfunktion
- beschreibt Beziehung der Reizstärke zur Empfindungsstärke
- $\psi = k(I-I_0)^n$
    - $\psi$ Wahrnehmungskorrelation
    - *I* Reiz
    - $I_0$ letzter noch wahrnehmbarer Reiz
    - *k* anpassbare Verstärkung
    - *n* anpassbarer Exponent

### 12.7 CIELAB Farbraum LÜCKE
### 12.8 Technische Farbräume
- Geräte verwenden oft eigene RGB-Standards
- zwei Bildschirme können gleichen RGB Wert unterschiedlich darstellen
- Gerätunabhängige Standards: sRGB, Adobe RGB

#### YCbCr
- YCbCr ein Gegenfarbraum mit
    - Y: Lumnianz
    - $C_b$: Blau-Gelb
    - $C_r$: Rot-Grün
- kann als lineare Transformation über RGB-Farbraum definiert werden
- wird in JPEG verwendet

#### HSV
- definiert über
    - H: Hue (Farbton)
    - S: Saturation (Sättigung)
    - V: Value (Helligkeit)
- zur intuitiven Farbauswahl in Grafikprogrammen oder zum Thresholding eingesetzt

### CMYK
- Cyan, Magenta, Yellow, Black
- bei Drucker für Tintenauswahl verwendet

### 12.9 Komplexität von Farbe
- Chromatische Adaption
    - beschreibt weitgehend unabhängige Regulierung der Mechanismen beim Farbsehen
    - unabhängige Anpassung der Zapfenempfindlichkeit and dominanten Farbreiz der Umgebung wird häufig beobachtet
    - Bsp: Von-Kries Modell
#### Wahrnehmungsphänomene
- Simultankontrast
    - Hintergrund, aufdem Farbreiz präsentiert wird, beeinflusst die wahrgenommene Farbe
    - Farbverschiebungen folgen Gegenfarbtheorie
        - Heller BG induziert dunkle Farbe und vv
        - Rot induziert grün und vv
        - Blau induziert gelb und vv
- Crispening-Effekt
    - Farbunterschied zweier Farbreize wird durch einen ähnlichen BG vergrößert
- Stevens Effekt
    - bei steigender Leuchtdichte sehen dunkle Farben dunkler und helle Farben heller aus
- Hunt Effekt
    - Farbigkeit steigt mit der Leuchdichte

#### Farbwahrnehmungsmodelle
- gleiche Farbreize können unterschiedlichen Farben entsprechen
- Farbwahrnehmungsmodelle ermöglichen  eine Anpassung der Farbreize für den Farbabgleich bei unterschiedlichen Betrachtungsbedingungen
- Bsp: CIECAM02
    - invertierbares Modell
    - ermöglicht Vorhersage über empfundenen Farbabstand

## 13. VL: User Interfaces


