影像處理後顯示在Image上 圖片有問題 |
答題得分者是:dominicx
|
GN00291313
一般會員 發表:5 回覆:5 積分:2 註冊:2009-04-14 發送簡訊給我 |
這是之前有人發貼http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=91802拿來用,發現圖片呈像怪怪= =a
不知道有人知道怎麼修正嗎? 我已經收尋其他貼似乎沒有答案..... [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] 編輯記錄
|
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
GN00291313
一般會員 發表:5 回覆:5 積分:2 註冊:2009-04-14 發送簡訊給我 |
|
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
|
dominicx
一般會員 發表:6 回覆:10 積分:13 註冊:2007-05-07 發送簡訊給我 |
|
GN00291313
一般會員 發表:5 回覆:5 積分:2 註冊:2009-04-14 發送簡訊給我 |
===================引 用 dominicx 文 章=================== 37~39行改成 ptr[k 2]=source[j][i][0]; ptr[k 1]=source[j][i][1]; ptr[k]=source[j][i][2]; 試看看 ------------------------------------------------------------------------------------------- 感謝大大提供寶貴意見,不過畫面一樣(影像變向而已) 謝謝^^ http://webmail.stut.edu.tw/49312092/p.JPG |
GN00291313
一般會員 發表:5 回覆:5 積分:2 註冊:2009-04-14 發送簡訊給我 |
===================引 用 Ktop_Robot 文 章=================== 提問者您好: 以上回應是否已得到滿意的答覆? 若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然, 將由版主(尚無版主之區域將由副站長或站長)採自由心證,選擇較合適之解答予以結案處理, 被選上之答題者同樣會有加分獎勵,同時發問者將受到扣 1 分的處分。不便之處,請見諒。 有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。 ------------------------------------------------------------------------------------------------------------------------- 影像問題尚未解決,>< |
istillloving
高階會員 發表:33 回覆:182 積分:183 註冊:2008-10-09 發送簡訊給我 |
你沒把程式碼全部貼出來吧......
說真的看不懂你在寫啥..... 尤其forloop 怎麼k的初始位子不一樣 [code cpp] for(k=0,i=Form1->Panel1->Height-1;i>=0;i--) { for(j=0;j<Form1->Panel1->Width;j ) { } } [/code] [code cpp] for(i=0;i<Form1->Panel1->Height;i ) { ptr=(Byte *) BMP1->ScanLine[i]; for(k=0,j=0;j<Form1->Panel1->Width;j ) { } } [/code] 而且你最後載入BMP1 [code cpp] Image1->Picture->Assign(BMP1); [/code] 但是沒看到BMP1有讀取任何東西阿...... 你這問題八成是旗標位子弄錯 給個完整程式碼看看吧 多了解ScanLine[i]; 和 k 在做啥吧 ===================引 用 GN00291313 文 章=================== 這是之前有人發貼http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=91802拿來用,發現圖片呈像怪怪= =a 不知道有人知道怎麼修正嗎? 我已經收尋其他貼似乎沒有答案..... [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 [/code]
------
恩...
編輯記錄
istillloving 重新編輯於 2009-08-02 11:17:34, 註解 無‧
istillloving 重新編輯於 2009-08-02 11:19:03, 註解 無‧ istillloving 重新編輯於 2009-08-02 11:20:10, 註解 無‧ istillloving 重新編輯於 2009-08-02 11:22:05, 註解 無‧ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |