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模型
RGB、CMK彩色模型对于硬件实现很理想,但是不能很好的解释人观察到的图像,于是提出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)
基于指定的规则对灰度值赋予颜色,也就是如何将灰度图像转换为彩色图像的方法
一个三维函数 ( 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仅改变亮度分量,并不改变色调和饱和度,所以像素的颜色没有变化
色调描绘彩色很方便,例如一个例子是使用饱和度的阈值来利用饱和度分量生成一个模板,模板的生成中高于阈值的置1,否则0,之后将该模板和色调分量相乘,得到的结果再进行阈值处理,最后得到的就是最终的分割结果
假设希望分割的颜色向量为 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
灰度图像的噪声模型可以用于彩色图像,通常彩色图像的噪声内容在每个彩色通道中具有相同的特性,但噪声对不同的彩色通道所造成的影响不同