Преобразовать sRGB в Lab с convertColor?

Я пытаюсь работать с цветом Lab, и мне нужно выполнить преобразование из sRGB, в идеале с R. Я только что дал convertColor и немного запутался. В качестве теста я конвертирую образцы Macbeth ColorChecker, но не получаю точно правильных значений.

Пример:

swatch1sRGB <- c(115,82,68)/255
swatch1Lab <- convertColor(swatch1sRGB, from="sRGB", to="Lab")
swatch1Lab
            L      a.x        b
[1,] 38.05293 11.86536 13.71442

Что отличается от реальных значений (37,986, 13,555, 14,059) с разумным запасом значений Macbeth ColorChecker.


person alexwhan    schedule 05.04.2012    source источник
comment
Разве значения sRGB не округлены и, следовательно, менее точны, чем значения Lab?   -  person Vincent Zoonekynd    schedule 05.04.2012
comment
Значения sRGB округлены, но это не решает проблему, потому что, когда вы идете другим путем (Lab в sRGB), вы округляете до 117, 81 и 67. Не смог понять.   -  person alexwhan    schedule 09.05.2012


Ответы (1)


Цифры, которые вы получили с помощью convertColor, верны. Я воспроизвел ваши результаты, используя пакет convert_colour by farver:

library(farver)
convert_colour(
  t(c(115, 82, 68)), 
  from = "rgb", 
  to = "lab")

Результат почти такой же, как в вашем примере:

            l        a        b
[1,] 38.01682 11.79681 13.66437

Кроме того, ColorHexa также показывает почти те же цифры (для CIE-LAB):

введите здесь описание изображения

person Artem    schedule 26.12.2019
comment
convertColor() — это функция от grDevices, и, насколько я знаю, она не устарела. - person Droplet; 27.02.2020
comment
Соглашаться. Исправьте ответ. - person Artem; 02.03.2020