Python中将RGB转换为LAB的快速方法

3

有没有一种快速的方式在Python3中使用D50 sRGB将RGB转换为LAB?

Python-Colormath 太慢了

skimage 使用D65

2个回答

4

目前,skimage中的白色参考值不能作为参数传递(欢迎提交拉取请求),但这里有一个解决方法:

from skimage import color
color.colorconv.lab_ref_white = np.array([0.96422, 1.0, 0.82521])
lab = color.rgb2lab(image)

1
谢谢!但它只适用于xyz2lab。对于rgb2xyz,还应根据此处替换color.colorconv.xyz_from_rgb,它可以正常工作。再次感谢您的参考!PS 我是Python新手,不确定是否能够正确处理拉取请求。)) - Pylyp
出于好奇,你为什么要使用D50? - Stefan van der Walt
1
我使用D50光源测量DMC绣线的颜色,因此在处理RGB图片时,我使用D50进行deltaE计算。例如,DMC中的暖白色是B5200绣线,其lab值为(91.6, 1.5, -6.3)。但在D65下,该颜色的lab值为(91.6, 1.5, -6.3),属于冷白色。 - Pylyp

3

Stefan van der Walt的回答在当时是正确的,但是对于任何仍然有同样问题并找到这个页面的人来说:从scikit-image 0.13(2016年12月)开始,skimage.color.rgb2lab带有一个illuminant参数,因此您只需编写:

lab = color.rgb2lab(image, illuminant='D50')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接