RGB --> XYZ Problem

Gast #2865285
Lesenswert?
• ▲
▼
Hallo zusammen,

hab das hier n bisschen durchforstet, habe aber nichts gefunden, was mir 
wirklich hilft.

Ich habe das Problem, dass ich aus RGB Primärvalenzen XYZ Werte 
errechnen will.

Probiert habe ich das ganze mal am Adobe-RGB Farbraum (1998) mit 
folgenden Primärvalenzen:

  Rot   Grün   Blau   Weiß (D65)
x   0,640   0,210   0,150   0,3127
y   0,330   0,710   0,060   0,3290
z   0,030   0,080   0,790   0,3583

Jetzt will ich daraus die Matrix aufstellen und geh dabei nach folgender 
Seite vor:

http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html

Mein Problem ist: Ich komme nicht auf die gegebene Umrechnungsmatrix von

0.5767309  0.1855540  0.1881852
0.2973769  0.6273491  0.0752741
0.0270343  0.0706872  0.9911085

sondern auf eine Matrix, die ungefähr um den Faktor 3,04 daneben liegt 
und finde den Fehler einfach nicht. Hat jemand ne Idee woran das liegen 
könnte?

Vielen Dank im Voraus
KlausMausi
Gast #2865328
Lesenswert?
• ▲
▼
Nope, Matrix wurde invertiert. Mich wundert halt, dass es ein Faktor 
ist, um den die gesamte Matrix falsch ist.

Oder hast du das grade durchgerechnet und kommst auf die Matrix, weil 
dann weiß ich wirklich nicht mehr weiter, wo mein Fehler liegt. Kann 
ansonsten gleich mal den gesamten Rechenweg posten
Gast #2865387
Lesenswert?
• ▲
▼
Also:

ausgehend von

 Rot   Grün   Blau   Weiß (D65)
x   0,640   0,210   0,150   0,3127
y   0,330   0,710   0,060   0,3290
z   0,030   0,080   0,790   0,3583


komme ich auf

     Rot     Grün    Blau
X   64/33    21/71    5/2
Y     1        1       1
Z   1/11      8/71   79/6


Dann ergibt sich für den S-Vektor

Sr = 0.09782649686
Sg = 0.2064026133
Sb = 0.02477088984

Daraus folgt als Matrix M (auf vier Stellen gerundet)

   0.1897   0.0610   0.0619
M= 0.0978   0.2064   0.0248
   0.0089   0.0233   0.3262

Folgende Faktoren ergeben sich:

Im Vergleich mit der Matrix, die eigentlich rauskommen sollte, ergibt 
sich dann

[errechnete Matrix] * (3.04) = [gegebene Matrix]
#2865431
Lesenswert?
• ▲
▼
KlausMausi schrieb:

> Dann ergibt sich für den S-Vektor
>
> Sr = 0.09782649686
> Sg = 0.2064026133
> Sb = 0.02477088984

Ich krieg da andere Werte raus

Xr = 0.64/0.33 = 1.93
Yr = 1
Zr = (1 - 0.64/0.33 - 0.33)/0.33 = -3.84

Xg = 0.21/0.71 = 0.29
Yg = 1
Zg = (1 - 0.21/0.71 - 0.71)/0.71 = -0.0081

Xb = 0.15/0.06 = 2.5
Yb = 1
Zb  (1 - 0.15/0.06 - 0.06)/0.06 = -26


Matrix zur Berechnung von S

   1.93   0.29    2.5
   1      1       1
   -3.84  -0.0081 -26

diese invertiert

   0.7609  -0.22   0.06
  -0.6487   1.188 -0.01
  -0.112    0.03  -0.04

multipliziert mit dem Weiß-Vektor  0.3127 0.3290 0.3583

ergibt

  Sr =  0.188696
  Sg =  0.182011
  Sb = -0.041706
Gast #2865489
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:
> Xr = 0.64/0.33 = 1.93
> Yr = 1
> Zr = (1 - 0.64/0.33 - 0.33)/0.33 = -3.84
>
> Xg = 0.21/0.71 = 0.29
> Yg = 1
> Zg = (1 - 0.21/0.71 - 0.71)/0.71 = -0.0081
>
> Xb = 0.15/0.06 = 2.5
> Yb = 1
> Zb  (1 - 0.15/0.06 - 0.06)/0.06 = -26


Du teilst einmal zuviel durch 0.33/0.71/0.06 also bei der Z-Koordinate, 
oder seh ich das falsch

Z = (1 - x - y) / y und nicht (1-x/y - y)/y  oder?
#2865577
Lesenswert?
• ▲
▼
KlausMausi schrieb:
> Nur nochmal zum Endverständnis, was den Weißwert angeht handelt es sich
> bei dem mit Faktor 3.04 einfach nur um einen Weißabgleich?

Nein. Das ist einfach nur unterschiedlich normiert. Lindbloom normiert 
auf Y=1.0, Wikipedia auf (X+Y+Z) = 1.0.

Da die Lindbloom-Werte (X+Y+Z) = 3.0393 sind, kommt da dein Faktor her.

Viele Grüße,
        Simon
#2865586
Lesenswert?
• ▲
▼
Simon Budig schrieb:
> KlausMausi schrieb:
>> Nur nochmal zum Endverständnis, was den Weißwert angeht handelt es sich
>> bei dem mit Faktor 3.04 einfach nur um einen Weißabgleich?
>
> Nein. Das ist einfach nur unterschiedlich normiert.

Vielleicht sollte ich noch dazuschreiben: Eine Skalierung des Wertes 
entspricht einer Intensitätsänderung. Dadurch wird kein Weißpunkt 
verschoben o.ä. (was bei einem Weißabgleich passiert).

Viele Grüße,
        Simon

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.