【问题标题】:Colors: CIE XYZ model - Chromaticity graph颜色:CIE XYZ 模型 - 色度图
【发布时间】:2012-11-24 20:15:53
【问题描述】:

我想为 XYZ CIE 颜色模型画一个剖面图,像这样:

你知道怎么做吗?

【问题讨论】:

    标签: colors


    【解决方案1】:

    非常简短...

    您可以通过为标准观察者绘制 xy(我有 XY 而不是 xy)数据来绘制谱线(马蹄形)。然后,您可以通过对这些点应用凸包算法来找到需要填充的多边形。列出要在多边形内绘制的 xy 值。通过z = 1 - x - y 查找固定亮度的 z 值。转换为 RGB - 您将需要一个名为 XYZtoRGB 之类的函数(有一个 python 模块,或使用维基百科上的转换)。您可能希望先将所有数字乘以常数或其他值来增加亮度。将 xy 位置的像素设置为 RGB 值。与您计算的凸包和/或谱线一起绘制。

    我有标准 2deg(我认为)观察者的数据(我找不到链接) - 您需要除以 X+Y+Z 才能从 XYZ 转换为 xyz。如果你想让我把它们发给你,请给我发消息,这里的数据太多了。

    【讨论】:

    • 所以让我们先专注于画马蹄铁。我还有几个问题:1.标准观察者的数据是指某种带有值的数组?这些是什么价值观,它们代表什么? 2. xy 定义了一个 x 和 y 范围为 [0:1] 的平面? 3. 如何计算 xy 平面上给定点的 RGB 颜色? 4. 是否需要使用凸包算法来绘制谱线?从您的帖子看来,这条线与您提到的观察者数据直接相关,对吗?
    • 1) 我在这里上传了数据:它是波长,log X,log Y,log Z,sussex.ac.uk/Users/lw80/cones.csv 这些被称为锥基,它们代表不同的相对响应一个视网膜中的视锥细胞到不同的单色光。 en.wikipedia.org/wiki/… 2. xy有点像rgb的rg,只是经过变换后,是有色人用来表示坐标的字母。 3.下载一个包。 4.不,你不会,这是xy数据,但它是获取色块形状的有效方法。
    • 正好是 600 个字符
    • 波长 615+ 的数据缺少 logz。这不是问题吗? 1. 我想我将遍历平面中的所有 xy 点并相应地为它们着色 - 我如何使用您的数据来确定颜色?
    • 假设z = 0,因为log 0 = -infinity而被省略。遍历马蹄形中的所有 xy 点。颜色只是从 xyz 到 rgb 的转换。 brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
    【解决方案2】:

    colour Python 模块有一个plotting 子模块,其中这种绘图是提供的绘图之一。请参阅 plot_chromaticity_diagram_CIE1931 和 plot_sds_in_chromaticity_diagram_CIE1931 的文档

    它在底层使用 Matplotlib。

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 2011-06-03
      相关资源
      最近更新 更多