彩色基础
- 用来描述彩色光源质量的3个基本量是辐射、光强和亮度,辐射是从光源流出的能量的总量,通常用瓦特度量,光强用流明来度量,给出了观察者从光源感知的能量总和的度量,例如远红外范围的光源发出的光,可能有很大的辐射,但是观察者很难感知到,所以光强几乎为0,最后亮度是一个主观描绘子,实际上是不可度量的。
- 人眼中的锥状细胞负责彩色视觉,主要分为3个感知类别,65%的锥状细胞对红光敏感,33%对绿光敏感,2%对蓝光敏感,看到的彩色是对三原色的混合,规定波长蓝色435.8nm,绿色546.1nm,红色700nm,实际混合为彩色的时候不是固定波长
- 光的三原色:红、绿、蓝
- 颜料的三原色:深红色(红色加蓝色)、青色(绿色加蓝色)、黄色(红色加绿色)
- 光的三原色和颜料的三原色互为二次色,二次色表示原色相加
- 彩色电视荧光屏(CRT,阴极射线管)里面每一个彩色点包含一个三色组,使用光的彩色相加性质产生彩色光
- 液晶显示屏LCD和等离子设备也是利用三原色取产生单个彩色像素
- 区别不同颜色特性使用亮度、色调和饱和度,色调和光的主波长相关,当说一个物体是红色或黄色的时候描述的是色调,饱和度指的是颜色混合白光的数量,饱和度和所加白光数量成反比
- 形成任何特殊彩色的红、绿、蓝的数量称为三色值,分别表示为
X
,
Y
,
Z
X,Y,Z
X,Y,Z,一种颜色可由其三色值系数定义:
x = X X + Y + Z y = Y X + Y + Z z = Z X + Y + Z x + y + z = 1 x = \frac{X}{X + Y + Z} \\ y = \frac{Y}{X + Y + Z} \\ z = \frac{Z}{X + Y + Z} \\ x + y + z = 1 x=X+Y+ZXy=X+Y+ZYz=X+Y+ZZx+y+z=1 - CIE色度图:以x(红色),y(绿色)的函数表示颜色的组成,蓝色值 z = 1 − x − y z = 1 - x - y z=1−x−y得到,色度图的边界饱和度最大,为纯色,等能量点表示白光,饱和度为0
彩色模型
RGB彩色模型
- 图像由3个分量图像组成,其中每一幅图像都是一幅8比特的图像,术语全彩色图像通常用来表示一幅24比特的RGB彩色图像,每个像素为 ( R , G , B ) (R,G,B) (R,G,B)三元组,主要面向彩色监视器和彩色视频摄像机
- 24比特可以产生 ( 2 8 ) 3 (2^8)^3 (28)3中颜色,但是这么多种颜色在很多情况下没有必要,使用一个色彩子集,稳定RGB色集合或称为全系统稳定色集合,在互联网应用中,这种色彩子集成为稳定Web色或稳定浏览器色
- 216中颜色为多数系统通用,无论在何时应用,希望大多数人观察到的颜色都一样,这216中颜色由RGB组成,但是每个值只能在 { 0 , 51 , 102 , 153 , 204 , 255 } \{0,51,102,153,204,255\} {0,51,102,153,204,255}中选择,由16进制来表示 { 0 x 00 , 0 x 33 , 0 x 66 , 0 x 99 , 0 x C C , 0 x F F } \{0x00,0x33,0x66,0x99,0xCC,0xFF\} {0x00,0x33,0x66,0x99,0xCC,0xFF}
CMY和CMYK彩色模型
CMY和RGB的转换:
[
C
M
Y
]
=
[
1
1
1
]
−
[
R
G
B
]
\left[ \begin{matrix} C \\ M \\ Y \end{matrix} \right] = \left[ \begin{matrix} 1 \\ 1 \\ 1 \end{matrix} \right] - \left[ \begin{matrix} R \\ G \\ B \end{matrix} \right]
⎣
⎡CMY⎦
⎤=⎣
⎡111⎦
⎤−⎣
⎡RGB⎦
⎤
上式表示的是青色颜料不反射红色
C
=
1
−
R
C = 1 - R
C=1−R,类似的纯深红色不反射绿色,纯黄色不反射蓝色,彩色值均经过了归一化,等量的青色、深红色、黄色颜料可以产生黑色,但是打印时这样组合黑色不纯,所以加入黑色提出CMYK模型
HSI彩色模型
RGB、CMK彩色模型对于硬件实现很理想,但是不能很好的解释人观察到的图像,于是提出HSI(色调、饱和度、强度)模型
- 从RGB图像中分离强度:由 [ 0 , 0 , 0 ] , [ 1 , 1 , 1 ] [0,0,0],[1,1,1] [0,0,0],[1,1,1]连线构成强度轴,任意一个彩色点的强度可用过这点且与强度轴垂直的平面和强度轴的交点确定
- 从RGB图像中分离饱和度:强度轴上的点的饱和度为0,饱和度随着点和强度轴的距离的增加而增加
- 从RGB图像中确定色调,白色和黑色不改变色调,所以以白色点、黑色点和点A确定的平面上的点的色调和A相同
从RGB到HSI的彩色转换
逐像素完成:
H
=
{
θ
B
≤
G
360
−
θ
B
>
G
H = \begin{cases} \theta & B \leq G \\ 360 - \theta & B \gt G \end{cases}
H={θ360−θB≤GB>G
其中:
θ
=
a
r
c
cos
{
1
2
[
(
R
−
G
)
+
(
R
−
B
)
]
[
(
R
−
G
)
2
+
(
R
−
B
)
(
G
−
B
)
]
1
2
}
\theta = arc \cos\left\{\frac{\frac{1}{2}[(R - G) + (R - B)]}{[(R -G)^2 + (R - B)(G - B)]^{\frac12}}\right\}
θ=arccos{[(R−G)2+(R−B)(G−B)]2121[(R−G)+(R−B)]}
饱和度分量:
S
=
1
−
3
R
+
G
+
B
[
m
i
n
(
R
,
G
,
B
)
]
S = 1 - \frac{3}{R + G + B}[min(R,G,B)]
S=1−R+G+B3[min(R,G,B)]
强度分量:
I
=
1
3
(
R
+
G
+
B
)
I = \frac13(R + G + B)
I=31(R+G+B)
从HSI到RGB的彩色转换
- RG扇区(
0
∘
≤
H
<
12
0
∘
0^\circ \leq H \lt 120^\circ
0∘≤H<120∘):
B = I ( 1 − S ) R = I [ 1 + S cos H cos ( 6 0 ∘ − H ) ] G = 3 I − ( R + B ) B = I(1 - S) \\ R = I\left[1 + \frac{S\cos H}{\cos(60^\circ - H)}\right] \\ G = 3I - (R + B) B=I(1−S)R=I[1+cos(60∘−H)ScosH]G=3I−(R+B) - GB扇区(
12
0
∘
≤
H
<
24
0
∘
120^\circ \leq H \lt 240^\circ
120∘≤H<240∘):
H = H − 12 0 ∘ R = I ( 1 − s ) G = I [ 1 + S cos H cos ( 6 0 ∘ − H ) ] B = 3 I − ( R + G ) H = H - 120^\circ \\ R = I(1 - s) \\ G = I\left[1 + \frac{S\cos H}{\cos(60^\circ - H)}\right] \\ B = 3I - (R + G) H=H−120∘R=I(1−s)G=I[1+cos(60∘−H)ScosH]B=3I−(R+G) - BR扇区(
24
0
∘
≤
H
<
36
0
∘
240^\circ \leq H \lt 360^\circ
240∘≤H<360∘):
H = H − 24 0 ∘ G = I ( 1 − s ) B = I [ 1 + S cos H cos ( 6 0 ∘ − H ) ] R = 3 I − ( G + B ) H = H - 240^\circ \\ G = I(1 - s) \\ B = I\left[1 + \frac{S\cos H}{\cos(60^\circ - H)}\right] \\ R = 3I - (G + B) H=H−240∘G=I(1−s)B=I[1+cos(60∘−H)ScosH]R=3I−(G+B)
伪彩色图像处理
基于指定的规则对灰度值赋予颜色,也就是如何将灰度图像转换为彩色图像的方法
灰度分层
一个三维函数 ( x , y , f ( x , y ) ) (x,y,f(x,y)) (x,y,f(x,y)),灰度级 [ 0 , L − 1 ] [0,L-1] [0,L−1],假定垂直于灰度轴的 P P P个平面将灰度级分为 P + 1 P + 1 P+1个区间 V 1 , V 2 , ⋯ , V P + 1 V_1,V_2,\cdots,V_{P + 1} V1,V2,⋯,VP+1,对各个灰度区间赋予不同的彩色值,简单来说就是一个灰度值区间对应一种彩色
灰度到彩色的变换
对输入灰度 f ( x , y ) f(x,y) f(x,y)执行三个独立的变换得到 f R ( x , y ) , f G ( x , y ) , f B ( x , y ) f_R(x,y),f_G(x,y),f_B(x,y) fR(x,y),fG(x,y),fB(x,y)分别送入红绿蓝三个通道得到一幅合成图像,此时输入的灰度图像可以有多个
全彩色图像处理基础
在RGB空间当中,每一个像素是一个向量 [ R , G , B ] T [R,G,B]^T [R,G,B]T,对图像的每个像素向量的处理得到的图像必须要和单独处理图像的每个分量然后合成的图像是相同的,所以操作必须满足两个条件,一个是必须对向量和标量都可用,二是对向量的每一个分量的处理必须是和其他分量独立
彩色变换
公式
g
(
x
,
y
)
=
T
[
f
(
x
,
y
)
]
s
i
=
T
i
(
r
1
,
r
2
,
⋯
,
r
n
)
,
i
=
1
,
2
,
⋯
,
n
g(x,y) = T[f(x,y)] \\ s_i = T_i(r_1,r_2,\cdots,r_n),i = 1,2,\cdots,n
g(x,y)=T[f(x,y)]si=Ti(r1,r2,⋯,rn),i=1,2,⋯,n
其中
f
(
x
,
y
)
f(x,y)
f(x,y)是彩色输入图像,
g
(
x
,
y
)
g(x,y)
g(x,y)是变换后的输出图像,
T
T
T是在
(
x
,
y
)
(x,y)
(x,y)的空间邻域上对
f
f
f的一个算子,例如对于RGB彩色空间,
r
1
,
r
2
,
r
3
r_1,r_2,r_3
r1,r2,r3分别表示红绿蓝分量
补色
在光的三原色系统中,假如一个颜色和另一个颜色合起来恰好是白色,那么这两个颜色互为补色,主要用于增强嵌在彩色图像暗区的细节
彩色分层
突出特定的彩色区域:假设感兴趣的颜色由宽为
W
W
W,中心在原型颜色点并具有分量
a
1
,
a
2
,
⋯
,
a
n
a_1,a_2,\cdots,a_n
a1,a2,⋯,an的超立方体所包围,则必要的一组变换为:
s
i
=
{
0.5
[
∣
r
j
−
a
j
∣
>
W
2
]
1
≤
j
≤
n
r
i
o
t
h
e
r
w
i
s
e
i
=
1
,
2
,
⋯
,
n
s_i = \begin{cases} 0.5 & \left[|r_j - a_j| \gt \frac{W}{2}\right]_{1 \leq j \leq n} \\ r_i & otherwise \end{cases}i = 1,2,\cdots,n
si={0.5ri[∣rj−aj∣>2W]1≤j≤notherwisei=1,2,⋯,n
还可以为下式,此时为被超球体包围:
s
i
=
{
0.5
∑
j
=
1
n
(
r
j
−
a
j
)
2
>
R
0
2
r
i
o
t
h
e
r
w
i
s
e
i
=
1
,
2
,
⋯
,
n
s_i = \begin{cases} 0.5 & \sum_{j = 1}^n(r_j - a_j)^2 \gt R_0^2 \\ r_i & otherwise \end{cases}i = 1,2,\cdots,n
si={0.5ri∑j=1n(rj−aj)2>R02otherwisei=1,2,⋯,n
色调和彩色校正
L
∗
a
∗
b
L*a*b
L∗a∗b彩色空间:比色的(与感觉色相匹配的编码相同)、感觉一致的(即在各种色调中颜色差别感觉上是一致的)、独立于设备的,虽然需要转换到另外的彩色空间来显示,但是其色域包含整个可见光谱,可以准确表示任何显示设备、打印设备或输入设备的颜色,且和HSI系统类似,是亮度(
L
∗
L*
L∗表示)和彩色(
a
∗
a*
a∗表示红减绿,
b
∗
b*
b∗表示绿减蓝)分离器
L
∗
=
116
⋅
h
(
Y
Y
w
)
−
16
a
∗
=
500
[
h
(
X
X
w
)
−
h
(
Y
Y
w
)
]
b
∗
=
200
[
h
(
Y
Y
w
)
−
h
(
Z
Z
w
)
]
L* = 116\cdot h\left(\frac{Y}{Y_w}\right)-16 \\ a* = 500\left[h\left(\frac{X}{X_w}\right)-h\left(\frac{Y}{Y_w}\right)\right] \\ b* = 200\left[h\left(\frac{Y}{Y_w}\right)-h\left(\frac{Z}{Z_w}\right)\right]
L∗=116⋅h(YwY)−16a∗=500[h(XwX)−h(YwY)]b∗=200[h(YwY)−h(ZwZ)]
其中:
h
(
q
)
=
{
q
3
q
>
0.008856
7.787
q
+
16
116
q
≤
0.008856
h(q) = \begin{cases} \sqrt[3]{q} & q \gt 0.008856 \\ 7.787q + \frac{16}{116} & q \leq 0.008856 \end{cases}
h(q)={3q7.787q+11616q>0.008856q≤0.008856
X
w
,
Y
w
,
Z
w
X_w,Y_w,Z_w
Xw,Yw,Zw是参考白色三激励值
直方图处理
单独对彩色图像的分量进行直方图均衡是不明智的,将产生不确定的彩色,一种合理的方法是针对HSI图像模式,保持色调和饱和度不变,仅仅对亮度分量进行直方图均衡
平滑和锐化
彩色图像平滑
令
S
x
y
S_{xy}
Sxy表示中心位于
(
x
,
y
)
(x,y)
(x,y)的邻域定义的一组坐标:
c
‾
(
x
,
y
)
=
[
1
K
∑
(
s
,
t
)
∈
S
x
y
R
(
s
,
t
)
1
K
∑
(
s
,
t
)
∈
S
x
y
G
(
s
,
t
)
1
K
∑
(
s
,
t
)
∈
S
x
y
B
(
s
,
t
)
]
\overline{c}(x,y) = \left[ \begin{matrix} \frac{1}{K}\sum_{(s,t)\in S_{xy}}R(s,t) \\ \frac{1}{K}\sum_{(s,t)\in S_{xy}}G(s,t) \\ \frac{1}{K}\sum_{(s,t)\in S_{xy}}B(s,t) \end{matrix} \right]
c(x,y)=⎣
⎡K1∑(s,t)∈SxyR(s,t)K1∑(s,t)∈SxyG(s,t)K1∑(s,t)∈SxyB(s,t)⎦
⎤
也就是对每个分量分别平滑之后合在一起
彩色图像锐化
以拉普拉斯方法为例,和平滑类似,可以对每个分量分别进行:
∇
2
[
c
(
x
,
y
)
]
=
[
∇
2
R
(
x
,
y
)
∇
2
G
(
x
,
y
)
∇
2
B
(
x
,
y
)
]
\nabla^2[c(x,y)] = \left[ \begin{matrix} \nabla^2R(x,y) \\ \nabla^2G(x,y) \\ \nabla^2B(x,y) \end{matrix} \right]
∇2[c(x,y)]=⎣
⎡∇2R(x,y)∇2G(x,y)∇2B(x,y)⎦
⎤
对HSI分量锐化或平滑和对RGB分量锐化或平滑得到的图像有差异的原因:HSI仅改变亮度分量,并不改变色调和饱和度,所以像素的颜色没有变化
基于彩色的图像分割
HSI彩色空间的分割
色调描绘彩色很方便,例如一个例子是使用饱和度的阈值来利用饱和度分量生成一个模板,模板的生成中高于阈值的置1,否则0,之后将该模板和色调分量相乘,得到的结果再进行阈值处理,最后得到的就是最终的分割结果
RGB向量空间分割
假设希望分割的颜色向量为
a
a
a,那么定义空间中的像素点
z
z
z的颜色向量值和该点的距离为:
D
(
z
,
a
)
=
∣
∣
z
−
a
∣
∣
=
[
(
z
−
a
)
T
(
z
−
a
)
]
1
2
=
[
(
z
R
−
a
R
)
2
+
(
z
G
−
a
G
)
2
+
(
z
B
−
a
B
)
2
]
1
2
D(z,a) = ||z - a|| = [(z - a)^T(z - a)]^\frac12 = [(z_R - a_R)^2 + (z_G - a_G)^2 + (z_B - a_B)^2]^\frac12
D(z,a)=∣∣z−a∣∣=[(z−a)T(z−a)]21=[(zR−aR)2+(zG−aG)2+(zB−aB)2]21
之后对距离小于
D
0
D_0
D0的像素值赋一个值,大于
D
0
D_0
D0的赋另一个值,两点之间的距离可以用另一种度量:
D
(
z
,
a
)
=
[
(
z
−
a
)
T
C
−
1
(
z
−
a
)
]
1
2
D(z,a) = [(z - a)^TC^{-1}(z - a)]^\frac12
D(z,a)=[(z−a)TC−1(z−a)]21
C
C
C是希望分割的有代表性颜色样本的协方差矩阵,上述距离构成了一个椭球体,还可以选择距离函数形成立方体
彩色边缘检测
计算单幅图像的梯度然后用得到的结果形成一幅彩色图像将会导致错误的结果,但结果也不是不可以接受,下面介绍另外一种梯度定义方法,令
r
,
g
,
b
r,g,b
r,g,b是沿着RGB彩色空间的
R
,
G
,
B
R,G,B
R,G,B轴的单位向量,定义向量:
u
=
∂
R
∂
x
r
+
∂
G
∂
x
g
+
∂
B
∂
x
b
u
=
∂
R
∂
y
r
+
∂
G
∂
y
g
+
∂
B
∂
y
b
u = \frac{\partial R}{\partial x}r + \frac{\partial G}{\partial x}g + \frac{\partial B}{\partial x}b \\ u = \frac{\partial R}{\partial y}r + \frac{\partial G}{\partial y}g + \frac{\partial B}{\partial y}b
u=∂x∂Rr+∂x∂Gg+∂x∂Bbu=∂y∂Rr+∂y∂Gg+∂y∂Bb
又定义上述向量的点积:
g
x
x
=
u
⋅
u
=
u
T
u
=
∣
∂
R
∂
x
∣
2
+
∣
∂
G
∂
x
∣
2
+
∣
∂
B
∂
x
∣
2
g
y
y
=
v
⋅
v
=
v
T
v
=
∣
∂
R
∂
y
∣
2
+
∣
∂
G
∂
y
∣
2
+
∣
∂
B
∂
y
∣
2
g
x
y
=
u
⋅
v
=
u
T
v
=
∂
R
∂
x
∂
R
∂
y
+
∂
G
∂
x
∂
G
∂
y
+
∂
B
∂
x
∂
B
∂
y
g_{xx} = u\cdot u = u^Tu = \left|\frac{\partial R}{\partial x}\right|^2 + \left|\frac{\partial G}{\partial x}\right|^2 + \left|\frac{\partial B}{\partial x}\right|^2 \\ g_{yy} = v\cdot v = v^Tv = \left|\frac{\partial R}{\partial y}\right|^2 + \left|\frac{\partial G}{\partial y}\right|^2 + \left|\frac{\partial B}{\partial y}\right|^2 \\ g_{xy} = u\cdot v = u^T v = \frac{\partial R}{\partial x}\frac{\partial R}{\partial y} + \frac{\partial G}{\partial x}\frac{\partial G}{\partial y} + \frac{\partial B}{\partial x}\frac{\partial B}{\partial y}
gxx=u⋅u=uTu=∣
∣∂x∂R∣
∣2+∣
∣∂x∂G∣
∣2+∣
∣∂x∂B∣
∣2gyy=v⋅v=vTv=∣
∣∂y∂R∣
∣2+∣
∣∂y∂G∣
∣2+∣
∣∂y∂B∣
∣2gxy=u⋅v=uTv=∂x∂R∂y∂R+∂x∂G∂y∂G+∂x∂B∂y∂B
利用上述的表示法,定义最大变化率的方向:
θ
(
x
,
y
)
=
1
2
a
r
c
tan
[
2
g
x
y
g
x
x
−
g
y
y
]
\theta(x,y) = \frac12arc \tan\left[\frac{2g_{xy}}{g_{xx} - g_{yy}}\right]
θ(x,y)=21arctan[gxx−gyy2gxy]
且在角度
θ
(
x
,
y
)
\theta(x,y)
θ(x,y)方向上点
(
x
,
y
)
(x,y)
(x,y)处的变化率为:
F
θ
(
x
,
y
)
=
{
1
2
[
(
g
x
x
+
g
y
y
)
+
(
g
x
x
−
g
y
y
)
cos
2
θ
(
x
,
y
)
+
2
g
x
y
sin
2
θ
(
x
,
y
)
]
}
1
2
F_\theta(x,y) = \left\{\frac12[(g_{xx} + g_{yy}) + (g_{xx} - g_{yy})\cos 2\theta(x,y) + 2g_{xy}\sin 2\theta(x,y)]\right\}^\frac12
Fθ(x,y)={21[(gxx+gyy)+(gxx−gyy)cos2θ(x,y)+2gxysin2θ(x,y)]}21
彩色图像的噪声
灰度图像的噪声模型可以用于彩色图像,通常彩色图像的噪声内容在每个彩色通道中具有相同的特性,但噪声对不同的彩色通道所造成的影响不同