问题标签 [cieluv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
436 浏览

colors - 黑色的 CieLuv 值是多少?

关于 CieL*u*v* 颜色空间的Wikipedia 页面描述了从以XYZ 颜色空间表示的颜色的转换函数。

对于黑色,在 RGB 颜色空间中表示为 (R=0, G=0, B=0),在 XYZ 颜色空间中表示为 (X=0, Y=0, Z=0),我们应该使用哪些值在 CieLuv 中代表它?

该公式使用除法,4x/(x+15y+3z),其结果对于黑色未定义。
我们应该使用 (L=0, u=0, v=0),还是有更多的微妙之处?

0 投票
1 回答
214 浏览

rgb - 如何确定数据的色彩空间 (RGB) 配置文件?

我有一个标准的 jpeg 图像,我在一些商业软件中使用它来为其他数据着色(通过将图像的颜色映射到数据上)。然后我将彩色数据从这个软件导出到一个 XYRGB ascii 文件,即我将数据信息存储在每行的前两列中,然后将三个 RGB 颜色存储在最后三列中。

由于我需要将颜色转换为 CIELab 或 CIELuv,看来我需要知道我的 RGB 值在哪个确切的颜色空间(RGB、sRGB、伽玛、白点 - 你可以命名)。但问题是:我怎样才能找出? 还是我可以假设某个配置文件是一个很好的近似值?

(备注:我使用的商业软件的公司无法告诉我任何细节......)

0 投票
1 回答
741 浏览

colors - 如何确定原色的 CIE xyY 亮度值?

在 sRGB 颜色空间中,红色、绿色和蓝色原色的亮度值分别指定为 0.21216、0.7152 和 0.0722。白点被定义为亮度为 1。换句话说,sRGB 值<1,0,0><0,1,0><0,0,1><1,1,1>映射到 xyY 值<0.64, 0.33, 21.216><0.3, 0.6, 71.52><0.15, 0.06, 7.217><0.31273, 0.32902, 100>(按照惯例,Y 缩放 100)。

如何确定原色的亮度值?它们纯粹是 xy 原色的函数,还是原色和光源(例如 D65)的组合?如果有,是什么关系?更一般地说,如何确定任意一组原色的亮度值?

0 投票
1 回答
1142 浏览

python-3.x - 在将 XYZ 转换为线性 sRGB 期间,答案超出范围 [0,1]

我的任务是将 RGB 图像转换为 LuvImage。在该域中执行线性拉伸。然后将其转换回 RGB 域。

原图:

[[ 0 0 0]

[255 0 0]

[100 100 100]

[0 100 100]]

Luv域中线性拉伸后的Luv图像

[[0, 0, 0],

[100, 175, 37.7],

[79.64, 0, 0],

[71.2 ,-29.29,-6.339]]

现在,我将其转换为XYZ 图像。答案是,

[[0,0, 0],

[1.5, 1, 0.53],

[0.533, 0.56, 0.61],

[0.344, 0.425, 0.523]]

现在,之后我通过将图像与矩阵相乘将其转换为线性 sRGB 图像:

[[3.240479,-1.53​​715,-0.498535],

[-0.969256, 1.875991, 0.041556],

[0.055648, -0.204043, 1.057311]]

这个转换的答案 -线性 sRGB 图像

[[0. 0. 0.],

[3.07132001 0.44046801 0.44082034],

[0.55904669 0.55972465 0.55993322],

[0.20106868 0.4850426 0.48520307]]

这里的问题是第二个像素的 sRGB 值不在 [0,1] 的范围内。对于所有其他像素,我得到了正确的值。

此转换的代码如上所示。有人可以指出我在第二个像素上做错了什么,以及如何解决它?

0 投票
1 回答
707 浏览

algorithm - 在 CIEXYZ 到 CIELUV 的转换中,什么是 `u'`、`v'`、`u'ₙ`、`v'ₙ` 和 `Yₙ`?

0 投票
2 回答
278 浏览

color-space - 确定 Luv 颜色是非虚构的

假设我在 Luv 颜色空间中有三个坐标。确定这些对应于真实颜色的最佳方法是什么?

0 投票
1 回答
790 浏览

java - 如何将 RGB 图像转换为 CIELUV 颜色空间?

如何将 RGB 图像转换为 CIELUV 颜色空间?是否有任何图书馆可以解决这个问题?

0 投票
2 回答
84 浏览

rgb - RGB 颜色的 CIELUV 均匀随机采样

在计算机上选择随机颜色比我想象的要难。

对 R、G、B 进行 0..255 的均匀随机抽样的简单方法往往会画出许多相似的果岭。从像 CIELUV 这样的感知均匀空间中采样是有意义的。

一种简单的方法是在常规网格上对 L,u,v 进行采样,并确保颜色实体包含在边界中(我已经看到了不同的边界)。如果样本落在嵌入的 RGB 实体之外(通过将其映射到 XYZ 然后 RGB 进行测试),拒绝它并再次采样。如果您拒绝的次数超过某个任意阈值次数,您可以接受一个笨拙但保证终止“救助”选择(如天真的程序)。

我相信,测试样本是否在 RGB 范围内需要确保测试黑色的特殊情况(某些实现最终对除以零保持沉默)。如果 L=0 并且 u!=0 或 v!=0,则需要拒绝样本,否则您最终会在 Luv 空间中对 L=0 平面进行过采样。

这个程序有明显的缺陷吗?这似乎有效,但我确实注意到我滚黑的次数比我想象的要多,直到我想到在这种情况下发生了什么。谁能指出我在 CIELUV 网格上的正确边界以确保我包围了 RGB 实体?

对那些不知道的人有用的参考: https ://www.easyrgb.com/en/math.php