線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2745
推到 Plurk!
推到 Facebook!

BCB WEBCAM 能否背景執行

缺席
rick7712
一般會員


發表:3
回覆:1
積分:0
註冊:2010-03-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-03-24 14:35:48 IP:140.115.xxx.xxx 訂閱
遇到的問題:
我的程式要從WebCam的影像擷取資料 然後作影像處理
如果我將顯示Webcam影像的視窗關掉 主程式就接不到影像資料了!!

我的程式有兩個form一個是主要的Form1和顯示目前視訊影像的Form2
但是關於擷取視訊影像的code都在Form1的cpp , Form2只是顯示而已
我的問題就是 Form2上顯示視訊影像的Panel必須要"有一點在螢幕上露出來"
才能讓主程式接到影像
可是如果Panel完全被Form1蓋住 主程式就接不到影像了...
希望得到的正確結果:
因為到時候是要讓Form1全螢幕執行 不能顯示Form2...
希望能在不顯示那個Panel的情況下 還能讓視訊讀到畫面~
開發平台: (例: VC or gcc/g or Dev-C , Windows or Linux)
Borland C Builder
相關CODE:

以下的程式碼都在Form1的cpp

//我的程式是要讓視訊抓到紅外線燈
LRESULT CALLBACK VideoData( HWND hWnd,LPVIDEOHDR lpVHdr)
{
static int i = 0;
for (int y = 0; y for (int x = 0; x B1[x][y] =(int)lpVHdr->lpData[3 * ( (ResolutionHeight-1-y)*ResolutionWidth x )]; \// Blue
G1[x][y] =(int)lpVHdr->lpData[3 * ( (ResolutionHeight-1-y) * ResolutionWidth x ) 1];\// Green
R1[x][y] =(int)lpVHdr->lpData[3 * ( (ResolutionHeight-1-y) * ResolutionWidth x ) 2];\ // Red
if (R1[x][y] > threshold)
{
DrawBOX->StatusBar1->Panels->Items[1]->Text="攝影機座標:" IntToStr(x) "," \IntToStr(y);
}
}
}
// DrawBOX->LabelRGB->Caption = i ;
return (LRESULT) TRUE;
}

//這是一個開啟視訊的按鈕
void __fastcall TDrawBOX::OpenButtonClick(TObject *Sender)
{
capDriverDisconnect(capw1);

capw1=capCreateCaptureWindow( "My cap1",
WS_CHILD | WS_VISIBLE,
0,0,ShowInformation->Panel1->Width,
ShowInformation->Panel1->Height, //ShowInformation就是Form2
ShowInformation->Panel1->Handle,
0);

bool connect_flag=false;
for( int i = 0; i < 10; i )
{
connect_flag = capDriverConnect( capw1, i );
if(connect_flag) break;
}
if(!connect_flag)
{
ShowMessage("攝影機A連接失敗..");
capDriverDisconnect(capw1);
return;
}
capGrabFrameNoStop(capw1);
capOverlay(capw1,true);
capPreview(capw1,true);
capPreviewScale(capw1,true);
capPreviewRate(capw1, 1000/30);
capSetCallbackOnFrame(capw1, &VideoData);
ShowInformation->Show();
}

謝謝!!


------
前人種樹 後人乘涼
我不喜歡乘涼 我喜歡種樹
g9412747
初階會員


發表:3
回覆:28
積分:36
註冊:2009-02-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-03-25 10:50:48 IP:59.120.xxx.xxx 訂閱
說不定可以將在 panel 上 Display 的Camera畫面
修改至 Display 到 Image 元件上可解決你說的問題!
請參考這篇http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=25947

g9412747
初階會員


發表:3
回覆:28
積分:36
註冊:2009-02-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-03-25 11:42:18 IP:59.120.xxx.xxx 訂閱
突然想到 , 另一種可以做到的方法 , 你可以透過 PrintWindow 這個API
可以做到存在於背景 , 又可以擷取背景或是隱藏的畫面資訊的功能 , 詳細用法請查閱 msdn
系統時間:2024-04-26 0:38:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!