【发布时间】:2011-06-24 03:30:39
【问题描述】:
我目前正在尝试在 RGB(红、绿、蓝)颜色空间和 RYB(红、黄、蓝)颜色空间之间转换颜色,然后再转换回来。
根据以下论文中的详细信息,我可以使用三线性插值将 RYB 转换为 RGB - 其中参数权重 (s, t, u) 是 RYB 颜色,立方体的顶点是 3d 点在 RGB 空间中。
Paint Inspired Color Mixing and Compositing for Visualisation - Gossett and Chen - 第 2.1 节 - 实现细节
我的困难在于扭转转换过程。
第二篇论文提到了这种技术的使用,并指出反向转换是使用牛顿法实现的。但没有提供更多细节。这可能表明在求解三线性插值方程时求根。
在我用方程式扩展这个问题之前,有没有人用 Java/C/C++/C# 等语言看到或解决过这个问题?
我目前的方法是采用三线性插值的正向方程(RYB 到 RGB),扩展和重新排列以提供 3 个用于 3 个未知数(参数权重:s、t 和 u)的联立方程,然后计算出如何使用 Newton-Raphson 方法求根。我是否以正确的方式处理这件事?
【问题讨论】:
-
你试过 mathoverflow.com 了吗?
-
@sje397:我查看了 mathoverflow.com,但看不到任何关于三线性插值或其逆过程的信息。 - 刚刚意识到你也可以尝试在那里提问。
-
您为 Gossett 和 Chen 链接的论文似乎在插值坐标上有错字。这是论文的更新版本:web.siat.ac.cn/~baoquan/papers/ryb_TR.pdf
-
我在这里的答案中勾勒出了一个(希望是)有效的解决方案:math.stackexchange.com/a/4370750/1020517(部分用代码验证)
标签: math rgb interpolation newtons-method