(4) Mathematik der Farben
Vorlesung
„CV-Integration“
„CV-Integration“
S. Müller Draft
Diese Folien enthalten unveröffentlichte Ergebnisse und sind daher bitte nur für den internen Gebrauch zu verwenden.
Speziell die Zahlenwerte sind teilweise noch nicht gegengerechnet!
Motivation
Die photometrischen Grundlagen sind quasi schwarz- weiß
In der Praxis rechnen wir mit rgb
In der photorealistischen Computergraphik geben wir uns sehr viel Mühe, Licht zu simulieren, möglichst
U N I V E R S I T Ä T KOBLENZ · LANDAU
uns sehr viel Mühe, Licht zu simulieren, möglichst
„physikalisch genau“.
Es ist überraschend, dass die Berücksichtigung der
Farbe eine so untergeordnete Rolle spielt, zumal sie in Bezug auf die Simulationstreue und die visuelle
Wahrnehmung mindestens genauso wichtig ist.
Bilder, denen wir vertrauen können
Von der Seite
U N I V E R S I T Ä T KOBLENZ · LANDAU
2 Fragestellungen
XYZ
RGB
Kamera
M
Photometrisch und farbmetrisch konsistente
Simulation
Ausgabe und Eingabe
RGB
−1 Monitor
M
„Das Quietscheentchenproblem“
Farbe
Farbe ist letztendlich eine Empfindung und als Begriff
missverständlich. „Es gibt keine Farbe ohne einen Betrachter“.
Die farbmetrischen Grundbegriffe sind klar definiert (DIN 5033, Teil 1).
Das Problem: sie verbergen die dahinterliegenden
mathematischen Prinzipien und sie funktionieren für die
U N I V E R S I T Ä T KOBLENZ · LANDAU
mathematischen Prinzipien und sie funktionieren für die
Bildbearbeitung („Normlicht“, Betrachte Bild mit D50-Lampe, erzeuge gleichen Farbeindruck auf dem Monitor, so dass der
Ausdruck auf einer Litfaßsäule wieder den gleichen Farbeindruck erzeugt).
Für die CG nicht brauchbar, da wir beliebige Lichtquellenspektren haben können.
Zugang hier: die Mathematik
Grundsätzliches
Motivation: Räume
Der gezeigte Pfeil skizziert einen
Beide 2D-Koordinatensysteme spannen den gleichen Raum auf O
P
O
P
xv yv
vv
uv '
O
U N I V E R S I T Ä T KOBLENZ · LANDAU
Der gezeigte Pfeil skizziert einen 1D Raum als die Menge aller Punkte, die auf der in beide Richtungen verlängerten Geraden liegen.
Ist ein Ursprung und eine
Längeneinheit gegeben, kann jeder Punkt durch eine
Koordinate (ein Skalar) präzise angegeben werden.
spannen den gleichen Raum auf (hier die Ebene des Bildschirms/Papiers).
Obwohl der Punkt P in jedem Koordinatensystem andere Koordinaten hat, beschreiben diese den gleichen Punkt in diesem Raum.
Mit Hilfe affiner
Transformationen können wir die Koordinaten von einem System in das andere umrechnen.
Motivation: Räume
O
=
3 2 1
p p p P
ev1
ev2
O
p1
p2
p3
e
Das gleiche gilt auch für den 3D-Raum, wobei unser
„Lieblings“-Koord.system aus drei senkrecht aufeinander stehende Einheitsvektoren besteht.
Dies wäre eine andere Art der
Darstellung für ein 3-er Tupel (x, y, z) In dieser Darstellung ist die Erweiterung um weitere Dimensionen sehr einfach.
Frage: Was ist hier die Bedeutung der Längenheit zwischen den Werten?
e1
ev3 O 1 2 3 e
Motivation: n-dim. Räume
[ ]nm
λ
( )λ f
0 1
U N I V E R S I T Ä T KOBLENZ · LANDAU
Erweitert man das ganze auf unendlich viele Dimensionen, so erhält man eine Funktion.
Diskrete Räume (z.B. r, b, g) sind quasi nur eine
Untermenge von Funktionen (z.B. spektrale Funktionen) und mathematisch sehr ähnlich zu behandeln
0
360 830
Skalarprodukt
(für Vektoren) Bislang kennen wir dasSkalarprodukt für Vektoren, bei dem das Produkt der jeweiligen Koordinaten aufaddiert wird.
Noch wichtiger ist: das
Skalarprodukt berechnet uns durch die senkrechte Projektion eine Koordinate in einer Basis Denn…
pv
xv
i n
i x p x
pv o v =
∑
⋅ cosα
= pxα
px
Das Skalarprodukt bestimmt uns auch den Winkel
zwischen zwei Vektoren
Eingesetzt:
bzw. (falls )
i i
i x p x
p =
∑
⋅=1
o
α
⋅cos
⋅
= p x x
p v v v v o
p px
= v
α
cos
x p x
px v
v o v =
⋅
x p px v
v o
=
=1 xv
Skalarprodukt
(für Vektoren) Durch das Skalarprodukterreichen wir eine Abbildung – in diesem Beispiel von dem 2D Raum auf den 1D Raum der Geraden.
x spannt dabei den Bildraum auf (mit Dimension 1).
Eine vollständige
Rekonstruktion des Punkte P erreichen wir nur, wenn die
pv
xv α
px
yv
U N I V E R S I T Ä T KOBLENZ · LANDAU
auf (mit Dimension 1).
Alle Punkte, die auf der gestrichelten Linie liegen, werden auf px abgebildet.
y spannt dabei den Kern der Abbildung auf, auch Nullraum genannt (hier ebenfalls mit Dimension 1).
erreichen wir nur, wenn die Dimensionen des
Originalraums und des
Bildraums identisch sind, also kein Nullraum existiert.
Skalarprodukt
(für Vektoren) Das Beispiel zeigt 2unterschiedliche,
orthonormale Basen mit gleichem Urspung des gleichen Raums
Wir gehen davon aus, dass die Vektoren u und v
O
P
xv yv
uv vv
pu
pv
die Vektoren u und v (z.B.
Kamerakoordinatensystem) in dem xy-System (z.B. Weltkoordinaten- system) gegeben sind.
Für einen Vektor pxy in
Weltkoordinaten können wir die uv-Koordinaten
berechnen durch
u
=
=
y x y
x
v v v
u
uv u v
;
xy v
xy
u u p p v p
p v
vo o v
v =
= ;
Koord.Transformation
Definieren wir uns eine 2x2 Matrix M aus den beiden Basisvektoren u und v,
( )
=
=
y y
x x
v u
v v u
uv v , M
O
P
xv yv
uv vv
pu
pv
U N I V E R S I T Ä T KOBLENZ · LANDAU
so können wir die
Koordinatentransformation auch so schreiben
Umgekehrt erhalten wir pxy durch Linearkombination der uv-Koordinaten mit den
Basisvektoren u und v
xy T
T xy T
v u uv
p
v p u p
v p u p
p p
v
v v
v o v
v o v v v
⋅
=
⋅
=
=
=
M
uv v
u y
y
x x
y v y
u
x v x
u v
u xy
p p p v
u
v u
v p u
p
v p u
v p p u p p
v v
v v
⋅
=
⋅
=
⋅ +
⋅
⋅ +
= ⋅
⋅ +
⋅
=
M
u
Skalarprodukt
( ) ( )
∫
⋅= max
min
2 1
2 1
λ λ
λ λ
λ
L dL L
L o
[ ]nm
λ L
0 1
L2
L1
Eigentlich ist das Skalarprodukt allgemeiner und für Funktionen definiert.
Vorstellung: hier wird ebenfalls das Produkt der jeweiligen Werte
„aufaddiert“
Das Resultat ist ein Skalar – die Koordinate in der jeweiligen
Basis (hier: Leuchtdichte L durch Projektion auf V(λ))
Konkret: es entspricht der Fläche unter der resultierenden Kurve (Produkt der beiden Kurven)
0
360 830
Skalarprodukt (neu)
380 385 390
O O 1 2 3 e
[ ]nm
λ 830
1 ,
l2 l2,2 l2,3
l2,n
1 ,
l1
2 ,
l1
3 ,
l1 l1,n
nm
=5
∆λ ∆e=1
n
U N I V E R S I T Ä T KOBLENZ · LANDAU
Im diskreten Fall ersetzt ein n-dim. Vektor die Funktion Das Skalarprodukt berechnet sich mit:
Das bisher gelernte Skalarprodukt ist also nur ein Sonderfall
Eine geschickte Lösung ist, für diesen Sonderfall die Achsen aufsteigend zu nummerieren.
380 385 390 O
λ
∆
⋅
⋅
=
∑
= i
n
i
i l l
L
L 2,
1 , 1 2
1
v o
v (!)
1 2 3
830 O
L L n
i n
i
i l l L
L 2,
1 , 1 2
1 =
∑
⋅=
v o v
Die Mathematik der Farbe
Spektrale Funktionen
Ohne Beschränkung der Allgemeinheit betrachten wir die Strahldichte L(λ)
Formal bildet die Menge aller spektralen Funktionen von λmin bis λmax einen Hilbertraum, den Raum der spektralen Funktionen:
U N I V E R S I T Ä T KOBLENZ · LANDAU
ein unendlich-dimensionaler Vektorraum (den brauchen wir, da es um Funktionen geht),
für den ein Skalarprodukt definiert ist (das brauchen wir, für eine Transformation von und in diesen Raum).
Das Skalarprodukt zwischen zwei spektralen
Funktionen L1 (λ) und L2 (λ) liefert eine reelle Zahl
( ) ( )
∫
⋅= max
min
2 1
2 1
λ λ
λ λ
λ
L d LL L o
Spektralraum und Spektren
In der Praxis spielt dieser Raum keine Rolle.
Die Werte liegen als diskrete Werte vor, wobei der sichtbare Wellenlängenbereich durch n äquidistante Punkte im Abstand ∆λ diskretisiert wird.
Dies ist ein n-dimensionaler Unterraum des Dies ist ein n-dimensionaler Unterraum des Hilbertraums (Spektralraum).
Die n-dimensionalern Vektoren nennen wir Spektren.
Aus dem Skalarprodukt wird
∑
=∆
⋅
⋅
= n
i
i
i L
L L
L
1
, 2 ,
1 2
1 o v
λ
v
Farbraum und Normfarbraum
Wichtig sind noch 3-dimensionale Unterräume, die
z.B. durch die drei Sensorantwortkurven einer Kamera festgelegt werden (allgemein: Farbraum).
Besonders wichtig ist der Normfarbraum, der durch die Normspektralwertfunktionen der CIE festgelegt ist,
wobei der Normfarbraum aus dem Verhalten des
U N I V E R S I T Ä T KOBLENZ · LANDAU
wobei der Normfarbraum aus dem Verhalten des
Auges beim Farbensehen abgeleitet wurde. Oft notiert als:
Die Striche weisen darauf hin, dass ein konstantes Einheitsspektrum den Ermittlungen zu Grunde lag.
Bei mir:
( ) ( ) ( ) λ
yλ
zλ
x , ,
z y
xv v v ,
,
CIE Normbasisvektoren
Die 3 Vektoren sind linear unabhängig und bilden damit eine Basis des Normfarbraums (CIE-
Normbasisvektoren, kurz CIE-Normbasis)
CIE-Normbasis
U N I V E R S I T Ä T KOBLENZ · LANDAU
XYZ-Koordinaten
Berechnet man das Skalarprodukt zwischen der CIE- Normbasis und einem beliebigen Spektrum
so entspricht dies einer Projektion des Spektrums in den Normfarbraum.
Das Ergebnis sind die 3D-Koordinaten des Spektrums L
v
Das Ergebnis sind die 3D-Koordinaten des Spektrums im Normfarbraum (Farbmetrik: Normfarbvalenz) :
(
x y z)
L z
L y L
x L
L L L
L T
Z Y X XYZ
v v
v v o v
v o v v
o v v
v = ⋅ =
=
= B mit B
Wichtig: Skalarprodukt bedeutet Multiplikation mit ∆λ
Normfarbraum
Wir könnten ihn auch als den Farbraum der von farbnormalsichtigen Menschen wahrgenommenen Farben bezeichnen.
Betrachten wir die Basis:
so liefert jede Linearkombination der Basisvektoren
(
xv yv zv)
= B
U N I V E R S I T Ä T KOBLENZ · LANDAU
so liefert jede Linearkombination der Basisvektoren mit reellen Zahlen wieder eine Basis dieses
Farbraums, insofern die neuen Basisvektoren linear unabhängig sind.
Dies erreichen wir durch die Multiplikation mit einer nicht-singulären, linearen 3x3 Matrix M.
Basistransformation
Jede Basis liefert ein eigenes Koordinatensystem, wobei sie den gleichen Vektorraum aufspannen (die lineare Hülle ist identisch).
Beim Übergang von der einen Basis zu einer anderen Basis verändern sich aber die Koordinaten der
Vektoren.
Vektoren.
Beispiel:
rgb
XYZ L
L
v v = M ⋅
Fazit
2 Fragestellungen
Im Kontext eines 3-dimensionalen Farbraums geht es vorrangig um einen konsistenten Farbeindruck für einen menschlichen Betrachter.
Den n-dimensionalen Spektralraum benötigen wir, um spektrale Funktionen möglichst gut zu approximieren.
U N I V E R S I T Ä T KOBLENZ · LANDAU
spektrale Funktionen möglichst gut zu approximieren.
Für eine Simulation benötigen wir beide
Betrachtungen und wir werden sehen, warum der 3- dimensionale Farbraum für eine Simulation nicht genügt, obwohl heutzutage fast alle
Renderingmethoden (inkl. der GPU) darauf aufbauen.
Duale Basis und Primärspektren
Wie rekonstruiere ich ein Spektrum?
Fragestellung
[ ]nm
λ
zv
xv yv
0 0,2 0,4 0,6 0,8 1 1,2
360 595 830
L v
[ ]nm
λ
L y
L x L L
L
L T
X v v
o v
o v v
v = ⋅
=
= B
(
xv yv zv)
= B
0,0 0,20,4 0,60,8 1,01,2 1,41,6 1,82,0
360 830
U N I V E R S I T Ä T KOBLENZ · LANDAU
Wie machen wir aus den XYZ-Werten wieder ein Spektrum?
Die Linearkombination mit B
L z
L y L L
L
L T
Z Y XYZ
v o v
v o v v
v = ⋅
=
= B
XYZ Z
Y
X x L y L z L
L L
v v v
v v
⋅
=
⋅ +
⋅ +
⋅
′ = B ist leider falsch
Begründung
Wenn es eine gültige Lösung wäre, erwarten wir, dass eine erneute Projektion wieder die ursprünglichen
XYZ-Werte liefert.
Rekonstruiertes Spektrum:
XYZ Z
Y
X x L y L z L
L L
v v v
v v
⋅
=
⋅ +
⋅ +
⋅
′ = B
Erneute Projektion (Beispiel: X-Wert)
Ergebnis: die Identität lässt sich nur bei orthonormalen Basen erreichen
XYZ Z
Y
X x L y L z L
L
L′ = ⋅ + ⋅ + ⋅ = B⋅
( )
x z L x y L x x L
x z L y L x L
x L L
Z Y
X
Z Y
X X
o v v v
v o o v
v
o v v v
v o v v
⋅ +
⋅ +
⋅
=
⋅ +
⋅ +
⋅
=
= ′
Allgemein
Der Punkt P ist sowohl durch die Koordinaten (x, y), als auch durch die Koordinaten (u, v) eindeutig definiert.Sind die uv-Koordinaten bekannt, so berechnet sich (x, y) durch:
p v p u x
xy P u P v
P
Pv P v v
⋅ +
⋅
=
=
U N I V E R S I T Ä T KOBLENZ · LANDAU
Mit
Aufgabe: konstruiere die uv- Koordinaten
p v p u y
xy P u P v
P P = ⋅ + ⋅
=
(
p p)
p uv vv
= B
(
p p)
uv p uvuv y
p y
p
x p x
p y
p v y p u
x p v x p u
P P
v u
v P u
v u
v P u
P
v P u
P
v v v
v
v
⋅
=
⋅
=
⋅
=
⋅ +
⋅
⋅ +
= ⋅
B
, ,
, ,
, ,
, ,
Konstruktion
v
u
Konstruktionsbasis/Primärbasis
u
U N I V E R S I T Ä T KOBLENZ · LANDAU
( )
⋅
=
v u p
p y
x
P v P
P u
P v v
⋅
=
y x T
T
v u
P P v
u P
P
v v
(
p p)
T T
v v u
u v v
v v
⋅
= E u
Basisvektoren und -funktionen
Im Allgemeinen Fall brauchen wir zwei Sätze von Basisfunktionen (duale Basis)
Eine Projektions- oder Konstruktionbasis Eine Rekonstruktionsbasis
Ein gutes Beispiel in diesem Zusammenhang ist eine Kamera und ein Display
Kamera und ein Display
Mit Hilfe der Kamera (Sensorantwortkurve) transformieren wir ein eingehendes Spektrum auf den rgb-Wert eines Pixels.
Mit Hilfe des Displays (Spektren der Pixel, sog. Primaries)
rekonstruieren wir aus rgb wieder ein Spektrum.
Projektionsbasis
Beispiel Kamera: wir haben die Sensorantwortkurven r(λ), g(λ), b(λ) (in der Regel als diskrete Werte).
( )
r g bL g
L r L Lrgb
v v v v
v v o v v
o v v
v = ⋅ =
= RT ; R
U N I V E R S I T Ä T KOBLENZ · LANDAU
( )
b L
rgb v
o
v
∑ ⋅ ⋅∆
=
⋅
= i i i
T r L r
L r
Lvov v v λ
Wichtig:
Rekonstruktionsbasis
Der Bildschirm leuchtet mit den Primaries rp(λ), gp (λ), bp(λ) (die Rekonstruktionsbasis wird durch ein p wie „primaries“ gekennzeichnet)
(
p p p)
p rgb
p
p p
p
b g r L
b b g
g r
r L
v v v v
v v v v
=
⋅
=
⋅ +
⋅ +
⋅
=
R R ;
~
Das rekonstruierte Spektrum ist i. d. Regel vom Originalspektrum verschieden:
L L
v v ≠
~
Primärspektren
Aber ein erneutes Foto von diesem rekonstruierten Spektrum soll den gleichen rgb-Wert ergeben
Einsetzten:
L Lvrgb ~v
⋅
= RT
U N I V E R S I T Ä T KOBLENZ · LANDAU
Einsetzten:
Daraus folgt:
L Lvrgb ~v
⋅
= RT
rgb p
rgb L
L
v v = RT ⋅R ⋅
3 3x
p E
R RT ⋅ =
Orthonormale Basissätze
Im Kontext der Farbe ist eine wichtige Forderung die Möglichkeiten einer farbkonsistenten Abbildung
Daraus leitet sich die Anforderung an die duale Basis, dass die beiden Basissätze orthonormal zueinander dass die beiden Basissätze orthonormal zueinander sind.
Die Inverse
Im Kontext der Farbe haben wir aber nx3 Matrizen, wobei n die Anzahl der Samples ist, mit der das
Spektrum diskretisiert wurde.
Hier gilt:
T
T ⋅ = ⋅ =
3xn nx3 3xn nx3
U N I V E R S I T Ä T KOBLENZ · LANDAU
Aber:
3 3x p
p R R E
R
RT ⋅ = T ⋅ =
nxn p
p R R R E
R ⋅3xnT = ⋅3xnT ≠
nx3 nx3
Auch dieses Produkt ist sehr wichtig (z.B. zur Berechnung der fundamentalen Metamere), was später noch gezeigt wird.
Berechnung der Pseudo-Inversen
Die Primärbasis ist damit die Pseudo-Inverse der
( )
(
T)
TT
T
R R
R R
R R
R R
p p
p p
⋅
⋅
=
⋅
⋅
=
−
− 1
1
3xn nx3 3x3 nx3 nx3
Rp
R E = T ⋅
(
⋅)
−1⋅
⋅
= RT R RT R
Denn:
Die Primärbasis ist damit die Pseudo-Inverse der Konstruktionsbasis
Konstruktions- und Primärbasis bilden eine duale Basis.
Identischer Farbeindruck
U N I V E R S I T Ä T
Color Matching (identischer Farbeindruck)
Wir sprechen von einem identischen Farbeindruck (color match), wenn für zwei verschiedene Spektren L und L‘ gilt:
wobei B die CIE XYZ Color Matching Funktionen LXYZ
L L
v v
v = ⋅ ′ =
⋅ T
T B
B
wobei B die CIE XYZ Color Matching Funktionen (Normspektralwertkurven) sind.
Haben 2 Spektren die gleichen XYZ- Koordinaten, dann liefern sie für einen „Normalbeobachter“ auch einen identischen Farbeindruck.
Spektren mit identischem Farbeindruck nennen wir Metamere
CIE: Konstruktions- und Rekonstruktionsbasis
0,2 0,4 0,6 0,8 1,0 1,2 1,4 1,6 1,8 2,0
[ ]nm
λ
zv
xv yv
B
-10 -5 0 5 10 15 20 25 30
360 830
[ ]nm
λ
Bp
zvp
xvp
yvp
106
×
U N I V E R S I T Ä T KOBLENZ · LANDAU
0,0 0,2
360 830
CIE XYZ 1931, 5 nm, 2 deg, 360-830 nm http://www.cvrl.org/
[ ]nm
λ
(
⋅)
−1⋅
=B B B Bp T
-20 -15 -10
L z
y x L
L
T T T
XYZ
v v
v v v
v ⋅
=
⋅
= BT L p LXYZ
v v = B ⋅
~