Rastergraphik
Reguläres Gitter aus Pixeln
- Gitterpunkte = Pixel (mathematisches Modell)
- äquivalent zu 2D-Array, im Speicher sogar linear
- je Pixel (picture element | Voxel = volume element in dreidimensionalem Gitter) einheitliche Bitzahl:
- 1 Bit (monochromatisch)
- 8 Bit (oft Tiefe, Graustufe u.ä.)
- 24 Bit (RGB, 8 Bit je Farbkanal)
- 32 Bit (RGBA)
- Auflösung und Komplextität durch Rastergröße definiert
- Bits-per-Pixel (BPP), Dots-per-Inch (DPI)
- Geometrie, Topologie, Semantik und Identität rasterisierter Objekte nicht unmittelbar rekonstruierbar
- Down-Scaling = Raster verkleinerm | Up-Scaling = Raster vergrößern
- Formate: JPEG, BMP, PNG, GIF und viele mehr
- Aspect Ratio ist Verhältnis von Breite zu Höhe (z.B. 16:9)
- Pixel (picture elements): einzeln adressierbar, nicht weiter teilbare Einheiten eines Rasters, eine oder mehrere Komponenten (z.B. RGB)
Rasterisierung bezeichnet den Prozess der Diskretisierung von grafisch-geometrischen Objekten in einem gegebenen Raster
- zu einem abzubildenden Objekt werden die im Raster entsprechenden Pixel ermittelt und beschrieben
- Realität Modellierung 3D-Modellraum Diskretisierung / Rasterisierung 2D-Bildraum
- Räumliche (Rastergröße), farbliche (8 Bit je Pixel bei RGB u.ä.) sowie zeitliche (Framerate) Diskretisierung

Technische Konzepte
Repräsentationen:
- GPU: Framebuffer (z.B. Color Buffer, Depth Buffer) oder Textures
- CPU: Datenarrays (z.B. RGBA-Array als
Uint8ClampedArray) oder Bildobjekte (z.B.Imagebzw.Canvas,ContextundImageData) - File System: Kodierung einem einem Rastergraphikformat (s.o.)
Raster Layer: Konzeptionelle Aufteilung eines Rasters in Layer (planes / Ebenen), in denen jeweils je Eintrag Bits zur Verfügung stehen
- meist (z.B. 3 Layer für RGB)
- pro Pixel damit Bits (Bittiefe)
- Mögliche Layer-Semantiken:
- Color (Farbwerte), Surface Normal (8 + 8 + 8 Bit mit ), Luminance (Helligkeit / Intensität), Alpha (Transparenz), ID (Objekterkennung), Depth (z-Werte, Kameradistanz), Stencil (Allgemeiner Pro-Pixel-Zähler, z.B. für Bildmaske)
Vektorgraphik
Objektbasierte Kodierung von Bildinhalten
- Geometrische Objekte (z.B. Polygone, Kurven, Texte) bezeichnet als Primitive
- Graphische Attribute (z.B. Randfarbe, Füllfarbe, Linienstärke)
- Hierarchischer Aufbau von Bildinhalten in Form von Szenengraphen
- Auflösungsunabhängigkeit, d.h. geometrische Transformationen, Projektionsänderungen und Objekteditierung möglich ohne Informationsverlust (beliebig skalierbar)
- Die „Komplexität“ eines Bildes entspricht der Komplexität der objektbasierten Spezifikation
- in der Computergraphik nicht relevant, da Hardware nur Raster unterstützt
- Formate: SVG, PDF, Adobe PostScript, DXF, DWG
Rastergraphik-Operationen
Bildtransformation
- Umwandlung der Farbwerte eines RGB-Rasters nach Graustufen
- (magic numbers) je nach Farbmodell
- ggf. vorher durch 255 teilen und am Schluss wieder mit 255 multiplizieren 8 Bit Wert
for i {
for j {
p_i_j <- f(p_i_j)
}
}
Anmerkung: Doppelte Schleife nur didaktisch
Beispiele für f:
- Graustufen (magic numbers)
- Entsättigung (z.B. Rot-Werte herabsetzen)
- Transparenz (einzelne Farbe herausfiltern)
- Farbreduktion (z.B. 8-Bit 4-Bit)
- Analog zu Transformation, allerdings wird neben dem Pixel auch seine Nachbarschaft betrachtet
- Kante = große Differenz in der Helligkeit zwischen Pixel in einer Nachbarschaft
Farbquantisierung
- Farbquantisierung verringert die Zahl der unterschiedlichen Farben, die in einem gegebenen Raster vorkommen
- Ziel ist es, den Bildinhalt mit weniger Farben möglichst gut anzunähern; der Speicherbedarf sinkt entsprechend
Ablauf:
- Sampling der Eingangsdaten und Erstellen einer Farbstatistik (meist Histogramm)
- Erstellen einer Farbtabelle auf der Basis der Statistik (z.B. durch Clustering)
- Prozessierung der Eingangsdaten durch Auswahl der neuen Farbe aus der Farbtabelle für die Pixel Kompression (z.B. bei JPEG)
Median-Cut-Algorithmus
Versucht Farben zu finden, die möglichst jeweils eine gleiche Zahl an ähnlichen Farben im echten Bild repräsentieren
- rekursive Unterteilung des RGB-Farbraums in RGB-Farbwürfel mit gleicher Anzahl an enthaltenen Farben
- Ersetzung der Farben durch Median in jeweiligen RGB-Farbwürfel, nachdem eine gegebenen Anzahl an Teilwürfel erreicht wurde

