在HSV空间中添加/混合颜色
adding/mixing colors in HSV Space
这几天我一直在试着把它可视化。我正在生成一个衍射图像,并想根据光的波长给它上色。
获得正确颜色的最简单方法是使用HSV空间,其中H随波长变化,S,V设为1.0
唉,我找不到一个公式/算法/方法来混合不同的颜色在HSV空间。
是否有一个混合HSV的公式或其他可理解的方法?
老实说,我会转换RGB,平均组件并转换回HSV。
这不是最有效的方法,但你可能会有或需要RGB<->HSV代码,RGB计算可能会简单得多。
Foley等人的《计算机图形学:原理与实践》的标准参考之一在13.3.7节"色彩空间内插值"中有这样的说法:
"当两个图像混合在一起时[…]颜色可能相当遥远,并且添加模型,例如RGB,是合适的。另一方面,如果目标是在两种固定色调(或饱和度)的颜色之间进行插值,并保持所有插值颜色的固定色调(或饱和度),那么HSV或HLS是优选的。但请注意,HSV或HSL中的固定饱和度插值不被观看者视为具有固定饱和度[…]"
所以他们同意@andrewmu的建议,这似乎是最好的建议。
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 混合组合和继承的C++问题
- 在混合代码库中将C转换为C++时出现许多包含错误
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 如何在24位SDL_Surface上设置像素的颜色
- D3D11-将混合权重和索引传递到顶点着色器
- 如何从SDL_Surface获取特定像素的颜色
- 列表视图更改选择颜色
- GtkTreeView 交替行颜色
- C++分数混合比较运算符错误
- dx11 渲染到纹理仅显示透明颜色
- 使用 OpenGL 4.5 更改所选顶点的颜色
- 为什么我的 LEGACY OPENGL 颜色反转了?
- 是否可以混合使用SFINAE和模板专业化?
- 如何在 Python C++ 混合库中调试非确定性分段错误?
- 混合添加颜色,而不仅仅是替换
- 在HSV空间中添加/混合颜色
- 混合两个粒子系统的颜色
- 如何混合纹理颜色与简单的乘法到它下面的颜色
- OpenGL,将透明纹理与对象颜色混合