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

             

            无码精品久久久久久人妻中字| 亚洲国产一成人久久精品| 久久免费99精品国产自在现线 | 久久亚洲国产最新网站| 精品熟女少妇AV免费久久| 国内精品久久国产大陆| 亚洲国产成人久久笫一页| 久久国产精品久久精品国产| 三级三级久久三级久久| 91精品国产高清久久久久久91| 国产欧美久久久精品影院| 天天爽天天爽天天片a久久网| 一本色道久久综合狠狠躁篇| 99久久国产热无码精品免费久久久久| 伊人情人综合成人久久网小说| 久久91亚洲人成电影网站| 久久久久se色偷偷亚洲精品av| 久久无码人妻精品一区二区三区 | 无码人妻精品一区二区三区久久久 | 久久综合九色综合网站| 亚洲国产综合久久天堂| 欧美亚洲国产精品久久蜜芽| 人妻无码αv中文字幕久久琪琪布| 无码精品久久一区二区三区| 亚洲综合精品香蕉久久网97| 国产精品久久久久9999| 久久久久久久久无码精品亚洲日韩| 国产99久久久国产精品小说| 久久综合给合综合久久| 久久久久亚洲AV成人网人人软件 | 99精品久久久久中文字幕| 亚洲AV无码久久精品蜜桃| 久久久久久久女国产乱让韩| 久久精品人人做人人爽电影| 亚洲精品无码久久久久去q | 日日狠狠久久偷偷色综合96蜜桃| 久久精品无码一区二区三区日韩| 久久国产高清一区二区三区| 久久亚洲国产精品123区| 色99久久久久高潮综合影院| 中文字幕无码久久精品青草|