大家好,我是讯享网,大家多多关注。
一.概述
本文将详细介绍RGB颜色空与RGB三种颜色的色调、饱和度、亮度的关系,最后介绍HSV颜色空!
一.RGB颜色空间1. 起源
RGB三色起源于1809年托马斯·杨的视觉三色理论,后于1824年提出亥姆霍兹的三色理论:视网膜中有三种视锥细胞,分别含有对红、绿、蓝光敏感的三种视色素。当一定波长的光作用于视网膜时,三个视锥细胞按一定比例受到不同程度的兴奋,当这些信息传递到大脑中枢时,就产生了某一个。
显示器发明后,从黑白显示到彩色显示,人们开始使用不同颜色的荧光粉(CRT、等离子显示器),或彩色滤光片(LCD),或不同颜色的半导体发光器件(有机发光二极管、LED大型全彩显示板)来构成色彩。无一例外地选择了红、绿、蓝三种发光体作为基本发光单元。通过控制它们的发光强度,人眼能感受到的大部分自然色被组合在一起。
当计算机显示彩色图像时,也不例外。在最终的显示中,需要控制一个像素中的红色、绿色和蓝色的值来确定该像素的颜色。计算机无法模拟从最暗到最亮连续存储的数值,只能用数字形式表示。所以根据人眼的敏感程度,用三个字节(3*8位)分别表示一个像素中红、绿、蓝的发光强度值,也就是常见的RGB格式。我们可以打开画板,在自定义颜色工具箱中输入r、G、B、G、B值,得到不同的颜色。
2. 概述
RGB 空是以R(红:红)、G(绿:绿)、B(蓝:蓝)三种基本色为基础,不同程度叠加,产生丰富宽广的色彩,所以俗称三原色模式。
RGB空是我们生活中最常用的彩色显示模式,电视机和电脑的CRT显示器大多采用这种模式。自然界的任何颜色都可以是红、绿、蓝的混合。人们在现实生活中看到的大多数颜色都是混合色。
肉眼可以识别世界上所有的颜色,RGB几乎可以组合成世界上所有的颜色!
二. RGB颜色范围
RGB每个元素占用计算机内存1字节,1字节等于8位,所以RGB每个元素的取值范围是:0~256(2的8次方)(我个人认为是因为bit,因为一位可以代表两种状态)。
那么三种颜色的组合就是256x256x256=16777216(一千六百七十七万七千二百一十六)种颜色。这么多颜色几乎可以涵盖世界上所有的颜色!所以电视机,电脑屏幕,任何显示仪器都会用这个RGB色空!
1. 组合方法
组合的方法是以补光的形式组合任意颜色。
例如:
红色+绿色=黄色
如图所示:
红色+绿色+蓝色=白色
如图所示:
还可以调整RGB某个元素的颜色值,实现不同的颜色组合!
2. RGBA
RGBA(Alpha),是用来描述三原色的透明度的!
例如:
3. RGB文件存储类型
RGB color 空根据电脑中各部件占用的存储字节数分为以下几种:
RGB555
RGB555是一种16位RGB格式。每个分量由5位表示,剩余的位不使用。
高字节–>:低字节(根据内存大小)
Xrrrrggggbbbb (x表示否)
RGB565
RGB565也是16位RGB格式,但是R占5位,G占6位,B占5位。
RGB24
RGB24是24位RGB格式,每个分量占用8位,取值范围为0-255。
RGB32
RGB32是32位RGB格式,每个分量占用8位,剩下的8位作为Alpha通道与否。
RGB222
RGB222是一种8-22位RGB格式。每个分量占用2位,剩下的2位不用!
请注意,这种格式通常用于灰度图像。现在的CRT(阴极射线管)是彩色RGB型号的CRT,所以在显示灰度图像时,会发射RGB颜色模板(荧光粉)来显示颜色。也就是说每个像素上有三种RGB荧光粉,所以在显示灰度图像,也就是单通道图像的时候,灰度颜色是通过混合RGB来实现的!
还有RGB232、RGB332、RGB233、…
早期的CRT由于工业水平有限,只能显示黑白照片。注意不一定是黑白的,也可能是单色的,比如红色、暗红、紫色、深紫色。它只能显示一种颜色!
4. 单通道与多通道
单通道:
俗称灰度图,每个像素只能有一个值来表示颜色。它的像素值在0到255之间,0是黑色,255是白色,中间值是一些不同层次的灰度。可以说灰度是黑白之间的过渡色!
注意,这个值不是RGB中的任何元素。显示设备通过CRT(彩色阴极射线管)直接显示单通道中像素值的黑白图像。该值越高,黑色图像越亮。一般灰度值不会超过125!
多通道:
多通道是RGB三原色,每个像素有三个字节来表示(RGB),最大取值范围是0-255,可以组合成几千万种颜色。
图像处理优势比较:
图像处理经常用到单通道,因为单通道只有一个像素(一个字节),所以处理速度相对于多通道三个字节来说特别快!
而且单通道可以以灰度形式显示图像,不会影响图像识别和特征提取!
很多通道都是以原图的形式显示图像,所以可以提取很多特征,识别率高!
例如:
多通道也可以组合成一个灰度图像。如上所述,红色+绿色+蓝色=白色。注意这里补充一点,只有三种色调相等才会合成白色!
例如:
如果想实现灰度,可以通过降低RGB三色调来实现!
例如:
但当一方的价值观不同时,就会产生其他颜色。
所以三个通道要想合成黑白(灰度),三原色必须有相同的值。
也就是说,灰度图像不一定是单通道,但单通道一定是灰度图像!
三. 色调、饱和度、亮度1. 色调(色相):
在一张彩色图片中,色调决定了彩色图片更偏向哪一边!
例如:
我们换个调子吧。
降低色调,颜色更偏向红色。
当我们把色调调高一点时,颜色会变得更绿。
颜色调高一点,颜色更偏向蓝色。
2. 饱和度
饱和度决定了颜色空之间的颜色分量。饱和度越高颜色越深,饱和度越低颜色越浅!
如图所示:
当饱和度为55时,可以发现这个颜色空之间可以显示的颜色分量很低。
当我把饱和度调高一点,可以看到颜色分量明显变暗了!
可以和上图形成鲜明对比。
所以饱和度在color 空中起着控制RGB组合色色深的作用。
3. 亮度
确定颜色在亮度范围空内的亮度!
如图,亮度设置越高,你会发现彩色显示越亮。
你会发现颜色会变得很暗!
所以亮度在颜色空中起着控制RGB组合颜色亮度的作用。
下面是我在知乎上看到的一个回答,非常适合描述色相(色相)、饱和度、明度和颜色的关系空:
明度为0的时候,只有一个点,只能是黑色。没有光,啥都看不见。
后面我们要把明度做成一个不为零的值,这样才能说的通。基于这种情况,
纯度为0的时候,只有一条线,只能是黑白的。没有对比度,就没有彩色。纯度也不为0了,才可能出现彩色,至于到底是哪一种颜色,就要看色度了。
不知道大家有没有注意到,无论你怎么修改色相、饱和度、亮度,RGB三色值都会随之改变。其实色相、饱和度、明度都是通过特定的算法对RGB三原色进行计算和修改后达到的色彩控制效果!
本专栏属于镜像理论知识,不提供任何实用代码!
四. HSV颜色空间 (部分地方是参考他人博客的文章,然后根据自己的理解写出来的!)1. 起源
HSV(Hue,Saturation,Value)是A. R. Smith在1978年根据颜色的直观特性创造的一种颜色空,也称为Hexcone模型。
这个模型中颜色的参数是色调(h)、饱和度(s)和明度(v)。
2. HSV颜色模型介绍2.1色调H(Hue)
用角度来衡量,取值范围是0 ~ 360,从红色逆时针数,红色是0,绿色是120,蓝色是240。它们的补色是:60代表黄色,180代表青色,300代表洋红色。当角度达到360°时,会变成红色,角度会回到0°,所以总共是360°。每次换1,色相都会有轻微的变化!如果是顺时针,这个转变过程会逐渐由红变绿,由绿变蓝,由蓝变红!逆时针则相反!
2.2 饱和度 S(Saturation)
饱和度表示颜色与光谱颜色的接近程度。一种颜色可以看作是某种光谱颜色与白色混合的结果。光谱色比例越大,颜色接近光谱色的程度越高,颜色的饱和度也越高。高饱和度,颜色深而亮。光谱颜色的白光成分为0,饱和度达到最高。通常取值范围为0% ~ 100%。值越大,颜色越饱和。
2.3 明度V(Value)
亮度表示颜色的亮度。对于光源颜色,亮度值与发光体的亮度有关;通常值的范围是0%(黑色)到100%(白色)。
2.4 模型分析:
h参数表示颜色信息,即光谱颜色的位置。此参数以角度量表示,红、绿、蓝相隔120度。HSV中每种颜色的补色相差180度。也就是说,当两种颜色互补时,最大为180。
例如:
在HSV模型中,红色和绿色的互补色是角度为60°的黄色。
绿色和蓝色的补光是青色,它的角度也是60°。
红色的补光是角度为60°的品红色。
然后按照反方向,从绿色到红色的补光是60。
从蓝色到绿色的补光也是60。
红色到蓝色的补光也是60。
所以从上面的知识我们可以知道,红色到绿色的补光是60,绿色到红色的补光是60,那么每种颜色的色差就是:60+60 = 180。
补光色差在HSV色彩模型中是这样计算的!
纯度s是一个从0到1的比例值,表示为所选颜色的纯度与该颜色的最大纯度之比。当S=0时,只有灰度。
v代表颜色的亮度,范围从0到1。有一点要注意:它和光照强度没有直接关系。
2.5 HSV颜色分析
HSV对用户来说是一个直观的颜色模型。我们可以从一个纯色开始,也就是指定色角h,让V=S=1。然后再加上黑白就可以得到我们需要的颜色了。增加黑色可以减少V,保持S不变,增加白色可以减少S,保持V不变。比如要得到深蓝色,V=0.4 S=1 H=240度。要得到浅蓝色,V=1 S=0.4 H=240度。
如图所示:
一般来说,人眼可以分辨128种不同的颜色,130种色彩饱和度,23种明暗度。如果用16Bit表示HSV,可以用7 bits存储H,4 bits存储S,5 bits存储V,即745或655就可以满足我们的需求。
由于HSV是一种直观的颜色模型,它被广泛应用于许多图像编辑工具,如Photoshop(在Photoshop中称为HSB)等。,但这也决定了它不适合在光照模型中使用,很多混光操作和光强操作都不是HSV可以直接实现的!
RGB color 空更面向行业,HSV更面向用户。大部分做图像识别的人都会用HSV color 空因为HSV color 空表达起来更直观!
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/43221.html