HSV RGB颜色空间互转
寫了一段有關(guān)顏色的文章,回顧過去幾篇文章,做一個階段性總結(jié)。利用前幾篇文章的心得,推導出快速轉(zhuǎn)換RGB模式與HSV模式的公式。
RGB模式:用R、G、B三個顏色的分量來表示顏色,分量的取值范圍為[0,255],整數(shù)型
HSV模式:用H、S、V三個分量來表示顏色。
分量H:表示顏色的色相,取值[0,360),整數(shù)型
分量S:表示顏色的純度,取值[0,1),浮點數(shù)型
分量V:表示顏色的亮度,取值[0,1),浮點數(shù)型
以上內(nèi)容,詳細請參看“計算機中的顏色III——HSV表示方法”
1、RGB到HSV
顏色(R,G,B)如何快速轉(zhuǎn)化到(H,S,V)
參看文章“計算機中的顏色IV——純色、色相色”,“計算機中的顏色V——快速計算顏色的色相值”
令MAX為R、G、B三個分量的最大值;MIN為三個分量的最小值
若MAX=MIN,則
H=0
S=0
V=MAX/255
若MAX≠MIN
當G≥B時
H=(Max-R’+G’-Min+B’-Min)/(Max-Min)×60
S=1-MIN/MAX
V=MAX/255
當G<B時
H=360-(Max-R’+G’-Min+B’-Min)/(Max-Min)×60
S=1-MIN/MAX?
V=MAX/255
2、HSV到RGB
顏色(H,S,V)如何快速轉(zhuǎn)化到(R,G,B)
參看文章“計算機中的顏色VIII——快速計算顏色的偏轉(zhuǎn)”
顏色(H,S,V)可以看成顏色(0,S,V)順時針偏轉(zhuǎn)H后得到顏色,其實,就是獲得該顏色MAX與MIN分量
MAX=V×255=255V
若S=0,說明MAX=MIN,此時表示灰度色
R=MAX
G=MAX
B=MAX
若S>0,則令ρ=MAX-MIN=255SV,MIN=MAX-ρ
若H>180,令H’=360-H;反之,令H’=H
令λ=H’/60×ρ
R=2ρ-λ;若R<0,則R=0;若R>ρ,則R=ρ;?
G=λ;若G>ρ,則G=ρ;
B=λ-2ρ;若B<0;則B=0;
若H>180,則交換G和B分量的值;反之,不交換。最后
R=R+MIN
G=G+MIN
B=B+MIN
總述,以上是我推導的HSV和RGB的互相轉(zhuǎn)化公式,比許多網(wǎng)上介紹的原來的公式來的簡單。參看“計算機中的顏色III——HSV表示方法”。
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的HSV RGB颜色空间互转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。