HCL颜色为RGB并向后

我需要一种算法,将HCL颜色转换为RGB并将向后RGB转换为HCL,同时要记住这些颜色空间具有不同的色域(我需要将HCL颜色限制为可以在RGB颜色空间中再现的颜色)。这是什么算法(该算法打算在仅支持RGB颜色的Wolfram

Mathematica 中实现)?我没有使用色彩空间的经验。

PS关于HCL颜色的一些文章:

M.Sarifuddin(2005)。一种新的感知上统一的色彩空间以及相关的色彩相似性度量,可用于基于内容的图像和视频检索。

Zeileis,Hornik和Murrell(2009):逃避RGBland:为统计图形选择颜色//计算统计和数据分析第53卷,第9期,2009年7月1日,第3259-3270页

正如乔纳森·詹森(JonathanJansson)所指出的那样,在以上两篇文章中,不同的色彩空间以名称“ HCL”描述:“第二篇文章使用L C h(uv)与L u v 相同,但以Polar描述坐标,其中h(uv)是u 和v 坐标的角度,而C 是该矢量的大小”。因此,实际上我需要一种将RGB转换为L u v

*并向后转换的算法。

回答:

我也只是在讲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。

所需的所有源代码

关于如何转换为XYZ的好文章

不错的在线转换器

但是我无法回答您有关如何将颜色限制到sRGB空间的问题。转换后,您可以丢弃超出0到1范围的RGB颜色。仅夹紧颜色会产生非常奇怪的结果。尝试转到转换器,输入颜色RGB

0 0 255,转换为L * a * b (类似于L * u * v ),然后将L *增加为70,然后将其转换回去,结果肯定是不再是蓝色。

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

以上是 HCL颜色为RGB并向后 的全部内容, 来源链接: utcz.com/qa/429080.html

回到顶部