最近在做一个RGB补光灯的小玩意儿,项目上有一个OLED屏幕显示当前灯光的HSI参数,对于HSI我是完全陌生的,由于时间紧任务重,我也没想过去百度一下HSI是个啥,直接拿着样品测试了一组参数,自己去演算了一个HSI转RGB的函数,虽然花了不少时间,还存在一点误差,误差主要是范围的问题,RGB的范围应该是0-255,我演算的时候为了方便计算将范围设置为0-100,最终结果算是好的吧。
但是在RGB转HSI的时候,已经没有时间去推算了,这才想起来去请教身边的一位大佬,这才知道HSI颜色模型是个啥,还给我普及了这个互转算法,拿来给我优化使用,在这记录一下优化后C语言写法,随便参考一下百科对HSI的介绍,加深理解。
HSI〔Hue-Saturation-Intensity(Lightness),HSI或HSL〕颜色模型用H、S、I三参数描述颜色特性,其中H定义颜色的频率,称为色调;S表示颜色的深浅程度,称为饱和度;I表示强度或亮度。
HSI 颜色模型中的H 分量是确定颜色的主要因素,当它发生变化时色调值也将变化;S 分量越大(接近1),颜色越纯,S 分量越小(接近0),颜色越接近纯灰色