RGB和RYB颜色空间之间的转换

Ben*_*Ben 10 math rgb interpolation newtons-method

我目前正在尝试在RGB(红色,绿色,蓝色)色彩空间和RYB(红色,黄色,蓝色)色彩空间之间转换颜色并再次返回.

基于下面的文章中的细节,我能够使用三线性插值从RYB转换为RGB - 其中参数权重(s,t,u)是RYB颜色,并且立方体的顶点是RGB空间中的3d点.

为可视化绘制灵感的颜色混合和合成 - Gossett和Chen - 第2.1节 - 实现细节

我的困难在于扭转转换过程.

第二篇论文引用了该技术的使用,并且还表明使用牛顿法实现了逆转换.但没有提供进一步的细节.这可能表明在求解三线性插值方程时找到了根.

从注重色彩对比看绘画风格向摄影形象的转换 - 张晓燕,Zhang Xiaoyan 康斯特布尔,M.; 莹鹤;

在我用方程扩展这个问题之前,是否有人用Java/C/C++/C#等语言看到或解决了这个问题?

我目前的方法是采用三线性插值的正演方程(RYB到RGB),展开和重新排列,为3个未知数(参数权重:s,t和u)提供3个联立方程,然后找出如何使用Newton-Raphson方法.我是否以正确的方式解决这个问题?

我将很快编辑这个问题以提供方程式.

非常感谢你的时间,

Ben*_*Ben 5

我终于解决了。

进行三线性插值的方程式: Wikipedia

将第一个方程式代入最后一个方程式,展开并收集以下系数:Xd,Yd,Zd,XdYd,XdZd,YdZd,ZdYdZd和常数。

然后找到关于Xd,Yd和Zd的三个维度的方程的偏微分。使用这些新方程式填充(3x3)Jacobian矩阵,然后使用牛顿方法在软件中求解。

牛顿-拉夫森法