為什麼影像處理後無法顯示在Image上 |
答題得分者是:taishyang
|
paul22235d
一般會員 ![]() ![]() 發表:8 回覆:3 積分:2 註冊:2007-10-14 發送簡訊給我 |
想請問各位,為什麼每次按CapImage的按鈕,都會跳出這個錯誤訊息?先謝謝大家~
[code cpp] HWND hCapWnd1; HWND hCapWnd2; TForm1 *Form1; unsigned char source[240][320][3]; int i, j, k; Byte *ptr; LPVIDEOHDR CaptureData; LRESULT CALLBACK FrameCallBack( HWND hCapWnd1, Longint lpvhdr ) { // To get capture data CaptureData=LPVIDEOHDR(lpvhdr); ptr=CaptureData->lpData; for(k=0,i=Form1->Panel1->Height-1;i>=0;i--) { for(j=0;j<Form1->Panel1->Width;j ) { source[i][j][0]=ptr[k 2]; source[i][j][1]=ptr[k 1]; source[i][j][2]=ptr[k]; k =3; } } capSetCallbackOnFrame(hCapWnd1, NULL); return 0; } ///以上為副函式 void __fastcall TForm1::CapImageClick(TObject *Sender) { capSetCallbackOnFrame(hCapWnd1,&FrameCallBack); for(i=0;i<Form1->Panel1->Height;i ) { ptr=(Byte *) Image1->Picture->Bitmap->ScanLine[i]; for(k=0,j=0;j<Form1->Panel1->Width;j ) { ptr[k 2]=source[i][j][0]; ptr[k 1]=source[i][j][1]; ptr[k]=source[i][j][2]; k =3; } } Image1->Refresh(); } [/code]
------
程式新新新新新手 編輯記錄
paul22235d 重新編輯於 2007-12-19 16:05:03, 註解 無‧
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
paul22235d
一般會員 ![]() ![]() 發表:8 回覆:3 積分:2 註冊:2007-10-14 發送簡訊給我 |
謝謝,已經不會跳出錯誤視窗了,但是Image全都是黑的,也有加PiexlFormat,請問一下,程式上還有盲點嗎?
新加進去的 [code cpp] unsigned char source[240][320][3]; int i, j, k; Byte *ptr; LPVIDEOHDR CaptureData; LRESULT CALLBACK FrameCallBack( HWND hCapWnd1, Longint lpvhdr ) { CaptureData=LPVIDEOHDR(lpvhdr); ptr=CaptureData->lpData; for(k=0,i=Form1->Panel1->Height-1;i>=0;i--) { for(j=0;j<Form1->Panel1->Width;j ) { source[i][j][0]=ptr[k 2]; source[i][j][1]=ptr[k 1]; source[i][j][2]=ptr[k]; k =3; } } capSetCallbackOnFrame(hCapWnd1, NULL); return 0; } void __fastcall TForm1::CapImageClick(TObject *Sender) { Graphics::TBitmap *BMP1 = new Graphics::TBitmap(); //新加進去的 BMP1->PixelFormat = pf24bit; //新加進去的 BMP1->Width = Panel1->Width; //新加進去的 BMP1->Height = Panel1->Height; //新加進去的 capSetCallbackOnFrame(hCapWnd1,&FrameCallBack); for(i=0;i<Form1->Panel1->Height;i ) { ptr=(Byte *) BMP1->ScanLine[i]; for(k=0,j=0;j<Form1->Panel1->Width;j ) { ptr[k 2]=source[i][j][0]; ptr[k 1]=source[i][j][1]; ptr[k]=source[i][j][2]; k =3; } } Image1->Picture->Assign(BMP1); } [/code]
------
程式新新新新新手
編輯記錄
paul22235d 重新編輯於 2007-12-20 11:50:27, 註解 無‧
paul22235d 重新編輯於 2007-12-20 11:51:47, 註解 無‧ paul22235d 重新編輯於 2007-12-20 11:53:13, 註解 無‧ |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
paul22235d
一般會員 ![]() ![]() 發表:8 回覆:3 積分:2 註冊:2007-10-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |