- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我最近一直在研究色彩空间和色彩模型。我对不同空间之间的关系和转换产生了兴趣,我遇到了CIEXYZ和 CIELUV .
在conversion algorithm , CIELUV 文章提到变量 u'
, v'
, u'ₙ
, v'ₙ
, 和 Yₙ
.我了解这些与 white point 有关(其中可以找到一个常用值表 here ,)但我不确定它们之间的关系是什么。
在文章中,它说:
For example, for the 2° observer and standard illuminant C,
u'ₙ = 0.2009
,v'ₙ = 0.4610
(2°观察者和标准光源C的值可以在上面提到的表格中找到,并给出为x₂ = 0.31006
和y₂ = 0.31616
。)
在此之下,计算方程 u'
和 v'
给出:
u' = (4x)/(-2x + 12y + 3)
v' = (9y)/(-2x + 12y + 3)
如果我们插入 x₂
和 y₂
我们已经给出了,我们得到了 u' = 0.2009
的预期结果和 v' = 0.4610
.然而,在文章的前面,它说 u'ₙ
和 v'ₙ
应该是那些推崇的值(value)观。 不 u'
和 v'
.
另外,这篇文章没有提到 Yₙ
除了说明它是 (u', v')
的亮度之外色度坐标,我找不到的信息。
所以,我的问题是,u'
到底是什么? , v'
, u'ₙ
, v'ₙ
, 和 Yₙ
?假设u'
和 v'
是目标色度和 u'ₙ
和 v'ₙ
是源色度(反之亦然),那么如果目标和源相同,则主要转换算法将毫无意义,因为结果 u*
和 v*
等于 0
.如果有人能为我阐明这一点,我将不胜感激。谢谢。
最佳答案
您计算了白点的u'
、v'
,这是根据定义u'ₙ
、v'ₙ
。这些是不变的。电脑屏幕 (sRGB)、HDTV (Rec.709)、电影院等都有自己特定的白点。您应该决定它,并为转换保持不变。
Yₙ
是白点的亮度。这取决于电视的设置。功率越大,白点就越发光。可能您应该将其设置为 1.0
(或 100,或最大数字值)。您会看到 L*
、u*
和 v*
与 Yₙ
成反比。这只是用于将 L
规范化为 100(在 Wikipedia 转换的情况下)。所以你应该把它作为最大 Y
,或者白色的亮度 Y
(如果你有超白,就像在 HDTV 中)。
CIEXYZ(您的初始空间,以及转换之间要使用的最常见的“公共(public)”空间)刚刚定义了X
、Y
、Z
(或 x
、y
、z
或更常见的 x
、y
, 是
)。这些值表示眼睛灵敏度(实际上是线性变换,只是为了具有正值,他们后来发现了精确的坐标(LMS 颜色空间),因此它们与白色空间无关(因此您没有白色参数),但这也意味着明确定义的色度(x
, y
)可以看作是不同的颜色,根据实际的颜色适配。
我做空(维基百科的逆序)。
根据 CIEXYZ(线性空间),您有一个点的 x
、y
、Y
。 x 和 y 是色度。 Y
是亮度。
您转换为 u'
、v'
(现在只是色度,也只是在函数中转换为 x
、y
).
最后一步是 Gamma 校正,因此您从线性空间转换为感知函数,所以您得到L*
、u*
, v*
.
维基百科正在混合颜色模型
(例如 RGB,以及从 RGB 到/从 RGB 的一般转换)与颜色空间
(sRGB [正常的“网络颜色”空间],这是一个 RGB 模型,具有明确定义的红色、绿色、蓝色和白色色度,以及明确定义的 Gamma 函数)。对于您的特定 Luv 颜色空间,您应该将带有 N
下标的变量视为预定义常量。
关于algorithm - 在CIEXYZ到CIELUV的转换中, `u'`, `v'`, `u' ₙ`, ` v' ₙ`, and ` Yₙ`是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49414049/
我是一名优秀的程序员,十分优秀!