使用TvideoCapture元件擷取ccd的問題 |
尚未結案
|
988078
一般會員 發表:23 回覆:15 積分:7 註冊:2005-03-02 發送簡訊給我 |
|
poaivy
中階會員 發表:40 回覆:78 積分:53 註冊:2004-08-09 發送簡訊給我 |
//-------------一開機就執行 config=new TGraphConfig(); TStringList* s; TListBox *bb=new TListBox(this); bb->Parent=Form1; bb->Visible=false; s = GetVideoDevicesList(true); try { if(s->Count==0){ShowMessage("no camera");return;} bb->Items->Assign(s); Edit1->Text=(bb->Items->Strings[0] ); } __finally { delete s; delete bb; } config->WantPreview = true; config->WantCapture = true; config->WantBitmaps = true; config->WantDVAudio = false; config->DoPreallocFile = false; config->UseTempFile = false; config->WantAudio = false; config->PreallocFileSize = 1; // config->CaptureFileName = Form2->feCaptureFile->Text; // config->TempCaptureFileName = Form2->feTempFile->Text; config->PixelFormat= pf24bit; config->VCapSource =Edit1->Text; if (!Form1->cap->Init()) { ShowMessage("Can't init capture!"); Application->Terminate(); }; Form1->cap->RestoreGraph(config);放在FormCreate裡面 試試看吧!!先拉一個EDIT元件去看所選的裝置 有問題在指教 |
988078
一般會員 發表:23 回覆:15 積分:7 註冊:2005-03-02 發送簡訊給我 |
|
poaivy
中階會員 發表:40 回覆:78 積分:53 註冊:2004-08-09 發送簡訊給我 |
|
988078
一般會員 發表:23 回覆:15 積分:7 註冊:2005-03-02 發送簡訊給我 |
|
poaivy
中階會員 發表:40 回覆:78 積分:53 註冊:2004-08-09 發送簡訊給我 |
|
988078
一般會員 發表:23 回覆:15 積分:7 註冊:2005-03-02 發送簡訊給我 |
謝謝你^^
還在研究~~
那請問~~
我把之前用vfw擷取部份改成用TVideocapture來做~
請問以下是哪裡出了問題?
[C Error] Unit1.cpp(12): E2209 Unable to open include file 'GraphConfig.h'
[C Error] Unit1.cpp(331): E2451 Undefined symbol 'config'
[C Error] Unit1.cpp(509): E2451 Undefined symbol 'config' 高高屋海苔
------
高高屋海苔 |
KENI_LIN
中階會員 發表:86 回覆:267 積分:90 註冊:2004-05-31 發送簡訊給我 |
|
988078
一般會員 發表:23 回覆:15 積分:7 註冊:2005-03-02 發送簡訊給我 |
|
poaivy
中階會員 發表:40 回覆:78 積分:53 註冊:2004-08-09 發送簡訊給我 |
|
dragonhippopdc
一般會員 發表:45 回覆:51 積分:19 註冊:2005-01-15 發送簡訊給我 |
請問各位大大~如果用這個方式來擷取ccd的話有辦法抓它的frame來做處理嗎~
有辦法使用類似以下這段code去直接抓ccd內的資料嗎~而不用去抓它已經顯示到image上的圖~因為這樣處理起來會比較快
LRESULT CALLBACK FrameCallBack( HWND hwnd, Longint lpvhdr ) { static BITMAPINFOHEADER BitmapHead; static BITMAPINFO BitmapInfo; static BITMAPFILEHEADER BitmapFileHead; CAPSTATUS status; int BIHsize, byte; Byte *ptr; TMemoryStream *stream = new TMemoryStream; VideoStr=LPVIDEOHDR(lpvhdr); capGetStatus( ghCapWnd, &status, sizeof(status) ) ; BIHsize=capGetVideoFormatSize( ghCapWnd ); capGetVideoFormat( ghCapWnd, &BitmapHead, BIHsize); BitmapInfo.bmiHeader=BitmapHead; stream->Size=sizeof(BitmapFileHead) sizeof(BitmapHead) BitmapHead.biSizeImage; BitmapFileHead.bfType=0x4D42; BitmapFileHead.bfSize=stream->Size; BitmapFileHead.bfOffBits=sizeof(BitmapFileHead) sizeof(BitmapHead); // ???imagedata?? stream->Position=0; stream->WriteBuffer( &BitmapFileHead, sizeof(BitmapFileHead) ); stream->WriteBuffer( &BitmapInfo, sizeof(BitmapInfo) ); (void*)ptr=stream->Memory; ptr = BitmapFileHead.bfOffBits; Move( VideoStr->lpData, ptr, BitmapHead.biSizeImage); stream->Position=0; Form1->Image1->Picture->Bitmap->LoadFromStream( stream ); delete( stream ); capSetCallbackOnFrame (ghCapWnd, NULL); return(0); } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |