2013-04-22 110 views
-1

我對這些東西很新穎,我已經在C++中實現了一個代碼來從RGB值中查找HSV值。如何繪製使用C++的HSV值

R = 255; 
G = 0; 
B = 0; 

此我得到的HSV價值爲:

H = 0; 
S = 1; 
V = 1; 

不,我正在這裏V= 255VS = 255SH = H/2。我得到正確的hsv值,但我不知道如何繪製他們在24位位圖圖像。我搜索了互聯網,但可以找到機器人。有人能幫助我嗎? Thankx

+1

Windows無法直接顯示HSV值,你就必須給他們再轉換回RGB。 – 2013-04-22 02:55:27

回答

1

大多數圖像格式(包括位圖)都以RGB格式(或BGR格式,取決於endianness)存儲值。在24位位圖的情況下,8位用於紅色,8位用於綠色,8位用於藍色,所以如果您想以這種格式存儲圖像,則必須使用RGB(或在保存之前轉換爲RGB)以使圖像正確着色。現在,如果你不在意圖像是如何出現的,而只是想在圖像的R,G和B通道中存儲H,S和V分量,那麼你可以很容易地做到這一點(只是縮放chanels達到理想的範圍)。因此,對於24位位圖,每個通道8位意味着通道的值介於0和255之間。假設H,S和V在0到1的範圍內,則每個通道乘以255以將其置於該範圍內。

以下是分別存儲在圖像的R,G和B通道中的Stack Overflow標誌的H,S和V值。

HSV in RGB channels example