gpt4 book ai didi

algorithm - HCL 颜色到 RGB 和反向

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:30 28 4
gpt4 key购买 nike

我需要一个算法来将 HCL 颜色转换为 RGB 并将 RGB 反向转换为 HCL,同时记住这些颜色空间具有不同的色域(我需要将 HCL 颜色限制为可以在 RGB 颜色空间中再现的颜色)。这个算法是什么(该算法旨在在原生仅支持 RGB 颜色的 Wolfram Mathematica 中实现)?我没有使用色彩空间的经验。

附言一些关于HCL颜色的文章:

M. Sarifuddin (2005). A new perceptually uniform color space with associated color similarity measure for content–based image and video retrieval.

Zeileis, Hornik and Murrell (2009): Escaping RGBland: Selecting Colors for Statistical Graphics // Computational Statistics & Data Analysis Volume 53, Issue 9, 1 July 2009, Pages 3259-3270

更新:正如 Jonathan Jansson 指出的那样, 在上面两篇文章中不同的颜色空间被描述为名称“HCL”:“第二篇文章使用了 LCh(uv) 与 Lu 相同v* 但在极坐标中描述,其中 h(uv) 是 u* 和 v* 坐标的角度,C* 是该矢量的大小”。所以实际上我需要一种算法来将 RGB 转换为 Luv* 并向后转换。

最佳答案

我也刚刚学习了 HCL 色彩空间。不过,您问题中两篇文章中使用的色彩空间似乎是不同的色彩空间。

第二篇文章使用 L*C*h(uv),它与 ​​L*u*v* 相同,但在极坐标中描述,其中 h(uv) 是 u* 和 v* 坐标的角度,C*是该向量的大小。

第一篇文章中的 LCH 颜色空间似乎描述了另一种颜色空间,而不是使用更多算法转换的颜色空间。这里还有第一篇论文的另一个版本:http://isjd.pdii.lipi.go.id/admin/jurnal/14209102121.pdf

如果您打算使用 CIE L*u*v*,您需要先将 sRGB 转换为 CIE XYZ,然后再转换为 CIE L*u*v*。在大多数情况下,RGB 实际上指的是 sRGB,因此无需从 RGB 转换为 sRGB。

All source code needed

Good article about how conversion to XYZ works

Nice online converter

但我无法回答您有关如何将颜色限制在 sRGB 空间的问题。您可以在转换后丢弃 0 到 1 范围之外的 RGB 颜色。仅仅限制颜色会产生非常奇怪的结果。尝试转到转换器并输入颜色 RGB 0 0 255 并转换为 L*a*b*(类似于 L*u*v*),然后将 L* 增加到 70 并将其转换回来,结果肯定是不再是蓝色了。

编辑:更正了 URL编辑:将另一个答案合并到这个答案中

关于algorithm - HCL 颜色到 RGB 和反向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530627/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com