【问题标题】:How to plot multiple RGB coordinates in chromaticity diagram如何在色度图中绘制多个 RGB 坐标
【发布时间】:2021-08-28 06:21:44
【问题描述】:

我在将 RGB 值绘制成色度图时遇到了一些问题:

我有一些不同的 RGB 值,我想将它们绘制成色度图以使它们可视化。我想让它们可视化,因为我必须展示它们,并且我希望每个人都能看到色差。

使用 Python 中的颜色包,我可以制作色度图并绘制 1 个 RGB 值。当我添加更多 RGB 值时,出现错误。

这是我的代码:

import numpy as np
from colour.plotting import *

RGB = np.array([79, 2, 45], [87, 12, 67])

plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931(
    RGB,)

我收到此错误:

Traceback(最近一次调用最后一次): 文件“C:\Users\User\PycharmProjects\pythonProject4\Overige\Cie.py”,第 8 行,在 RGB = np.array([79, 2, 45], [87, 12, 67]) TypeError:字段元素必须是 2 或 3 元组,得到 '87

在此图中,我想绘制我的 RGB 值:

总的来说,我想在这张图中绘制大约 20 个 RGB 值。

有人可以帮我解决这个问题,还是有更好/更简单的方法来解决这个问题?

谢谢!

【问题讨论】:

  • 很难看出,但从错误来看,我认为您正在考虑“numpy”方式,而图书馆则采用经典方式。所以我认为你应该迭代每个点,并在图中绘制每个点。最后一点:色度图永远不应该用彩色绘制:它会给出错误的颜色概念,后来很难纠正(例如,中心点是白色、黑色、灰色,但也可以看作是红色、绿色,蓝色等,并且您代表色域外的颜色(并且终端颜色应该变为橙色,并且没有固定的下限)
  • 所以应该是这样的吧? RGB1 = np.array([79, 2, 45]) RGB2 = np.array([87, 12, 67]) plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931( RGB1, RGB2) 我可以根据绘制的颜色跟随你,你知道一种方法吗?例如,将它们全部绘制成黑色?
  • 抱歉我错了。
  • 感谢您的回答。 2 个附加问题:如何使绘图变为黑色而不是白色,是否可以为每个绘图添加标签? @GiacomoCatenazzi
  • 我不知道。对于第二部分,我认为它只是一个 matplotlib 图,因此您可以分配和更改内容(或者您在函数中添加参数,根据 mathplotlib 的通用参数)。第一部分:我认为有可能,但我不太了解color

标签: python numpy colors cielab


【解决方案1】:

您错误地使用了np.array: 而不是np.array([79, 2, 45], [87, 12, 67]),你应该使用np.array([[79, 2, 45], [87, 12, 67]])。注意第一个参数应该包含数据,所以你应该定义一个数组的数组,而不是给np.array一系列向量。

plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931 函数可以使用 numpy 数组(我在 cmets 中错了),正如您在 plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931 文档中的示例中看到的那样。

【讨论】:

    【解决方案2】:

    虽然@giacomo-catenazzi 的回答是正确的,但这里还有一些更微妙的地方。

    colour.plotting.plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931 定义输入的期望是线性浮点 RGB 数据,默认使用 sRGB 色彩空间进行编码。

    在这里,您的 RGB 值是整数,可能是 8 位非线性编码的 sRGB 值,因此您可能需要将它们转换为浮点表示并对其进行解码:

    import colour
    import numpy as np
    from colour.plotting import *
    
    RGB = colour.models.eotf_inverse_sRGB(np.array([[79, 2, 45], [87, 12, 67]]) / 255)
    
    plot_RGB_chromaticities_in_chromaticity_diagram_CIE1931(RGB)
    

    基本上,您需要知道它们是如何编码的,以便在内部,定义进行正确的数学运算来呈现它们。

    【讨论】:

      猜你喜欢
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多