RGB颜色模型
RGB颜色模型也就是我们最常用的三原色,红绿蓝。RGB颜色模型在混色时属于加法混色,RGB中每种颜色数值越高,色彩越明亮。RBG为(0,0,0)时为黑色,RGB为(255,255,255)时为白色。计算机在处理颜色信息时一般都采用RGB颜色模型,可以很精确地表示某种颜色。
HSI彩色模型
RGB模型的彩色系统对于硬件实现很理想,且与人眼强烈感知红、绿、蓝三原色的事实能很好的匹配。遗憾的是RGB模型和其它类似的彩色模型不能很好的适应实际上人解释的颜色(1)。人观察一个彩色物体时,我们用其色调、饱和度和亮度来描述它,这就是HSI彩色模型。
色调(H)
描述一种纯色(纯黄,纯红或纯橙色)的颜色属性。当我们说一个物体为红色,黄色时,指的是其色调。
饱和度(S)
指颜色的相对纯净度或一种颜色混合白光的数量,它指的是一种纯色被白光稀释的程度的度量。纯谱色是全饱和的。饱和度与所加白光的数量成反比。。简单来说,当颜色越偏向某个值,即越偏离灰度,饱和度越大;当颜色越偏向灰度,饱和度越小。
下面是百度百科关于饱和度的一段定义:
饱和度是指色彩的鲜艳程度,也称色彩的纯度。饱和度取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。纯的颜色都是高度饱和的,如鲜红,鲜绿。混杂上白色,灰色或其他色调的颜色,是不饱和的颜色,如绛紫,粉红,黄褐等。完全不饱和的颜色根本没有色调,如黑白之间的各种灰色
亮度(I)
实际上它是不可度量的。它体现了无色的强度概念,并且是描述彩色感觉的关键因子之一。亮度之所以不可以度量,也是因为人眼的感光是一个主观概念,在HSI模型中,亮度值I = (R + G + B) / 3。这样的理由很好理解,因为在RGB监视器上,彩色是由三种颜色强度的电子灯混合产生的,我们把每个电子灯想象成一个火把,那么火把的亮度就由总的火把数决定,RGB是在各个分量上的值,所以统一到一齐之后可以使用其加权平均来描述亮度。
对比度
指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小。一般来说对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。反应到图像编辑上,调整对比度就是在保证平均亮度不变的情况下,扩大或缩小亮的点和暗的点的差异。既然是要保证平均亮度不变,所以对每个点的调整比例必须作用在该值和平均亮度的差值之上,这样才能够保证计算后的平均亮度不变,故有调整公式:
Out = Average + (In – Average) * ( 1 + percent)
其中In表示原始像素点亮度,Average表示整张图片的平均亮度,Out表示调整后的亮度,而percent即调整范围[-1,1]。 但是实际处理中,并没有太多的必要去计算一张图的平均亮度:一来耗时间,二来在平均亮度上的精确度并不会给图像的处理带来太多的好处—-一般就假设一张图的平均亮度为128,即一半亮度,而一张正常拍照拍出来的图平均亮度应该是在[100,150]。在肉眼看来两者基本没有任何区别,而如果真实地去计算平均亮度还会带来很大的计算量。
https://blog.csdn.net/full_speed_turbo/article/details/54581055
灰度
所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。在RGB彩色模型中,灰度色的R=G=B。将RGB彩色图像转为灰度图,是通过计算每一个RGB像素的等效灰度或者亮度值Y来实现的。转化的一个原则是——应该保证最终的灰色图像和最初的彩色图像主观上有相同的亮度。在最简单的情况下,Y可以取RGB三分量的加权平均值。
Y = Avg(R, G, B) = (R + G + B) / 3;
实际上,由于红色和黄色看上去比蓝色亮,这就导致转化后的灰度图像的红黄区域比较暗,而蓝色区域比较亮。因此可以使用颜色分量的加权和来计算等效的亮度值。
Y = Lum(R, G, B) = wr * R + wg * G + wb * B;
常用的权值来自模拟彩色信号编码
wr = 0.299 wg = 0.587 wb = 0.114
使用wr = 0.3 wg = 0.59 wb = 0.11值进行彩色转化效果如下: