adding/mixing colors in HSV Space

坚强是说给别人听的谎言 提交于 2020-01-02 02:55:29

问题


I've been trying to get a visualisation going for a few days. I'm generating a diffraction image and want to color it depending on the wavelength of light.
The easiest way to get the right color was by using the HSV space with H varying with the wavelength and S,V set to 1.0
Alas, I can't find a formula/algorithm/way to mix different colors in the HSV space.

Is there a formula for mixing in HSV or maybe another comprehensible way?


回答1:


Honestly, I'd convert the RGB, average the components and convert back to HSV.

It's not the most efficient way, but you'll presumably have or need RGB<->HSV code and the RGB calculation is likely to be much simpler.




回答2:


One of the standard references Computer Graphics: Principles and Practice by Foley et al. has this to say in section 13.3.7 "Interpolating in Color Space":

"When two images are blended [...] the colors may be quite distant, and an additive model, such as RGB, is appropriate. If, on the other hand, the objective is to interpolate between two colors of fixed hue (or saturation) and to maintain the fixed hue (or saturation) for all interpolated colors, then HSV or HLS is preferable. But note that fixed-saturation interpolation in HSV or HSL is not seen as having fixed saturation by the viewer [...]"

So they agree with the suggestion of @andrewmu, which seems like the best suggestion in general.



来源:https://stackoverflow.com/questions/7381366/adding-mixing-colors-in-hsv-space

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!