效果图: 原图----------- rgb->hsi ----------- 加入噪声后hsi->rgb 实现代码:rgb图片到hsi图片并加入噪声的相互转化
1. 彩色图像的颜色空间
对于单色(灰度)图像而言,其每个像素的亮度用一个数值表示即可;而彩色图像的每个像素包含了颜色信息,每个像素的光强度和色度须用3个数值描述。彩色图像的颜色空间也称为颜色模型或彩色系统,用于对颜色进行描述和说明。常用的颜色空间包括RGB颜色空间和HSI颜色空间。
1.1 RGB颜色空间
白光通过玻璃棱镜会出现紫色到红色的连续彩色谱。光由多种色谱构成,在颜色空间中理论上可以选取多种颜色。人眼中有大量对红、绿、蓝3种颜色敏感的锥状体细胞,因此,我们常用红色(Red,R)、绿色(Green,G)、蓝色(Blue,B)组成的RGB颜色空间表达彩色图像的信息。这3种原色的混合色基本覆盖了人类的色彩空间,从而满足了人类的色彩体验。面向硬件设备的RGB颜色空间主要用于电视机、算机等电子系统感知、表示和显示图像。例如,电视机通常使用红、绿、蓝三原色混合的加色,每种原色都会刺激眼睛的3种颜色受体中的一种。 RGB颜色空间基于三维直角坐标系,包括R、G、B3个原始光谱分量,如图2-1所示。RGB颜色空间中的R、G、B3个分量的值分别描述了红色、绿色、蓝色的亮度值。为了方便描述,我们将3个分量都进行归一化处理,使得三元组中的每个数值均表示红色、绿色、蓝色三者的比例。在图2-1中,原点(0,0,0)代表黑色,点(1,1,1)代表白色,点(1,0,0)代表红色(R),点(0,1,0)代表绿色(G),点(0,0,1)代表蓝色(B)。
1.2. HSI颜色空间
当描述物体颜色时,我们也常用HSI颜色空间,旨在接近人类视觉感知颜色的方式。HSI颜色空间包含3个分量,分别是色调(Hue,H)、饱和度(Saturation,S)和亮度(Intensity,I),如图2-3所示。HSI颜色空间圆柱体的横截面称为色环,色环更加清晰地展示了色调和饱和度两个参数,如图2-4所示。色调H由角度表示,其反映了该颜色最接近哪个光谱波长。在色环中,0°表示红色光谱,120°表示绿色光谱,240°表示蓝色光谱。饱和度S由色环的圆心到颜色点的半径表示,距离越长表示饱和度越高,颜色越鲜明。在图2-3中,亮度I由颜色点到圆柱底部的距离表示。在HSI颜色空间圆柱体中,圆柱体底部圆心表示黑色,顶部圆心表示白色。 这个是HSI空间专业的定义,大概基本没咋看懂,其实通俗来讲就是: 色调H(Hue): 与光波的波长有关,它表示人的感官对不同颜色的感受,如红色、绿色、蓝色等,它也可表示一定范围的颜色,如暖色、冷色等。 饱和度S(Saturation): 表示颜色的纯度,纯光谱色是完全饱和的,加入白光会稀释饱和度。饱和度越大,颜色看起来就会越鲜艳,反之亦然。 亮度I(Intensity): 对应成像亮度和图像灰度,是颜色的明亮程度。
2. RGB颜色空间与HSI颜色空间之间的转换
2.1 RGB颜色空间转换到HSI颜色空间
给定一幅RGB颜色空间格式的图像,将图像的R分量、G分量、B分量分别进行归一化处理。在RGB颜色空间中,位于空间位置(x,y)的像素点的颜色用该像素点的R分量R(x,y)、G分量G(x,y)和B分量B(x,y)3个数值表示。在HSI颜色空间中,位于空间位置(x,y)的像素点的H分量H(x,y)、S分量S(x,y)、I分量I(x,y)可分别由式(2-1)~式(2-3)计算得到。
2.2 HSI颜色空间转换到RGB颜色空间
HSI颜色空间中,假设图像的S分量和I分量的值在[0,1]区间内,位于空间位置(x,y)的像素点的颜色用该像素点的H分量H(x,y)、S分量S(x,y)、I分量I(x,y)3个数值表示,则在RGB颜色空间中,位于空间位置(x,y)的像素点的R分量R(x,y)、G分量G(x,y)和B分量B(x,y)可分别由以下公式计算得到。 最后放上之前猫猫图转换的代码链接: rgb图片到hsi图片并加入噪声的相互转化
|