今天使用PIL / Numpy / SciPy进行转换的首选方法是什么?
解决方法
自2010年以来,
linked question被问到相应的代码从scipy移动到一个单独的工具包:
http://scikit-image.org/
http://scikit-image.org/
所以这里是我实际寻找的代码:
from skimage import io,color rgb = io.imread(filename) lab = color.rgb2lab(rgb)
还应该注意,由于自然,srgb→实验室转换取决于附加参数:白点,例如:
•Photoshop使用称为D50(这是icc的标准)的白点,
•OpenCV和skimage使用D65(这是srgb的标准)。
•默认Matlab实现使用D50(它能够使用others),
这个漂亮的FAQ解释了这样:
You should use D65 unless you have a good reason to use something
else.
The print industry commonly uses D50 and photography commonly
uses D55.
These represent compromises between the conditions of indoor
(tungsten) and daylight viewing.
您可以通过将RGB(0,255)转换为实验室来告诉您要处理的白点:
•D50会给你(30,68,-112)
•D55(30,73,-110)
•D65(32,79,-108)
“D”之后的数字对应于白点的(内部)使用的色温:D50 = 5003K(蓝色),D65 = 6504K(黄色)
我感谢亚历克斯和罗马的答案,因为他们指出我的方向正确。