Colors 如何判断颜色是否是虚构的/不可能的? 短版

Colors 如何判断颜色是否是虚构的/不可能的? 短版,colors,color-theory,Colors,Color Theory,如何判断颜色(如XYZ)是否不可能?() 例如,这种颜色是不可能的: XYZ:(15.96,84.04,0) xyY:(0.1595,0.8404,0.8404) 实验室:(93,-196,161)(D65白点) 这是不可能的,因为它位于色度图之外: 我怎么知道 错误代码 目标是有人来填补这一职能: Boolean IsImaginaryColor(Single X, Single Y, Single Z) { //...TODO: Get someone to answer the

如何判断颜色(如XYZ)是否不可能?()

例如,这种颜色是不可能的:

  • XYZ:(15.96,84.04,0)
  • xyY:(0.1595,0.8404,0.8404)
  • 实验室:(93,-196,161)(D65白点)
这是不可能的,因为它位于色度图之外:

我怎么知道

错误代码 目标是有人来填补这一职能:

Boolean IsImaginaryColor(Single X, Single Y, Single Z)
{
   //...TODO: Get someone to answer the question.
}
现在我们知道,如果一个对应的LMS颜色的任何一个分量是负的,那么这个颜色是虚构的

这是颜色真实的必要条件,但不是充分条件。你可以让LMS的三个组成部分都是正色,但它仍然是一种假想的颜色

Boolean IsImaginaryColor(Single X, Single Y, Single Z)
{
   //If any component of LMS color is negative, 
   //then the color is definitely imaginary.
   LMSColor lms = XYZtoLMS(X, Y, Z);
   if ((lms.L < 0) or (lms.M < 0) or (lms.S < 0))
      return true;

   //The color may still be imaginary, 
   //but i don't know how to solve that problem
   //So as a first approximation i'll say it's real
   return false; 
}

LMSColor XYZtoLMS(Single X, Single Y, Single Z)
{
   //perform Matrix multiplication:
   //
   // LMS = M * XYZ
   //
   // Where M is the M_CAT02 transformation matrix from CIECAM02
   //
   //    0.7328, 0.4296, -0.1624
   //   -0.7036, 1.6975,  0.0061
   //    0.0030, 0.0136,  0.9834

   LMSColor result;

   result.L =  0.7328*X + 0.4296*Y + -0.1624*Z
   result.M = -0.7036*X + 1.6975*Y +  0.0061*Z
   result.S =  0.0030*X + 0.0136*Y +  0.9834*Z
}

给定不同的颜色空间,这种不可能的颜色是:

  • xyY:(0.1596,0.8404,0.8404)
  • XYZ:(15.96,84.04,0)
  • LMS:(47.80131.431.19)
  • 实验室:(93.4679,-195.9973161.1515)
  • LCHab:(93.4679253.7415140.5725)
我怎么知道这种颜色是不可能的? 给定XYZ颜色,我如何判断这是不可能的?例如:

  • XYZ:
    15.96
    84.04
    0
花言巧语 重要的是要注意两者之间的区别

  • 存在于某个色域之外的颜色
  • 和想象的颜色
快速单幅图像入门应为:

  • 色域:一种颜色可能无法在显示器、打印机或手机上显示,但它仍然是一种真实的颜色-您可以通过各种波长和强度的电磁波组合来生成颜色
  • 假想的:任何强度、任何波长的电磁波组合都不能在Long、Medium和S短人类锥体中产生这种反应
我已经知道如何判断一种颜色是否存在于特定的色域之外

我想知道在光谱轨迹之外是否也存在颜色

换句话说:我想知道它是否是虚构的

当您任意选择将
a
b
组件值限制为+-128时,会出现实验室颜色空间之外的颜色问题

额外阅读

    • 这是我在这里给出的答案的副本:与


      我认为安全的方法是计算XYZ体积边界,并检查您是否在内部或外部。

      显然,我知道您的答案,因为我在问题和Bruce的页面中链接了它。问题是,这两个问题都没有解释如何解决这个问题。有关于使用光谱脉冲的讨论,但没有提到光谱脉冲是什么,矩阵是什么,它们用于什么,它们完成了什么,或者它们如何帮助解决问题。我想他们不会回答这个问题,但这是解决这个问题的一个未命名的多步骤过程中必要的第一步。我需要的是剩下的3个步骤。或者,理想情况下,
      Boolean-IsImaginary(单X,单Y,单Z){…}| Color | CIE x  | CIE y  |
      |-------|--------|--------|
      | red   | 0.7347 | 0.2653 |
      | green | 0.1596 | 0.8404 | <--- this one
      | blue  | 0.0366 | 0.0001 |
      | white | 0.3457 | 0.3585 |