• <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),

             

            久久www免费人成精品香蕉| 伊人久久综合成人网| 无码精品久久久久久人妻中字| 亚洲一区精品伊人久久伊人| 久久综合亚洲鲁鲁五月天| 九九精品99久久久香蕉| 久久se精品一区二区| 亚洲国产成人久久一区久久| 亚洲AV成人无码久久精品老人| 日本久久久精品中文字幕| 欧美久久久久久午夜精品| 亚洲国产精品久久电影欧美| 久久综合综合久久97色| 久久国产劲爆AV内射—百度| 久久精品人人做人人爽电影| 狠狠色丁香婷婷久久综合五月| 精品精品国产自在久久高清| 精品久久久久久久久免费影院| 91精品国产91久久久久久| 色综合久久中文字幕无码| 亚洲伊人久久综合中文成人网 | 久久综合九色综合精品| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久精品无码专区免费青青| 亚洲精品无码久久久久AV麻豆| 91精品国产乱码久久久久久| 国内精品人妻无码久久久影院导航| 国产精品久久久久乳精品爆| 国内精品久久久人妻中文字幕 | 99久久99这里只有免费费精品| 狠狠色丁香久久婷婷综合图片| 久久人人爽人人澡人人高潮AV| 天天久久狠狠色综合| 亚洲综合婷婷久久| 久久久久久久综合日本亚洲| 国产精品久久久久久福利漫画| 国产精品久久久久久吹潮| 99久久人妻无码精品系列| 久久精品国产91久久综合麻豆自制| 精品久久久久久久| 99久久99久久精品国产|