2011-12-07 135 views
3

我试图找到一个饱和的功能表单,但没有找到任何东西。它不会那么难,但我所有的猜测都看起来不太正确(去饱和的方向似乎更容易)。图像颜色饱和度

我有RGB格式的图像的像素数据。最终的图像也应该是RGB格式。那么,如何定义这些功能:

r_n = saturation_r(r,g,b,sat); 
g_n = saturation_g(r,g,b,sat); 
b_n = saturation_b(r,g,b,sat); 
+0

'sat'参数意味着什么?你是否将RGB颜色作为输入,然后输出相同的颜色并将饱和度更改为“sat”?您是否在寻找将RGB转换为HSL的功能,或者您已经知道如何做到这一点?有关于HSV和HSL转换的很好的维基百科条目。 –

回答

2

转换RGB像素到HLS,通过你的sat输入缩放S,再转换回RGB。伪代码中,假设所有颜色分量的范围是0.0到1.0:

rgb_to_hls(r, g, b, h, l, s); 
s = s * sat 
hls_to_rgb(h, l, s, r, g, b); 
return r, g, b 

如果需要RGB/HLS转换函数,here they are

+0

如果您找不到HLS的转换,您还可以使用HSV或HSI –

相关问题