2016-10-17 3 views
0

Ich frage mich, was das Matlab bei der Verwendung der Funktion rgb2xyz() tut? Ich kann die Ergebnisse nicht mit der rgb2xyz Konvertierungsmatrix reproduzieren. Gibt es darüber hinaus einen Unterschied zwischen der Verwendung von makecform ('srgb2xyz') und der Verwendung von rgb2xyz()? sie produzieren Ergebnisse Unterschied ..der Unterschied zwischen makecform ('srgb2xyz') und rgb2xyz() in Matlab

Antwort

1

Der Standardweißpunkt für makecform('srgb2xyz') scheint D65D50, während rgb2xyz Standardwerte zu sein.

>> applycform([.2 .3 .4],makecform('srgb2xyz','AdaptedWhitePoint',whitepoint('D65'))) 

ans = 

0.0638 0.0690 0.1356 

>> rgb2xyz([.2 .3 .4]) 

ans = 

0.0638 0.0690 0.1356 

>> applycform([.2 .3 .4],makecform('srgb2xyz')) 

ans = 

0.0617 0.0679 0.1024 

>> rgb2xyz([.2 .3 .4],'WhitePoint','D50') 

ans = 

0.0616 0.0679 0.1025 

Beachten Sie die Dokumentation für makecform schlägt vor, die jüngere rgb2xyz stattdessen verwenden. Was Ihren Kommentar über die Reproduktion der Ergebnisse unter Verwendung einer Matrix betrifft, beachten Sie, dass die Matrizen im Allgemeinen von linearen Daten abgeleitet/angewendet werden. Wenn Sie die Ergebnisse reproduzieren möchten, müssen Sie auch die srgb-Gammakorrektur modellieren.

+0

Vielen Dank für die Erklärung. Es hilft!!! –

+0

Aber gibt es eine Vorliebe für die Wahl der D65 oder D50? Ich mache eine Segmentierung und irgendwie gibt mir der Befehl 'rgb2xyz' ein viel besseres Ergebnis. –

+0

Wenn Sie nicht wissen, dass Ihre Eingabebilder in einem anderen Farbraum kodiert sind, ist D65 eine gute Schätzung. Die meisten Bilder im Internet sind unter der Annahme eines sRGB-Displays kodiert und sRGB ist eine vernünftige Beschreibung der gängigsten Monitore. sRGB definiert den Weißpunkt als D65. Übrigens, wenn Sie meine Antwort nützlich finden, markieren Sie bitte als akzeptiert. –

Verwandte Themen