




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、RGB、HSV色彩空間模式的互相轉(zhuǎn)換文章來(lái)源:在開(kāi)發(fā)有關(guān)bitmap方面的程序時(shí),經(jīng)常需要將位圖的顏色在RGB和HSV色彩空間之間轉(zhuǎn)換,前段時(shí)間本人研究過(guò),現(xiàn)在整理一下,希望對(duì)大家能有所幫助,該顏色轉(zhuǎn)換由C+實(shí)現(xiàn) 在開(kāi)發(fā)有關(guān)bitmap方面的程序時(shí),經(jīng)常需要將位圖的顏色在RGB和HSV色彩空間之間轉(zhuǎn)換,前段時(shí)間本人研究過(guò),現(xiàn)在整理一下,希望對(duì)大家能有所幫助,該顏色轉(zhuǎn)換由C+實(shí)現(xiàn):RGB顏色空間轉(zhuǎn)換為HSV空間顏色值:void Rgb2Hsv(float R, float G, float B, float& H, float&
2、 S, float&V) / r,g,b values are from 0 to 1 / h = 0,360, s = 0,1, v = 0,1 / if s = 0, then h = -1 (undefined) float min, max, delta,tmp; tmp = min(R, G); min = min( tmp, B ); tmp = max( R, G);
3、160; max = max(tmp, B ); V = max; / v delta = max - min; if( max != 0 ) S = delta / max; / s else / r = g = b = 0 / s = 0, v is undefined S = 0;
4、 H = UNDEFINEDCOLOR; return; if( R = max ) H = ( G - B ) / delta; / between yellow & magenta else if( G = max ) H = 2 + ( B - R ) / delta; /
5、 between cyan & yellow else H = 4 + ( R - G ) / delta; / between magenta & cyan H *= 60; / degrees if( H < 0 ) H += 360;HSV顏色空間轉(zhuǎn)換為RGB空間顏色值:void Hsv2Rgb(float H, float S, float V, float &am
6、p;R, float &G, float & int i; float f, p, q, t; if( S = 0 ) / achromatic (grey) R = G = B = V; return; H /= 60; /
7、 sector 0 to 5 i = floor( H ); f = H - i; / factorial part of h p = V * ( 1 - S ); q = V * ( 1 - S * f ); t = V * ( 1 - S * ( 1 - f ) ); switch( i ) case 0:
8、;R = V; G = t; B = p; break; case 1: R = q; G = V; B = p; break; case
9、2: R = p; G = V; B = t; break; case 3: R = p; G = q; B = V; break;
10、 case 4: R = t; G = p; B = V; break; default: / case 5: R = V; G = p; B = q; br
11、eak; s=max(r,g,b)-min(r,g,b)/max(r,g,b)b=max(r,g,b)RGB > HSVvar_R = ( R / 255 ) /RGB values = 0 ÷ 255var_G = ( G / 255 )var_B = ( B / 255 )var_Min = min( var_R, var_G, var_B )
12、/Min. value of RGBvar_Max = max( var_R, var_G, var_B ) /Max. value of RGBdel_Max = var_Max - var_Min /Delta RGB value V = var_Maxif ( del_Max = 0 )
13、60;/This is a gray, no chroma. H = 0 /HSV results = 0 ÷ 1 S = 0else
14、0; /Chromatic data. S = del_Max / var_Max del_R = ( ( ( var_Max - var_R ) / 6 ) + ( del_Max / 2 ) ) / del_Max del_G = ( ( ( var_Max - var_G ) / 6 ) + ( del_Max / 2 ) ) / del_
15、Max del_B = ( ( ( var_Max - var_B ) / 6 ) + ( del_Max / 2 ) ) / del_Max if ( var_R = var_Max ) H = del_B - del_G else if ( var_G = var_Max ) H = ( 1 / 3 ) + del_R - del_B else if ( var_B = var_Max ) H = ( 2 / 3 ) + del_G - del_
16、R if ( H < 0 ) ; H += 1 if ( H > 1 ) ; H -= 1UID386215 帖子13286 精華0 積分76 鉆石30 威望9249 閱讀權(quán)限50 注冊(cè)時(shí)間2005-6-3 查看詳細(xì)資料HSV > RGBif ( S = 0 )
17、60; /HSV values = 0 ÷ 1 R = V * 255 G = V * 255 B = V * 255else var_h = H * 6 if ( var_h = 6 ) var_h = 0 /H must be < 1 var_i = int( var_h )
18、0; /Or . var_i = floor( var_h ) var_1 = V * ( 1 - S ) var_2 = V * ( 1 - S * ( var_h - var_i ) ) var_3 = V * ( 1 - S * ( 1 - ( var_h - var_i ) ) ) if ( var_i = 0 ) var_r = V var_g = var_3 ; var_b = var_1
19、 else if ( var_i = 1 ) var_r = var_2 ; var_g = V var_b = var_1 else if ( var_i = 2 ) var_r = var_1 ; var_g = V var_b = var_3 else if ( var_i = 3 ) var_r = var_1 ; var_g = var_2 ; var_b = V
20、0; else if ( var_i = 4 ) var_r = var_3 ; var_g = var_1 ; var_b = V else var_r = V var_g = var_1 ; var_b = var_2 R = var_r * 255 &
21、#160; /RGB results = 0 ÷ 255 G = var_g * 255 B = var_b * 255RGB > HSVH的轉(zhuǎn)換比較麻煩一點(diǎn)(略)S=最大值(R,G,B)-最小值(R,G,B)/最大值(R,G,B)V=最大值(R,G,B)以上,與BB在2樓的幾乎一樣。V,BB用的是:B。HSV > RGB轉(zhuǎn)換比較麻煩,需要按語(yǔ)句一步步走。比如:如果S=0時(shí),R = V * 255G
22、 = V * 255B = V * 255后面(略)。Adobe色彩系統(tǒng)RGB和CMYK相互轉(zhuǎn)換原理 為了說(shuō)明 adobe 的 RGB 轉(zhuǎn)換 CMYK 的過(guò)程,不得不先涉及到一些色彩轉(zhuǎn)換程序方面的東西。CMYK_ADOBE_COLORSPACE:r = (k*c)/maxval;g = (k*m)/maxval;b = (k*y)/maxval; 以上是 adobe 的 CMYK 到 RGB轉(zhuǎn)換公式,下面再來(lái)看看 RGB 如何 轉(zhuǎn)換為 CMYK下面的語(yǔ)句是經(jīng)過(guò)改寫(xiě)的適用于 Flash 的 actionscript/ RGB to CMY 色彩
23、轉(zhuǎn)換function rgbtocmy () mycyan = 255 - myred; mymagenta = 255 - mygreen;myyellow = 255 - myblue;correctCMYK(); / CMY to RGB 色彩轉(zhuǎn)換 function cmytorgb () myred = 255 - mycyan;mygreen = 255 - mymagenta;myblue = 255 - myyellow;correctCMYK(); / CMYK 色彩修正function correctCMYK () if (rep_v != "ERR" v
24、ar temp = Math.min(Math.min(mycyan, mymagenta), myyellow);if (temp != 0) temp2 = Math.round(rep_v / 100) * temp);rep_k = Math.round(temp2 / 255) * 100);rep_c = Math.round(mycyan - temp2) / 255) * 100);rep_m = Math.round(mymagenta - temp2) / 255) * 100);rep_y = Math.round(myyellow - temp2) / 255) * 1
25、00); else rep_c = Math.round(mycyan / 255) * 100);rep_m = Math.round(mymagenta / 255) * 100);rep_y = Math.round(myyellow / 255) * 100);rep_k = 0; 我們知道, RGB 和 CMYK 并不能一一對(duì)應(yīng),這里面存在的問(wèn)題是黑色部分的替換值的取值問(wèn)題。 但是, RGB 所可以全部對(duì)應(yīng)的,是CMY 格式,其最取值范圍是0-255。從色輪上我們可以很容易的了解到這其中的補(bǔ)色計(jì)算關(guān)系。因此,CMY 和 RGB 的對(duì)換 可以說(shuō)是“無(wú)損,可逆轉(zhuǎn)”的。當(dāng)從RGB 得到相應(yīng)的CMY 之后,我們?nèi)粢玫?CMYK 值,就必須定義一個(gè)“黑色替換值”,也就是說(shuō)提取各色通道中的若干成分來(lái)形成黑色通道。CMYK 的取值是 0-100。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)際商法國(guó)際貿(mào)易術(shù)語(yǔ)模擬試題
- 環(huán)保行業(yè)表格-
- 自然災(zāi)害頻發(fā)背景下的防汛應(yīng)急管理需求變化
- 生物技術(shù)成果轉(zhuǎn)化合作協(xié)議
- 社會(huì)實(shí)踐與實(shí)習(xí)機(jī)會(huì)的多元化發(fā)展策略
- 設(shè)備使用情況表格-設(shè)備維護(hù)保養(yǎng)
- 歷史與文化背景下的跨文化交際題集
- 中醫(yī)醫(yī)院發(fā)展現(xiàn)狀及面臨的主要挑戰(zhàn)
- 高職院校創(chuàng)新創(chuàng)業(yè)教育與專業(yè)課程融合分析
- 2025年藝術(shù)治療師考試試題及答案詳解
- 注塑工藝驗(yàn)證周期
- 招標(biāo)代理機(jī)構(gòu)入圍 投標(biāo)方案(技術(shù)方案)
- 食管靜脈曲張?zhí)自g(shù)
- 裝修施工驗(yàn)收指南
- 建筑工程項(xiàng)目全生命周期管理
- 眼科護(hù)理中的醫(yī)療事故與風(fēng)險(xiǎn)管理
- 年產(chǎn)10萬(wàn)噸聚氯乙烯生產(chǎn)工藝設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 2023年-2024年電子物證專業(yè)考試復(fù)習(xí)題庫(kù)(含答案)
- 某啤酒廠安全現(xiàn)狀評(píng)價(jià)設(shè)計(jì)報(bào)告書(shū)模板
- 汽車電動(dòng)助力轉(zhuǎn)向系統(tǒng)發(fā)展綜述外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯
- Unit 2 Beethoven a remarkable life Extended Reading 公開(kāi)課說(shuō)課課件-2022-2023學(xué)年高中英語(yǔ)牛津譯林版(2020)選擇性必修第一冊(cè)
評(píng)論
0/150
提交評(píng)論