无损 sRGB <-> 实验室转换?
Lossless sRGB <-> Lab conversion?
当我 convert black (rgb(0,0,0)
) to LAB 并再次返回时,结果为 19, 0, 10
。
是否有修改公式扩展Lab颜色-space用于1:1转换?如果不是,是否有任何其他颜色-space 保持 "the same amount of numerical change in these values corresponds to roughly the same amount of visually perceived change" 的 属性?
我想 运行 在某些图像上进行 k-means 聚类,它在实验室 space 中效果更好 space。
简短的回答是您使用的代码库有错误。
而且好像也没有主动维护
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/colour
数学
可以在 Bruce Lindbloom 的网站上找到实际的数学计算和讨论:
http://www.brucelindbloom.com/index.html?Math.html
他还有一些颜色计算器,是JS,可能对你有帮助。
很高兴回答其他问题,让我知道...
当我 convert black (rgb(0,0,0)
) to LAB 并再次返回时,结果为 19, 0, 10
。
是否有修改公式扩展Lab颜色-space用于1:1转换?如果不是,是否有任何其他颜色-space 保持 "the same amount of numerical change in these values corresponds to roughly the same amount of visually perceived change" 的 属性?
我想 运行 在某些图像上进行 k-means 聚类,它在实验室 space 中效果更好 space。
简短的回答是您使用的代码库有错误。
而且好像也没有主动维护
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/colour
数学
可以在 Bruce Lindbloom 的网站上找到实际的数学计算和讨论:
http://www.brucelindbloom.com/index.html?Math.html
他还有一些颜色计算器,是JS,可能对你有帮助。
很高兴回答其他问题,让我知道...