Насыщенность цвета изображения
Я пытался найти функциональную форму для насыщения, но ничего не нашел. Это не может быть так сложно, но все мои догадки выглядят не совсем правильно (направление к ненасыщенности кажется более легким).
У меня есть данные пикселей изображения в формате 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);
1 ответ
Решение
Преобразуйте пиксель RGB в HLS, масштабируйте S по sat
ввод, а затем преобразовать обратно в 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, вот они.