问题标签 [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.
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),还是有更多的微妙之处?
rgb - 如何确定数据的色彩空间 (RGB) 配置文件?
我有一个标准的 jpeg 图像,我在一些商业软件中使用它来为其他数据着色(通过将图像的颜色映射到数据上)。然后我将彩色数据从这个软件导出到一个 XYRGB ascii 文件,即我将数据信息存储在每行的前两列中,然后将三个 RGB 颜色存储在最后三列中。
由于我需要将颜色转换为 CIELab 或 CIELuv,看来我需要知道我的 RGB 值在哪个确切的颜色空间(RGB、sRGB、伽玛、白点 - 你可以命名)。但问题是:我怎样才能找出? 还是我可以假设某个配置文件是一个很好的近似值?
(备注:我使用的商业软件的公司无法告诉我任何细节......)
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)的组合?如果有,是什么关系?更一般地说,如何确定任意一组原色的亮度值?
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.53715,-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] 的范围内。对于所有其他像素,我得到了正确的值。
此转换的代码如上所示。有人可以指出我在第二个像素上做错了什么,以及如何解决它?
color-space - 确定 Luv 颜色是非虚构的
假设我在 Luv 颜色空间中有三个坐标。确定这些对应于真实颜色的最佳方法是什么?
java - 如何将 RGB 图像转换为 CIELUV 颜色空间?
如何将 RGB 图像转换为 CIELUV 颜色空间?是否有任何图书馆可以解决这个问题?
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