• <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成人免费精品| 久久综合给合综合久久| 亚洲中文字幕久久精品无码APP| 99久久精品费精品国产一区二区| 青青青青久久精品国产h| 日韩精品无码久久一区二区三| 色狠狠久久AV五月综合| 国产亚洲美女精品久久久| 久久精品亚洲精品国产色婷| 久久亚洲中文字幕精品有坂深雪| 精品久久久久久久无码 | 久久99国产精品久久99| 久久精品国产亚洲网站| 手机看片久久高清国产日韩 | 俺来也俺去啦久久综合网| 精品久久久久久| 婷婷伊人久久大香线蕉AV| 久久国产香蕉一区精品| 成人综合伊人五月婷久久| 久久综合色老色| 久久一区二区三区99| 狠狠色丁香婷婷久久综合不卡| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久精品无码一区二区app| 久久综合狠狠综合久久| 精品久久久久久国产| 午夜精品久久影院蜜桃| 久久精品国产福利国产琪琪| 热99re久久国超精品首页| 精品久久久无码人妻中文字幕豆芽| 日产精品久久久久久久| 精品久久久一二三区| 国内精品伊人久久久久妇| 亚洲国产日韩欧美久久| 亚洲精品无码久久不卡| 久久国产美女免费观看精品|