I am getting unexpected results when converting from RGB to Lab. This is clearly some kind of configuration problem, but I cannot find it. I have three linux workstations, both fully updated (except all are running R 3.6.0 instead of 3.6.1, because that's the latest Fedora 30 binary). I'm running R --vanilla from the command line. On one workstation, it functions correctly; on the other two the conversion malfunctions as below.
I found it when my scico color palettes were wildly wrong, but it isn't a scico package problem. https://twitter.com/numberwright/status/1151601407436439554 After spending far too much time poking at it, I'm still curious as to what might be going on. It's got to be my computer rather than R, but I do want to figure out what, in case it has consequences for other calculations. Here's my sample code: red.in <- rep("red", 20) red.rgb <- t(col2rgb(red.in, alpha = 0)/255) red.lab <- convertColor(red.rgb, from = "sRGB", to = "Lab") convertColor(red.lab, from = "Lab", to = "sRGB") #-#-# Output on computer A, as expected: > sessionInfo() R version 3.6.0 (2019-04-26) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: Fedora 30 (Workstation Edition) Matrix products: default BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.0 > > red.in <- rep("red", 20) > > red.rgb <- t(col2rgb(red.in, alpha = 0)/255) > red.lab <- convertColor(red.rgb, from = "sRGB", to = "Lab") > convertColor(red.lab, from = "Lab", to = "sRGB") [,1] [,2] [,3] [1,] 1 0 0 [2,] 1 0 0 [3,] 1 0 0 [4,] 1 0 0 [5,] 1 0 0 [6,] 1 0 0 [7,] 1 0 0 [8,] 1 0 0 [9,] 1 0 0 [10,] 1 0 0 [11,] 1 0 0 [12,] 1 0 0 [13,] 1 0 0 [14,] 1 0 0 [15,] 1 0 0 [16,] 1 0 0 [17,] 1 0 0 [18,] 1 0 0 [19,] 1 0 0 [20,] 1 0 0 #-#-# Output on computer B (and also computer C!) > sessionInfo() R version 3.6.0 (2019-04-26) Platform: x86_64-redhat-linux-gnu (64-bit) Running under: Fedora 30 (Workstation Edition) Matrix products: default BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_3.6.0 > > red.in <- rep("red", 20) > > red.rgb <- t(col2rgb(red.in, alpha = 0)/255) > red.lab <- convertColor(red.rgb, from = "sRGB", to = "Lab") > convertColor(red.lab, from = "Lab", to = "sRGB") [,1] [,2] [,3] [1,] 1 0.0000 1 [2,] 1 0.0000 1 [3,] 1 0.0000 1 [4,] 1 0.0000 1 [5,] 0 0.5472 0 [6,] 0 0.5472 0 [7,] 0 0.5472 0 [8,] 0 0.5472 0 [9,] 1 0.0000 1 [10,] 1 0.0000 1 [11,] 1 0.0000 1 [12,] 1 0.0000 1 [13,] 0 0.5472 0 [14,] 0 0.5472 0 [15,] 0 0.5472 0 [16,] 0 0.5472 0 [17,] 1 0.0000 0 [18,] 1 0.0000 0 [19,] 1 0.0000 0 [20,] 1 0.0000 0 #-#-# I've gotten as far as locating the problem in this line from grDevices::convertColor() xyz <- from$toXYZ(color, from.ref.white) Packages are up to date on all computers, although this doesn't involve any contributed packages. Thoughts? -- Sarah Goslee (she/her) http://www.numberwright.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.