我已经尝试了几天来进行可视化。我正在生成衍射图像,并希望根据光的波长对其进行着色。
最简单的方法是使用HSV空间,其中H随波长变化,而S和V设置为1.0。
然而,我找不到在HSV空间中混合不同颜色的公式/算法/方法。
是否有HSV混合的公式或其他易懂的方法?
最简单的方法是使用HSV空间,其中H随波长变化,而S和V设置为1.0。
然而,我找不到在HSV空间中混合不同颜色的公式/算法/方法。
是否有HSV混合的公式或其他易懂的方法?
说实话,我会将RGB转换为HSV,然后求出三个分量的平均值再转回RGB。
这并不是最高效的方法,但你可能已经有了或需要RGB<->HSV代码,而RGB计算很可能更简单。
《计算机图形学:原理与实践》(Foley等人)中的第13.3.7节“在颜色空间中插值”中说道:
“当两幅图像混合时[...]颜色可能相差很远,这时候加法模型,例如RGB,是适用的。另一方面,如果目标是在两个固定色调(或饱和度)之间进行插值,并保持所有插值颜色的固定色调(或饱和度),那么HSV或HLS更为合适。但请注意,HSV或HSL中的固定饱和度插值不被观察者视为具有固定饱和度[...]”
因此,他们同意@andrewmu的建议,这似乎是一般情况下最好的建议。