第五次作業是色彩模型的實作
色彩模型
分別給定B、G和R,下圖為給定BGR為0的值,左邊為BG的混合,中間為BR的混合,右圖則為GR的混合。剛開始都為0,所以每張影像的左上角都為黑色。
下圖為當RGB的值設為255(最大)時所呈現得影像。最後的點都為255,所以每張影像的右下角都為白色。
程式碼:
//最左邊的影像為例
for(j=0 ; j<iImageHeight ; j++)
{
bPtrImageRow = (Byte*)Image1->Picture->Bitmap->ScanLine[j];
for(i=0 ; i<iImageWidth ; i++)
{
bPtrImageRow[3*i] = i;
bPtrImageRow[3*i+1] = j;
bPtrImageRow[3*i+2] = ScrollBar1->Position; //紅色值
}
}
================================================================灰階影像
此次是以這影像作範例
下圖為彩色影像轉換成灰階影像的實作
程式碼:
for(j=0;j<Image5->Picture->Height;j++)
{
bPtrImageRow1 = (Byte *)Image5->Picture->Bitmap->ScanLine[j];
bPtrImageRow2 = (Byte *)Image6->Picture->Bitmap->ScanLine[j];
for(i=0;i<Image5->Picture->Width;i++)
{
ib = bPtrImageRow1[i*3]; //B的值
ig = bPtrImageRow1[i*3+1]; //G的值
ir = bPtrImageRow1[i*3+2]; //R的值
// Y = ( 66 * R + 129 * G + 25 * B + 128 ) >> 8 + 16
bPtrImageRow2[i*3] = (66*ir+129*ig+25*ib+128)>>8+16;
}
}
================================================================
YUV
================================================================
這次的作業最簡單的部分是色彩模型的實作,因為只要一個色彩會做另外兩個的彩也會,該開始還不太懂要如何下手,老師一指點想一下才發現其實不難,接這灰階影像要搞懂RGB的值乘上多少會變成灰階值,接著計算三個色彩的值帶入公式後,就可以完成灰階影像。還有我覺得這次的作業有比前幾次難上許多,不過老師指點,同學討論還是可以完成這次作業的。
沒有留言:
張貼留言