影像的問題? |
缺席
|
encoref70036
一般會員 發表:29 回覆:47 積分:15 註冊:2011-05-18 發送簡訊給我 |
請問一段程式碼
TMDIChild *Child; Child = (TMDIChild *)ActiveMDIChild; float Y_value,U_value,V_value; Byte *Yptr,*Uptr,*Vptr; int w=Child->Image1->Picture->Bitmap->Width; int h=Child->Image1->Picture->Bitmap->Height; Child->Image1->Picture->Bitmap->PixelFormat=pf24bit; Graphics::TBitmap *Ybmp = new Graphics::TBitmap(); Ybmp->Width=w; Ybmp->Height=h; Ybmp->PixelFormat=pf24bit; Graphics::TBitmap *Ubmp = new Graphics::TBitmap(); Ubmp->Width=w; Ubmp->Height=h; Ubmp->PixelFormat=pf24bit; Graphics::TBitmap *Vbmp = new Graphics::TBitmap(); Vbmp->Width=w; Vbmp->Height=h; Vbmp->PixelFormat=pf24bit; Ybmp->Assign(Child->Image1->Picture->Bitmap); Ubmp->Assign(Child->Image1->Picture->Bitmap); Vbmp->Assign(Child->Image1->Picture->Bitmap); for (int y=0; y Yptr =(Byte*)Ybmp->ScanLine[y]; Uptr =(Byte*)Ubmp->ScanLine[y]; Vptr =(Byte*)Vbmp->ScanLine[y]; for (int x=0; x Y_value = 0.114*Yptr[x*3] 0.587*Yptr[x*3 1] 0.299*Yptr[x*3 2]; Y_value = 0.5; Yptr[x*3]=Yptr[x*3 1]=Yptr[x*3 2] = Y_value; U_value = 0.5*Uptr[x*3]-0.33126*Uptr[x*3 1]-0.16874*Uptr[x*3 2];//Cb if (U_value > 0.0) U_value = 0.5; else if (U_value <0.0) U_value -=0.5; U_value =128.5; if (U_value > 255.0) U_value=255.; if (U_value < 0.0) U_value=0; Uptr[x*3]=Uptr[x*3 1]=Uptr[x*3 2] = U_value; V_value = -0.08131*Vptr[x*3]-0.41869*Vptr[x*3 1] 0.5*Vptr[x*3 2];//Cr //if (V_value > 0.0) V_value = 0.5; //else if (V_value <0.0) V_value -=0.5; V_value =128.5; if (V_value > 255.0) V_value=255.; if (V_value < 0.0) V_value=0; Vptr[x*3]=Vptr[x*3 1]=Vptr[x*3 2] = V_value; } } Child->Image1->Canvas->Draw(0,0,Ubmp); 如果不加粗體字那句 影像是全黑的 加了以後 影像就正常了 請問粗體字那句是做什麼用的呢? 還有請問一下 這段是不是可以不用加 if (U_value > 255.0) U_value=255.; if (U_value < 0.0) U_value=0; 因為 Uptr[x*3]是24位元 所以顏色有2的24次方 所以如果要加 是上限定2的24次方嗎? 感恩~ 編輯記錄
encoref70036 重新編輯於 2011-08-13 21:18:14, 註解 無‧
|
encoref70036
一般會員 發表:29 回覆:47 積分:15 註冊:2011-05-18 發送簡訊給我 |
我找到資料 維基上也有 +128.5那個好像是公式 讓算出來的值都在0~255的樣子 資料如下
http://www.wretch.cc/blog/killman/7147165 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |