• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            首先RGB空間與HSV空間都是圖像的顏色空間模型。RGB色彩模式使用RGB模型為圖像中每一個像素的RGB分量分配一個0~255范圍內的強度值。RGB圖像只使用三種顏色,就可以使它們按照不同的比例混合,在屏幕上重現16777216種顏色。在 RGB 模式下,每種RGB 成分都可使用從 0(黑色)到 255(白色)的值。 例如,亮紅色使用 R 值 255、G 值 0 和 B 值 0。 當所有三種成分值相等時,產生灰色陰影。 當所有成分的值均為 255 時,結果是純白色;當該值為 0 時,結果是純黑色。HSV 模型通常用于計算機圖形應用中。在用戶必須選擇一個顏色應用于特定圖形元素各種應用環境中,經常使用 HSV 色輪。在其中,色相表示為圓環;可以使用一個獨立的三角形來表示飽和度和明度。典型的,這個三角形的垂直軸指示飽和度,而水平軸表示明度。在這種方式下,選擇顏色可以首先在圓環中選擇色相,在從三角形中選擇想要的飽和度和明度。

            HSV 模型的另一種可視方法是圓錐體。在這種表示中,色相被表示為繞圓錐中心軸的角度,飽和度被表示為從圓錐的橫截面的圓心到這個點的距離,明度被表示為從圓錐的橫截面的圓心到頂點的距離。某些表示使用了六棱錐體。這種方法更適合在一個單一物體中展示這個 HSV 色彩空間;但是由于它的三維本質,它不適合在二維計算機界面中選擇顏色。
            HSV 色彩空還可以表示為類似于上述圓錐體的圓柱體,色相沿著圓柱體的外圓周變化,飽和度沿著從橫截面的圓心的距離變化,明度沿著橫截面到底面和頂面的距離而變化。這種表示可能被認為是 HSV 色彩空間的更精確的數學模型;但是在實際中可區分出的飽和度和色相的級別數目隨著明度接近黑色而減少。此外計算機典型的用有限精度范圍來存儲 RGB 值;這約束了精度,再加上人類顏色感知的限制,使圓錐體表示在多數情況下更實用。
            兩類空間的轉換
            從 RGB 到 HSL 或 HSV 的轉換
            設 (r, g, b) 分別是一個顏色的紅、綠和藍坐標,它們的值是在 0 到 1 之間的實數。設 max 等價于 r, g 和 b 中的最大者。設 min 等于這些值中的最小者。要找到在 HSL 空間中的 (h, s, l) 值,這里的 h ∈ [0, 360)是角度的色相角,而 s, l ∈ [0,1] 是飽和度和亮度,計算為:

             

             


             

             

            void Rgb2Hsv(float R, float G, float B, float& H, float& 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 
            = R>G?G:R;  
                min 
            = tmp>B?B:tmp;  
                tmp 
            = R>G?R:G;  
                max 
            = tmp>B?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;  
                    H 
            = 0;  
                    
            return;  
                }  
                
            if (delta == 0){  
                    H 
            = 0;  
                    
            return;  
                }  
                
            else if(R == max){  
                    
            if (G >= B)  
                        H 
            = (G - B) / delta; // between yellow & magenta   
                    else  
                        H 
            = (G - B) / delta + 6.0;  
                }  
                
            else if( G == max )  
                    H 
            = 2.0 + ( B - R ) / delta; // between cyan & yellow   
                else if (B == max)  
                    H 
            = 4.0 + ( R - G ) / delta; // between magenta & cyan   
                H *= 60.0// degrees   
            }  

            從 HSV 到 RGB 的轉換
            類似的,給定在 HSV 中 (h, s, v) 值定義的一個顏色,帶有如上的 h,和分別表示飽和度和明度的 s 和 v 變化于 0 到 1 之間,在 RGB 空間中對應的 (r, g, b) 三原色可以計算為:

            對于每個顏色向量 (r, g, b),

             

            国产精品美女久久久久| 欧美伊人久久大香线蕉综合69| 97精品依人久久久大香线蕉97| 亚洲中文久久精品无码| www.久久热.com| 亚洲精品高清一二区久久| 一本色道久久99一综合| 99久久国产免费福利| 大香伊人久久精品一区二区| 91精品国产高清91久久久久久| 久久男人AV资源网站| 久久精品亚洲中文字幕无码麻豆| 97久久精品人人澡人人爽| 国产69精品久久久久APP下载| 国产一级持黄大片99久久| 欧美日韩久久中文字幕| 99久久精品免费国产大片| 色偷偷久久一区二区三区| 久久久久久青草大香综合精品| 人妻丰满AV无码久久不卡| 中文字幕久久精品| 精品久久久久久国产免费了| 久久99国产精品久久| 亚洲精品乱码久久久久66| 久久久久久久综合狠狠综合| 久久99精品久久久久久齐齐| 久久99中文字幕久久| 久久人人爽人人爽人人AV东京热 | 久久精品国产清自在天天线| 久久久久AV综合网成人| 久久水蜜桃亚洲av无码精品麻豆| 久久久久国产精品人妻| 亚洲国产精品无码久久青草| 久久无码精品一区二区三区| 久久亚洲国产成人影院网站| 久久精品国产亚洲精品| 中文字幕亚洲综合久久2| 久久亚洲高清观看| 久久九九久精品国产| 久久九九免费高清视频| 日韩欧美亚洲国产精品字幕久久久 |