OpenCV颜色转换

简洁翻译版.
OpenCV BGR分布

序号通道描述
1R8位无符号整型,取值0~255
2G16位无符号整体性,取值0~65535
3B32位浮点型数据,取值0~1
4A色彩空间,取值0~1

1 RGB    ⟺    \iff GRAY

1.0 RGB[A] ↦ \mapsto GRAY

G r a y = 0.299 ∗ R + 0.587 ∗ G + 0.114 ∗ B Gray=0.299*R + 0.587*G + 0.114*B Gray=0.299R+0.587G+0.114B

1.2 GRAY ↦ \mapsto RGB[A]

{ R = G r a y G = G r a y B = G r a y A = m a x ( C h a n n e l R a n g e ) \begin{cases}R=Gray\\G=Gray\\B=Gray\\A=max(ChannelRange)\end{cases} R=GrayG=GrayB=GrayA=max(ChannelRange)

2 RGB    ⟺    \iff CIE XYZ.Rec709 with D65 white point

2.1 RGB ↦ \mapsto XYZ

[ X Y Z ] = [ 0.412453 0.357580 0.180423 0.212671 0.715160 0.072169 0.019334 0.119193 0.950227 ] ⋅ [ R G B ] \begin{bmatrix} X \\ Y \\ Z\end{bmatrix}=\begin{bmatrix}0.412453& 0.357580& 0.180423 \\ 0.212671& 0.715160& 0.072169 \\ 0.019334& 0.119193& 0.950227\end{bmatrix}\cdot \begin{bmatrix}R\\ G\\ B \end{bmatrix} XYZ=0.4124530.2126710.0193340.3575800.7151600.1191930.1804230.0721690.950227RGB

2.2 XYZ ↦ \mapsto RGB

[ R G B ] = [ 0.412453 0.357580 0.180423 0.212671 0.715160 0.072169 0.019334 0.119193 0.950227 ] ⋅ [ X Y Z ] \begin{bmatrix}R\\ G\\ B \end{bmatrix}=\begin{bmatrix}0.412453& 0.357580& 0.180423 \\ 0.212671& 0.715160& 0.072169 \\ 0.019334& 0.119193& 0.950227\end{bmatrix}\cdot \begin{bmatrix} X \\ Y \\ Z\end{bmatrix} RGB=0.4124530.2126710.0193340.3575800.7151600.1191930.1804230.0721690.950227XYZ

3 RGB    ⟺    \iff YCrCb JPEG(or YCC)

3.1 RGB ↦ \mapsto YCrCb

{ Y = 0.299 ∗ R + 0.587 ∗ G + 0.114 ∗ B C r = ( R − Y ) ∗ 0.713 + δ C b = ( B − Y ) ∗ 0.564 + δ \begin{cases}Y=0.299*R + 0.587*G + 0.114*B\\ Cr=(R-Y)*0.713 + \delta\\Cb=(B-Y)*0.564+\delta \end{cases} Y=0.299R+0.587G+0.114BCr=(RY)0.713+δCb=(BY)0.564+δ

3.2 YCrCb ↦ \mapsto RGB

{ R = Y + 1.403 ∗ ( C r − δ ) G = Y − 0.714 ∗ ( C r − δ ) − 0.344 ∗ ( C b − δ ) B = Y + 1.773 ∗ ( C b − δ ) \begin{cases}R=Y + 1.403*(Cr-\delta)\\ G=Y-0.714*(Cr-\delta)-0.344*(Cb-\delta) \\B=Y + 1.773*(Cb-\delta) \end{cases} R=Y+1.403(Crδ)G=Y0.714(Crδ)0.344(Cbδ)B=Y+1.773(Cbδ)
其中,
δ = { 128 8位图像 32768 16位图像 0.5 浮点型数据图像 \delta=\begin{cases}128 &\text{8位图像} \\ 32768&\text{16位图像}\\0.5&\text{浮点型数据图像}\end{cases} δ=128327680.58位图像16位图像浮点型数据图像

4 RGB    ⟹    \implies HSV

8位和16位RGB图像转为HSV图像.
V = m a x ( R , G , B ) V=max(R,G,B) V=max(R,G,B)
S = { V − m i n ( R , G , B ) if  V   ≠ 0 0 otherwise S=\begin{cases}V-min(R,G,B) &\text{if $V$ $\not=$0}\\ 0 & \text{otherwise}\end{cases} S={Vmin(R,G,B)0if V =0otherwise
H = { 60 ∗ ( G − B ) / ( V − m i n ( R , G , B ) ) if  V  =  R 120 + 60 ∗ ( B − R ) / ( V − m i n ( R , G , B ) ) if  V  =  G 240 + 60 ∗ ( R − G ) / ( V − m i n ( R , G , B ) ) if  V  =  B H=\begin{cases}60*(G-B)/(V-min(R,G,B))&\text{if $V$ = $R$}\\ 120+60*(B-R)/(V-min(R,G,B))&\text{if $V$ = $G$} \\ 240+60*(R-G)/(V-min(R,G,B)) &\text {if $V$ = $B$}\end{cases} H=60(GB)/(Vmin(R,G,B))120+60(BR)/(Vmin(R,G,B))240+60(RG)/(Vmin(R,G,B))if V = Rif V = Gif V = B
if H H H < 0 0 0,输出
{ 0 ≤ V ≤ 1 0 ≤ S ≤ 1 0 ≤ H ≤ 360 \begin{cases}0 \leq V \leq 1 \\0 \leq S \leq 1\\0 \leq H \leq 360 \end{cases} 0V10S10H360

5 RGB    ⟹    \implies CIE Lab

8位和16位RGB图像转为浮点型和标量格式图像.
[ X Y Z ] = [ 0.412453 0.357580 0.180423 0.212671 0.715160 0.072169 0.019334 0.119193 0.950227 ] ⋅ [ R G B ] \begin{bmatrix} X \\ Y \\ Z\end{bmatrix}=\begin{bmatrix}0.412453& 0.357580& 0.180423 \\ 0.212671& 0.715160& 0.072169 \\ 0.019334& 0.119193& 0.950227\end{bmatrix}\cdot \begin{bmatrix}R\\ G\\ B \end{bmatrix} XYZ=0.4124530.2126710.0193340.3575800.7151600.1191930.1804230.0721690.950227RGB

{ X = X / X n , X n = 0.950456 Z = Z / Z n , Z n = 1.088754 \begin{cases}X=X/X_n, &\text X_n=0.950456 \\Z=Z/Z_n, &\text Z_n=1.088754 \end{cases} {X=X/Xn,Z=Z/Zn,Xn=0.950456Zn=1.088754

L = { 116 ∗ Y 1 / 3 − 16 , Y>0.008856 903.3 ∗ Y , Y  ≤  0.008856 L=\begin{cases}116*Y^{1/3}-16, &\text{Y>0.008856} \\903.3*Y, &\text{Y $\leq$ 0.008856} \end{cases} L={116Y1/316,903.3Y,Y>0.008856 0.008856
{ a = 500 ( f ( X ) − f ( Y ) ) + δ b = 200 ( f ( Y ) − f ( Z ) ) + δ \begin{cases}a=500(f(X)-f(Y))+\delta \\b=200(f(Y)-f(Z))+\delta \end{cases} {a=500(f(X)f(Y))+δb=200(f(Y)f(Z))+δ
其中,
f ( t ) = { t 1 / 3 , t>0.008856 7.787 ∗ t + 16 / 116 , t ≤ 0.008856 f(t)=\begin{cases}t^{1/3}, &\text{t>0.008856}\\7.787*t+16/116, &\text{t$\leq$0.008856}\end{cases} f(t)={t1/3,7.787t+16/116,t>0.008856t0.008856
δ = { 128 , 8位图像 0 , 浮点型图像 \delta=\begin{cases}128, &\text{8位图像}\\0, &\text{浮点型图像}\end{cases} δ={128,0,8位图像浮点型图像
{ 0 ≤ L ≤ 100 − 127 ≤ a ≤ 127 − 127 ≤ b ≤ 127 \begin{cases}0 \leq L \leq 100 \\-127 \leq a \leq 127\\-127 \leq b \leq 127 \end{cases} 0L100127a127127b127

5 RGB    ⟹    \implies CIE Luv

[ X Y Z ] = [ 0.412453 0.357580 0.180423 0.212671 0.715160 0.072169 0.019334 0.119193 0.950227 ] ⋅ [ R G B ] \begin{bmatrix} X \\ Y \\ Z\end{bmatrix}=\begin{bmatrix}0.412453& 0.357580& 0.180423 \\ 0.212671& 0.715160& 0.072169 \\ 0.019334& 0.119193& 0.950227\end{bmatrix}\cdot \begin{bmatrix}R\\ G\\ B \end{bmatrix} XYZ=0.4124530.2126710.0193340.3575800.7151600.1191930.1804230.0721690.950227RGB
L = { 116 ∗ Y 1 / 3 − 16 , Y>0.008856 903.3 ∗ Y , Y  ≤  0.008856 L=\begin{cases}116*Y^{1/3}-16, &\text{Y>0.008856} \\903.3*Y, &\text{Y $\leq$ 0.008856} \end{cases} L={116Y1/316,903.3Y,Y>0.008856 0.008856
{ u ′ = 4 ∗ X / ( X + 15 ∗ Y + 3 ∗ Z ) v ′ = 9 ∗ Y / ( X + 15 ∗ Y + 3 ∗ Z ) \begin{cases}u'=4*X/(X+15*Y+3*Z)\\v'=9*Y/(X+15*Y+3*Z) \end{cases} {u=4X/(X+15Y+3Z)v=9Y/(X+15Y+3Z)
{ u = 13 ∗ L ∗ ( u ′ − u n ) , u n = 0.19793943 v = 13 ∗ L ∗ ( v ′ − v n ) , v n = 0.46831096 \begin{cases}u=13*L*(u'-u_n), &\text u_n=0.19793943\\v=13*L*(v'-v_n), &\text v_n=0.46831096 \end{cases} {u=13L(uun),v=13L(vvn),un=0.19793943vn=0.46831096
{ 0 ≤ L ≤ 100 − 134 ≤ u ≤ 134 − 140 ≤ v ≤ 122 \begin{cases}0 \leq L \leq 100 \\-134 \leq u \leq 134\\-140 \leq v \leq 122 \end{cases} 0L100134u134140v122


更新ing
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值