Dithering
Approximation des gegebenen Bildes durch gegebene Menge an Primärfarben (z.B. Schwarz-Weiß für Drucker)
- Error Diffusion Dithering: Lineare Verarbeitung des Bildes (z.B. links recht; oben unten), wobei erzeugter Fehler (z.B. bei Farbtiefenreduktion) auf lokale Pixelumgebung in Richtung der Traversierung (hier rechts und unten; links unten auch erlaubt) verteilt wird
- alternativ Ordered Dithering mit Threshold-Map, bei der die Farbwerte des Bildes mit der Map verglichen werden (GPU-unterstützt, kann aber zu erkennbaren Mustern führen)
- Nutzt oft Noise oder Bayer-Matrizen (letztere: Durchschnittswert )


Bayer-Matrizen: Vorfaktoren und Matrixgröße vervierfachen sich rekursiv
Bildfilterung
- Nachbarschaft fester Größe (z.B. 3 x 3, 5 x 5, etc.) definieren
- Auswertung der Nachbarschaftspixel mit einem sogenannten Filterkern (, z.B. 3 x 3, 5 x 5) für jeden Pixel
Neutrale Faltung: Bild bleibt unverändert
Mean-Filter: Mittelt die Nachbarschaftspixel gleichmäßig
- Tiefpassfilter bzw. „Rechteckfilter“, der hochfrequente Bildinhalte abschwächt
- Einsatz zur Elimination von kleinen Bildstörungen (z.B. noise), Bildglättung (z. B. Kantenverwischung)
- Homogene Bildbereiche bleiben unverändert
Gauss-Filter: Mittelt die Nachbarschaftspixel mit unterschiedlichen Gewichten, die zur Pixeldistanz korrespondieren
- Tiefpassfilter, ausgewogenere Filterung im Vergleich zum Rechteckfilter
Motion-Blur-Filter: Bildeffekt, der eine Bewegung der Kamera während der Aufnahme suggeriert
(oft noch größer, z.B. 9)
Emboss-Filter: Bildfilter, der den hypothetischen Kontrasts entlang z. B. einer -Diagonalen ermittelt
- Hochpassfilter

Sharpness-Filter: Hebt Kantenübergänge hervor, d.h. „akzentuiert“ Kanten im Bildraum
Sobel-Filter: berechnen pro Pixel einen lokalen Gradienten
- dienen zum Aufspüren von Änderungen in den Pixelwerten in einer bestimmten Richtung (horizontal, vertikal, diagonal)
- zum Beispiel zur Kantendetektion verwendet

