本文基于《数字图像处理》(冈萨雷斯第三版)的原网站的证明并添加了一点自己的理解,如果想要获取作者的证明原始文件请访问这里。
RGB转换到HSI的几何方法公式
假设RGB模型的R,G,B值的取值范围为[0,1]。
HSI模型的三个分量:强度(I),色调(H),饱和度(S)的计算公式如下:
I=13(R+G+B)
S=1−3[min(R,G,B)](R+G+B)
H={θ,360−θ,B≤GB>G
式中:
θ=arccos{12[(R−G)+(R−B)][(R−G)2+(R−B)(G−B)]12}
证明
HSI模型采用三棱锥还是圆锥或者圆柱都没有影响,因为它们之间可以直接相互映射,所以三者是等价的。这里用三角形来证明。
假设RGB值已经归一化。归一化方法为:
r=RR+G+B(1)
g=GR+G+B(2)
b=BR+G+B(3)
即求出各个基色的强度所占的比例。注意到
r,g,b实际上代表了各个三原色的强度占总体的比例,所以显然满足如下条件:
r+g+b=1
![【数字图像处理一】RGB模型转化为HSI模型的几何方法推导 【数字图像处理一】RGB模型转化为HSI模型的几何方法推导](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEyNi9hY2JlZTVjNzcxOTA0NWRhNWY4OGFkM2FhOWMxNmM5Ni5wbmc=)
![【数字图像处理一】RGB模型转化为HSI模型的几何方法推导 【数字图像处理一】RGB模型转化为HSI模型的几何方法推导](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI2OS84YzFlM2ZjYTE4ZTNlNzBjZTI2ZDFjYWU0ZjQ4OWUxZC5wbmc=)
另外仔细观察上图中的正三棱锥上的面
PBPGPR,该平面上的任意一点都代表了
R值
G值
B值满足比例条件的色点。比如该平面上的点
(0.5,0.2,0.3)代表的所
R:G:B=0.5:0.2:0.3的点。
另外给出几条假设和显然的前提条件:
(1)点
w的坐标是
(13,13,13),因为正三角形。
(2)设三角形
PBPGPR上点的坐标为
(r,g,b)。
(3)设连接坐标原点和W的向量为&w&,同样的有
p,pR,pB,pR。
(4)图中的直线
PRQR,PBQB,PGQG两两相交于W。
(5)设
r0=RI,g0=GI,b0=BI。从图Fig.4.46(a)中可以看出对于直线
PRQR上的任意一点都有
g0=b0,对于直线
PBQB,PGQG也有类似的结论。
(6)对于三角形
PRQRPG中的任意一点都有
g0>b0,对于其他5个区域也有类似的结论。
(7)
|WQR||PRQR|=13,|WQG||PGQG|=13,|WQB||PBQB|=13,等边三角形的性质。
(8)RG扇区是三角形
WPRPG所围成的区域。对于GB和BR扇区有类似结论。
I的证明
按照定义,I=13(R+G+B),使其取值范围也在[0,1],没有什么好说的。
H的证明
默认使用待求色点和r轴的夹角作为H。对于点p,显然有下式成立:
(p⃗ −w⃗ )∗(pR→−w⃗ )=∥p⃗ −w⃗ ∥∗∥pR→−w⃗ ∥∗cosH(4)
将p点坐标
(r,g,b)带入有:
∥p⃗ −w⃗ ∥=[(r−13)2+(g−13)2]+(b−13)2]1/2(5)
将(1),(2),(3)带入(5)式可得:
∥p⃗ −w⃗ ∥=[9(R2+G2+B2)−3(R+G+B)29(R+G+B)2]1/2(6)
将
pR(1,0,0)和
W(13,13,13)带入,有:
∥pR→−w⃗ ∥=(23)1/2(7)
通过向量的坐标运算可以得到:
(p⃗ −w⃗ )∗(pR→−w⃗ )==23(r−13)−13(g−13)−13(b−13)2R−G−B3(R+G+B)(1)(2)(8)
由式子(4),(6),(7),(8)可得:
H=arccos{12[(R−G)+(R−B)][(R−G)2+(R−B)(G−B)]1/2}
S的证明
计算方法:以图Fig.4.46(b)中的p点为例,设W向r轴和g轴所在的平面投影,交于点T,P和P’分别向直线WT投影,设分别交于点Q和T。计算p点饱和度的方法是S=|WP|WP′。
在计算饱和度时,对于三角形来说,计算|WP|来作为P点的饱和度是没有意义的并且是错误的,因为在我们采用的HSI模型中,点的坐标是(r,g,b)而不是RGB模型中的(R,G,B),在这种情况下,其实向量本身也没有意义。我觉得可以这样理解,在P点所在的强度和色调不变的情况下,P’点是所能取到的最大的饱和度,因为白光强度为0。从W到P’的过程是饱和度不断增加的过程,而且是线性变化的。这样就可以用|WP||WP′|来表示了。注意到,如果是圆柱形的HSI模型,假设截面的半径是1的话,即|WP′|=1,这样只需计算|WP|即可,个人猜测如果将三角形的HSI转换到圆柱形的HSI,直接计算半径(将三角形HSI到圆柱HSI的转换公式作用于三角形的P的半径)就是上面给出的S的表达式。这里不再验证。
下面是计算过程,假设P点(r,g,b)中,b小于r,g,这样可以得到下式:
S====|WP||WP′||WQ||WT||WT|−|QT||WT|1−3b(3)(4)(5)(6)
推广到g,r最小的情况可得:
S=1−3(R+G+B)[min(R,G,B)]
证毕。
参考资料
《数字图像处理》(冈萨雷斯)第三版
初入计算机,请大家多多指教嘛,共同学习~~~持续更新中……