转自:https://www.cnblogs.com/justkong/p/6570914.htmlhtml
1、概述优化
颜色一般用三个独立的属性来描述,三个独立变量综合做用,天然就构成一个空间坐标,这就是颜色空间。但被描述的颜色对象自己是客观的,不一样颜色空间只是从不一样的角度去衡量同一个对象。颜色空间按照基本机构能够分为两大类:基色颜色空间和色、亮分离颜色空间。前者典型的是RGB,后者包括YUV和HSV等等。编码
2、RGB颜色空间视频
一、计算机色彩显示器和彩色电视机显示色彩的原理同样,都是采用R、G、B相加混色的原理,经过发射出三种不一样强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示。htm
二、在RGB颜色空间中,任意色光F均可以用R、G、B三色不一样份量的相加混合而成:F=r[R]+r[G]+r[B]。RGB色彩空间还能够用一个三维的立方体来描述。当三基色份量都为0(最弱)时混合为黑色光;当三基色都为k(最大,值由存储空间决定)时混合为白色光。对象
三、RGB色彩空间根据每一个份量在计算机中占用的存储字节数分为以下几种类型:blog
(1)RGB555io
RGB555是一种16位的RGB格式,各份量都用5位表示,剩下的一位不用。变量
高字节 -> 低字节原理
XRRRRRGGGGGBBBBB
(2)RGB565
RGB565也是一种16位的RGB格式,可是R占用5位,G占用6位,B占用5位。
(3)RGB24
RGB24是一种24位的RGB格式,各份量占用8位,取值范围为0-255。
(4)RGB32
RGB24是一种32位的RGB格式,各份量占用8位,剩下的8位做Alpha通道或者不用。
四、RGB色彩空间采用物理三基色表示,于是物理意义很清楚,适合彩色显象管工做。然而这一体制并不适应人的视觉特色。于是,产生了其它不一样的色彩空间表示法。
3、YUV颜色空间
一、YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法。在现代彩色电视系统中,一般采用三管彩色摄像机或彩色CCD摄影机进行取像,而后把取得的彩色图像信号经分色、分别放大校订后获得RGB,再通过矩阵变换电路获得亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和两个色差总共三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。若是只有Y信号份量而没有U、V信号份量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
二、YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优势在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),做用是描述影像色彩及饱和度,用于指定像素的颜色。“亮度”是透过RGB输入信号来创建的,方法是将RGB信号的特定部分叠加到一块儿。“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差别。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之同的差别。
三、YUV和RGB互相转换的公式以下(RGB取值范围均为0-255)︰
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
4、HSV颜色空间
一、HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、明度(Value),又称HSB(B即Brightness)。色相是色彩的基本属性,就是日常说的颜色的名称,如红色、黄色等。饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。明度(V),取0-max(计算机中HSV取值范围和存储的长度有关)。HSV颜色空间能够用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,表明黑色。圆锥的顶面中心处V=max,S=0,H无定义,表明白色。
二、RGB颜色空间中,三种颜色份量的取值与所生成的颜色之间的联系并不直观。而HSV颜色空间,更相似于人类感受颜色的方式,封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?”
三、RGB和HSV转换
(1)从RGB到HSV
设max等于r、g和b中的最大者,min为最小者。对应的HSV空间中的(h,s,v)值为:
h在0到360°之间,s在0到100%之间,v在0到max之间。
(2)从HSV到RGB