Tiefpass- und Hochpassfilter:
- Tiefpassfilter lassen niedrige Frequenzen durch und blockieren hohe Weichzeichnung, globale Strukturen sichtbar
- Hochpassfilter lassen hohe Frequenzen durch und blockieren niedrige betont Kanten und Texturen
Rangordnungsfilter
analog zur Bildfaltung, allerdings mehr Freiheiten im Umgang mit der Nachbarschaft
- z.B. wird Min / Max / Median einer Nachbarschaft ausgewählt
- Erosion: geringster Helligkeitswert (Schwarz) wird ausgewählt weiße Areale werden verkleinert, sehr kleine verschwinden ganz
- Dilation: höchster Helligkeitswert (Weiß) wird ausgewählt weiße Areale werden vergrößert
- Denoising: Median-Elemente der nach Helligkeit sortierten Nachbarschaftspixel wird ausgewählt kann Störpixel (z.B. Schwarz oder Weiß) entfernen
- kann Artefakte beseitigen (z.B. erst Erosion und dann Dilation ausführen | Denoising allein)


Bildvergrößerung
Resampling
Transformation eines Bildes von einem Koordinatensystem in ein anderes, die durch eine Abbildungsfunktion beschrieben wird
- Die inverse Transformation projiziert des Ausgabebild auf das Eingabebild, wodurch für jedes Ausgabebild ermittelt werden kann, welche Eingabepixel neu abgetastet werden müssen (resampling)
- Anwendungen: Bildauflösung erhöhen / verkleinern, Bilder geometrisch transformieren
Verfahren:
- Nearest-Neighbor: suche das nächstliegende Pixel im Eingabebild, wobei im Allgemeinen Aliasing-Artefakte (“Treppenstufen”) entstehen
- Bilineare Interpolation: ermittle die vier nächstgelegenen Eingabebildpixel, interpoliere linear zwischen ihnen, wodurch Blureffekte auftreten
Farbmodelle
Menschliche Lichtrezeptoren: Stäbchen (verantwortlich für Nachtsehen) und Zapfen (drei Arten, verantwortlich für des Farbsehen, unterschiedliche Empfindlichkeit)
Ein Farbraum ist ein mathematisches Modell und Schema zur Darstellung einer Menge von Farben
- allgemein dreidimensionaler Vektorraum
- Gesamtheit der wahrnehmbaren Farben im CIE-Farbnormsystem erfasst
- gebräuchlich sind etwa RGB, YIQ / YUV / YCbCr, CMYK
- RGB = Red-Green-Blue Color Space (additiv)
- HSV = Hue-Saturation-Value Color Space (nicht HSL)
- HSV und RGB sind äquivalent und gleichmächtig, allerdings ist die Transformation nicht vollständig bijektiv (Graustufen und Schwarz in HSV uneindeutig)
- YIQ: enthält Schwarz-Weiß-Kanal (Y, entstanden durch Wechsel auf Farbfernsehen) und Chroma-Koeffizienten I (in-phase, Cyan Orange) sowie Q (quadrature, Magenta Grün)
- CMYK (Cyan-Magenta-Yellow-Key): subtraktives Farbmodell (im Gegensatz zum additiven RGB), in der Praxis von Ausgabemedium (Papierart u.ä.) relevant sowie dunkle Farben nur mit Key-Kanal darstellbar
- Gamut: “a certain complete subset of colors”, z.B. Farbbereich, der von einem Gerät tatsächlich erfasst bzw. dargestellt werden kann

Chromatic Subsampling:
- speichert für benachbarte Pixel nur gemeinsame Grundfarbe sowie einzelne Helligkeitswerte
- reduziert Bandbreite ohne die Bilddarstellung wesentlich zu verschlechtern

Gamma-Korrektur:
- RGB-Werte von Kameras sind linear
- RGB-Werte von Ausgabegeräten sind nicht-linear
- Gamma-Korrektur bezeichnet nichtlineare Voranpassung der RGB-Werte, mit dem Ziel der linearen Darstellung der RGB-Werte im Ausgabegerät
- Implementierung z.B. mit Look-Up-Tables

Funktionsplots
Ein Raster mit einer Auflösung Pixel lässt sich zur Visualisierung einer Funktion über einen zweidimensionalen Definitionsbereich einsetzen
Reverse Mapping: Jeder Rasterposition wird eine entsprechende Position in zugeordnet.
Das Funktionsergebnis wird an der zugehörigen Rasterposition abgebildet (z.B. mit Farbskala)
