Thank you Ken.
90% of my problem was missing the factor of 100. I was just
inputing xyY as a test, I wasn't sure whether the docs were being
clear about nomenclature. Speaking thereof, the D65 values used in
the example: I thought they were chromaticity coordinates, but
apparently they are tristimulus values - is that correct?
Thanks again. This solves several problems in a package I am
developing. Bryan
On Jun 12, 2013, at 4:36 PM, Ken Knoblauch <ken.knoblauch at inserm.fr> wrote:
You seem to treating the input values as xyY when they should be XYZ
(case matters).
So, I would do something like this
D65 <- c(0.3127, 0.329, 0.3583)
X <- 100 * D65[1]
Y <- 100 * D65[2]
Z <- 100 * D65[3]
XYZ <- data.frame(X = X, Y = Y, Z = Z)
convertColor(XYZ, from = "XYZ", to = "sRGB")
[,1] [,2] [,3]
[1,] 1 1 1
Quoting Bryan Hanson <hanson at depauw.edu>:
Ken, I followed your suggestion and perhaps I don't understand
what to expect from convertColor or maybe I'm not using it
correctly. Consider the following tests:
D65 <- c(0.3127, 0.329, 0.3583) # D65 chromaticity coordinates
X <- D65[1]*D65[3]/D65[2] # conversion per brucelindbloom.com
Y <- D65[3]
Z <- D65[3]*D65[3]/D65[2]
XYZ <- data.frame(X = X, Y = Y, Z = Z) # D65 in tristimulus values (?)
colnames(XYZ) <- c("X", "Y", "Z")
tst1 <- convertColor(XYZ, from = "XYZ", to = "sRGB")
tst2 <- convertColor(D65, from = "XYZ", to = "sRGB")
# none of these are 1,1,1, namely white (they are ~ 0.6, 0.6, 0.6)
So it looks like D65, a white standard, does not come back to
something near white in the sRGB space. What am I doing wrong
here, or what do I misunderstand? Please don't say everything!
Thanks, Bryan
On Jun 12, 2013, at 2:57 PM, Ken Knonlauch <ken.knoblauch at inserm.fr> wrote:
Bryan Hanson <hanson <at> depauw.edu> writes:
grDevices::convertColor has arguments 'from' and 'to' which can
take on value 'XYZ'. Can
someone confirm
that 'XYZ' is the same as the CIE chromaticity coordinates
are also sometimes refered to
as 'xyY' in
the literature? Or are these the CIE tristimulus values?
It looks to me like the first case is
true, but I
would appreciate hearing from one of the people in
I.'d look at the code or put in some known data to test it,
but XYZ are tristimulus values and xyY are chromaticity
coordinated and the luminance which is the Y tristimulus
value for the CIE 1931 standard observer.
Ken