当前位置: 首页 > 面试题库 >

使用python转换图像RGB-> Lab

燕扬
2023-03-14
问题内容

今天使用PIL / Numpy / SciPy进行转换的首选方式是什么?


问题答案:

自2010年提出链接问题时,相应的代码就从scipy转移到了单独的工具包中:http ://scikit-
image.org/

所以这是我实际上正在寻找的代码:

from skimage import io, color
rgb = io.imread(filename)
lab = color.rgb2lab(rgb)

还应注意,由于实验室性质,srgb->
lab转换取决于附加参数: whitepoint ,例如:
Photoshop 使用称为D50的白点(这是icc的标准)
OpenCV 和skimage使用D65(即srgb的标准)。
•默认的 Matlab
实现使用D50(它可以使用其他功能),

这个很好的常见问题解答通过以下方式对此进行了解释:

除非有充分的理由使用其他东西,否则应使用D65。
印刷行业通常使用D50,而摄影行业通常使用D55。
这些代表了室内(钨丝灯)和日光观看条件之间的折衷。

您可以通过将RGB转换(0,0,255)为Lab来确定要处理的白点:
•D50将给您(30,68,-112)
•D55(30,73,-110)
•D65(32,79,-108)

“ D”之后的数字对应于(内部)白点使用的色温:D50 = 5003 K(淡黄色),D65 = 6504 K(淡蓝色)

我感谢Alex和Roman的回答,因为他们为我指明了正确的方向。



 类似资料:
  • 如何将RGB彩色图像或简单的图像转换为CMY彩色图像,并提取每个组件青色(C)洋红色(M)和黄色(Y)?我的方法:-

  • 问题内容: 我试图用来读取RGB图像并将其转换为灰度。 在matlab中,我使用以下代码: 在matplotlib教程中,他们没有介绍。他们只是读了图像 然后将它们切成薄片,但这与根据我的理解将RGB转换为灰度不是同一回事。 我发现很难相信numpy或matplotlib没有将rgb转换为灰色的内置函数。这不是图像处理中的常见操作吗? 我写了一个非常简单的函数,可以在5分钟内使用导入的图像。这是非

  • 本文向大家介绍在Python中使用OpenCV将RGB格式的图像转换为HSV格式的图像,包括了在Python中使用OpenCV将RGB格式的图像转换为HSV格式的图像的使用技巧和注意事项,需要的朋友参考一下 的HSV是另一种类型的颜色空间,其中H代表色相,S表示饱和度和V代表值。 一个色调代表颜色。从0度到360度的角度。 角度 颜色 0-60 红 60-120 黄色 120-180 绿色 180

  • 问题内容: 我正在学习使用OpenCV进行实时应用程序的图像处理。我对图像进行了一些阈值处理,并希望将轮廓标记为绿色,但是由于我的图像是黑白图像,所以它们没有显示为绿色。 在程序的早期,我曾经将RGB转换为灰度,但是回过头来,我很困惑,该函数给出了: AttributeError:“模块”对象没有属性“ CV_GRAY2RGB”。 下面的代码似乎不是用绿色绘制轮廓。这是因为它是灰度图像吗?如果是这

  • 我正在学习使用OpenCV进行图像处理的实时应用程序。我对一个图像做了一些阈值化,想要用绿色标记轮廓,但它们没有显示在绿色中,因为我的图像是黑白的。 在程序的早期,我使用将RGB转换为灰度,但回到前面,我感到困惑,函数给出的是: AttributeError:“module”对象没有属性“cv_gray2rgb”。 下面的代码似乎没有用绿色绘制轮廓。这是因为它是灰度图像吗?如果是,我可以将灰度图像

  • 问题内容: 我有一个RGB图像。我想将其转换为numpy数组。我做了以下 它创建一个没有形状的数组。我假设它是一个iplimage对象。 问题答案: 您可以使用较新的OpenCV python接口(如果我没记错的话,自Ope​​nCV 2.2起就可以使用)。它本机使用numpy数组: 结果: