2012年1月9日 星期一

HW3:Color Models



↑這次作業一開始我有跟上..,例如做RG,固定紅色色彩值由上至下從0到255, 固定綠色色彩值由左至右從0到255
TrackBar來控制整個藍色的的值。(另外兩個GB和RB也一樣)
程式碼如下:
for(int i=0;i<255;i++)
{
RG=(Byte *)Image2->Picture->Bitmap->ScanLine[i];
for(int j=0;j<255;j++)
{

RG[j*3]=temp; //藍色的值
RG[j*3+1]=j; //綠色的值
RG[j*3+2]=i; //紅色的值
}

}


Image2->Refresh();




↑這次作業要先將灰階值算出來,
RGB 轉 YUV的公式如下:

Y = ( (  66 * R + 129 * G +  25 * B + 128) >> 8) +  16 
U = ( ( -38 * R -  74 * G + 112 * B + 128) >> 8) + 128
V = ( ( 112 * R -  94 * G -  18 * B + 128)>> 8) + 128
y的值也就是灰階,轉換程式碼如下,


  int grayY = ( (  66 * grayImg[j*3+2] + 129 * grayImg
[j*3+1] +  25 * grayImg[j*3] + 128)>> 8) +  16  ;
//先將R*乘上66加上G乘上129再加上B乘上25加128後向右移8位元最後再加上16
↑接下來點選不同的UV值給它,U是色度,V是濃度。
 
↑最後是將HSI轉換成RGB
H:色相是色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等,依照在上圖的標準色輪上的位置,取0~360度的數值。(也有用到0~100%的方法確定的)
S:飽和度是指色彩的純度,越高色彩越純,低則逐漸變灰,取0~100%的數值。
V:是明度也叫亮度,取0~100%。

沒有留言:

張貼留言