问题标签 [cielab]
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.
python - Python中的相似颜色检测
给定 RGB 或 Hex 的颜色,我如何找到与其相似的颜色?通过相似,我的意思是它们应该可以通过小的值来区分。
r - 在 R 中转换 RGB 和 HEX 中的 Lab 颜色值
使用 R 将值转换RGB
为HEX
值很容易:
如何将 CIELab 值转换为 RGB 和 HEX?
algorithm - 白平衡算法背后的数学原理是什么?
我在 CIELab 色彩空间中有一张图像。我需要对其进行一些处理。所以,有两个问题:
给定一组 Lab 值,如何获得以开尔文为单位的整体图像温度?(例如在相机设置或 Lightroom 中)
具有开尔文的温度值,如何调整图像白平衡以匹配该温度?(就像在 Lightroom 中一样)
我也想知道,如何为颜色做同样的事情。
colors - 可见色域如何界定?
CIE XYZ 空间中颜色的坐标代表了我们眼睛中每种视锥细胞类型的刺激——因此是三刺激值。并非所有坐标都有(x, y, z)
意义(例如,在任何锥体中都不能有负刺激),因此 XYZ 空间中所有可能组合的域将是一个 blob。有时您会发现描绘的 blob,例如在 Wikipedia 上:
(斑点上的颜色毫无意义,因为它们实际上无法在标准 RGB 显示器上显示。)
我现在问自己为什么这个 blob 是有界的。难道我不能(x, y, z)
在斑点中选择任何一点并用 缩放它alpha*(x,y,z,)
,就像我会启动一个光源一样,并且仍然在可见空间中吗?究竟是什么构成了这里的上限?
node.js - 颜色数学和编程
我目前正在尝试构建一个程序,该程序将接受图像并将其所有单个部分20x20替换为最佳视觉匹配的单个图像(最多 1000 个)。
我研究并了解了 avg RGB/Color,我对如何构建程序的大致想法是,我首先计算平均Color/RGB
变换RGB
并选择与20x20像素CIE-L*ab
差异最小的图像(最多 1000 个)输入图像。
我不是要代码,只是一些可以更好地帮助我理解如何从 1976 比较转换的RGB
资源CIE-L*ab
。
我对计算距离的欧几里得距离不感兴趣,因为它没有考虑人类的颜色感知。如果有帮助,我正在构建程序NodeJS
谢谢你
opencv - 关于 RGB 和 CIELAB 之间转换的说明
我正在使用 PCL 处理点云。我最近不得不将 RGB 中点的颜色信息转换为 Cielab。
我已经看到可以使用 OpenCV,然后我使用了以下代码:
}
我的问题是:我得到的值是否正确?LAB 值不应该是十进制并随负数变化吗?
因此,我尝试使用此处提供的代码“手动”进行转换。当我在 CloudCompare 中可视化这两个云时,我发现它们产生了非常相似的视图,即使在直方图中也是如此。
有人可以向我解释为什么吗?
vb.net - LAB、RGB、XYZ 颜色转换不正确,反之亦然
我正在为一个项目制作一个自定义颜色选择器,它采用 Photoshop 风格,我让所有其他转换按预期工作,但我无法让 RGBToLAB 和 LABToRGB 正常工作。
问题不仅在于颜色没有正确表示,而且转换也不完美。
样本 :
- 实验室_58:0:0
- XYZ_0.25960986510312:0.25960986510312:0.25960986510312
- RGB _ {R:10 G:8 B:7 A:255}
- XYZ_0.250358161840588:5.51162077338675:66.3836625496266
- 实验室_85.3739502460609:0:0
初始 LAB 和最后一个 LAB 不一样,这说明转换有缺陷。我不仅得到了错误的颜色,而且值也发生了变化,尤其是当 LAB.L 假设为常数时(在此示例中,因为这是滑块当前正在控制的内容)
上面的 LAB->RGB->LAB 转换是有缺陷的,但是 XYZ->RGB->XYZ 转换也是有缺陷的。
显然我对转换 LABToLAB 不感兴趣,但上面确实指出了转换中的一个缺陷。
我尝试过的事情:
我需要 VB.Net 中的代码,这就是为什么我正在为我的项目转换和调整统一代码,但是我被卡住了,需要一些帮助。
如果有人知道我做错了什么,我会很高兴听。
更新1: 我试图通过不匹配两种转换方法来更正转换,我越来越接近完美的转换,但是我担心我可能已经从这个问题上工作了这么长时间。
样本 :
- 实验室_0:0:0
- XYZ_0.262413383082537:0.262413383082537:0.262413383082537
- RGB _ {R:10 G:8 B:7 A:255}
- XYZ_0.250358161840588:0.253536089358344:0.236754082437929
- 实验室_2.29017121228677:-0.12373260790384:0.261362975778545
如您所见,问题比以前少了,但仍然存在。
更新 2: 进一步测试显示 XNA.Framework.Color 中出现异常不受欢迎的行为,导致任何分数都被解释为 %。这意味着 200.10 将超过最大颜色值 (255) 的 200%,这会将其限制为最大值 (255),因此除非您指定整数,否则最终可能会得到非常错误的输出。
我也试图与此示例中的代码不匹配。我觉得我在进步,即使我不得不放弃在转换中使用 XNA.Framework.Color 类。
如果我找到一个最终解决方案,我会更新。
更新 3:此处的 在线测试(此处的 源代码)和此处显示我的 LABToXYZ 不正确。
我的结果:
- 实验室_100:0:0
- XYZ _ 95.047:100:100
他们的结果:
- 实验室_100:0:0
XYZ_95.05:100:108.88
/li>
但是用全 0 做 LAB 会导致 XYZ 全为 0,这是正确的行为,我不知道出了什么问题,这是不正确的 Z,但我的代码中的错误在哪里?
这里的更多示例似乎表明我的代码是正确的,但我仍然得到一个不正确的 Z。
更新 4: 进一步完善和重做所有代码,我发现对此处找到的示例进行转换和改编,给了我想要的结果,即使这些示例中有一些错误,值得注意的是 ^2.2应该是^2.4。
我还发现了一些精度问题,必须将双精度数转换为整数才能使转换完美,但这可能是最终更新,除非我遇到任何问题,否则我会在继续测试时将这个问题留待一段时间代码在实践中。当我确信代码没有缺陷时,我会回来并将其标记为已回答。
样品:测试 1
- 实验室_1:0:0
- XYZ_0.105222895807779:0.110706172533356:0.120540201839494
- RGB _ 4:4:4:255
- XYZ_0.115400959145268:0.121410793419535:0.132216354033874
- 实验室_1:0:0
测试 2
- 实验室_10:0:0
- XYZ_1.07024816003116:1.12601992701628:1.22604427713313
- RGB _ 27:27:27:255
- XYZ_1.04175693531671:1.09600940064882:1.19355423730657
- 实验室_10:0:0
测试 3
- 实验室_100:0:0
- XYZ _ 95.047:100:108.883
- RGB _ 255:255:255:255
- XYZ_95.05:100:108.9
- 实验室_100:0:0
测试 4
- 实验室_11:0:0
- XYZ_1.19854884694432:1.26100649883144:1.37302170612264
- RGB _ 29:29:29:255
- XYZ_1.16783071832485:1.22864883569159:1.33799858206814
- 实验室_11:0:0
如上所示,有一个微小的变化,如果不四舍五入,会导致不完美的转换。
课程
转换器
在我将其标记为已解决之前,需要进一步测试。
更新5:到目前为止还没有任何问题......当只发布问题时,我不知道如何将其标记为已回答。完整的免费代码和更多可以在这里找到。
image - 在哪里可以找到包含大量高分辨率 CIE L*a*b* 图像的数据库?
我正在寻找一个包含大量高分辨率 CIE L a b* 图像的数据库。你知道我在哪里可以找到它吗?我只找到了 RGB 图像。
opencv - 我无法将 RGB 图像保存为 Lab 图像
我正在尝试读取 RGB 8 位图像,将其转换为 Lab 并保存。结果总是被解释为 RGB 图像,而且非常奇怪(饱和)。
我尝试不规范化值或使用 RGB2Lab 或将图像转换为 32FC,但没有任何效果。
normalizeLabValues 是一个用于解决 8 位图像转换为 Lab 问题的函数:
我想获得一个 Lab 图像,但如果我尝试用 Photoshop 打开结果,它是 RGB 且高度饱和的。
python - 如何在 python 中调整 CIE L*a*b* 图像中的颜色曲线?
在 Photoshop 中,可以在 CIE L a b* 颜色空间中调整 L、a 和 b 的颜色曲线。我正在尝试使用 python 中的伽马校正执行类似的图像增强过程。
但是,这只会在一个方向上调整曲线,朝向左上角或右下角。我可以在 python 中执行任何转换来调整曲线吗?
我已经应用了伽玛校正技术,但这会使颜色偏斜太多。
我已经尝试了以下代码进行伽马校正