0

当我黑色 ( rgb(0,0,0)) 转换为LAB并再次返回时,它显示为19, 0, 10.

是否有修改后的公式可以扩展 Lab 颜色空间以进行 1:1 转换?如果没有,是否有任何其他色彩空间保持“这些值中相同数量的数值变化对应于大致相同数量的视觉感知变化”的属性?

我想在一些图像上运行 k-means 聚类,它在实验室空间中效果更好。

4

1 回答 1

1

简短的回答是您使用的代码库有错误。

而且它似乎没有得到积极的维护。

FWIW,当您查看价值观时,请记住:

#000

sRGB 0,0,0 = linearRGB 0.0,0.0,0.0 = XYZ 0,0,0 = Lab 0,0,0
(所有空格 0,0,0)

#FFF

sRGB 255,255,255 = linearRGB 1.0,1.0,1.0 = XYZ 0.9505,1.0,1.0888 = Lab 100,0,0
(sRGB 为 D65,假设 D65 2° 观察者)

第777章

sRGB 119,119,119 = linearRGB 0.1845,0.1845,0.1845 = XYZ 0.1753,0.1845,0.2009 = Lab 50.03,0,0
(使用 BruceLindbloom 矩阵)

伪代码

更正确的代码可以在这里找到:

https://www.easyrgb.com/en/math.php

但是,此代码不是 javascript — 此站点上的代码是伪代码,因此需要对其进行修改(即您需要使用 Math.pow 而不是 ^ )

Python

这里有一个很好的基于 Python 的库,并且它得到了积极的维护:

https://github.com/colour-science/color

数学

实际的数学和讨论可以在 Bruce Lindbloom 的网站上找到:

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

他还有一些可能对您有帮助的 JS 颜色计算器。

很高兴回答其他问题,让我知道...

于 2019-12-28T10:21:10.540 回答