利用HDC連續擷取圖之問題~~ |
缺席
|
hilton1233
一般會員 發表:7 回覆:1 積分:1 註冊:2007-07-14 發送簡訊給我 |
以下程式主要是利用HDC連續擷取3張圖片,在這之前有先開啟視訊,想取每張即時圖片之每一固定行像素值,要作成資料庫,但是程式執行時,3張圖片所取下來的像素值都一模一樣(利用MEMO來觀察),並且開始擷取時,視訊畫面會停下來,我猜可能是畫面停下來的關係,所以才都一樣,想問的是如何才能取圖片時,視訊畫面保持動作呢!?? <textarea class="cpp" rows="10" cols="90" name="code">視訊已開啟,接著是下面取圖當資料庫程式~~
for(int i=0;i<3;i ) //動態取一到三十張圖
{
AnsiString bmpFileName;
Byte *ptr1;
Graphics::TBitmap *Bitmap1=new Graphics::TBitmap();
Bitmap1->Width=Panel1->Width;
Bitmap1->Height=Panel1->Height;
Bitmap1->PixelFormat=pf24bit;//有可能要改這邊
//capGrabFrameNoStop(FVideoCapWinH);
TCanvas *csBuf=new TCanvas;
HDC hDC=GetDC(Panel1->Handle);
csBuf->Handle=hDC;
Bitmap1->Canvas->CopyRect(Rect(0, 0, Bitmap1->Width, Bitmap1->Height),
csBuf, Rect(0, 0, Panel1->Width, Panel1->Height)); //把Panel1所顯示的影像畫到Bitmap1 TCanvas *csBuf = new TCanvas;
//Graphics::TBitmap *Bitmap2=new Graphics::TBitmap();
//Bitmap2->PixelFormat=pf24bit;//有可能要改這邊
//Bitmap2->Assign(Bitmap1);
switch(i)
{
case 0:
for(int j=0;j
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
試試看在主要的 for loop 前加上 Application->ProcessMessages() 如
<textarea class="cpp" rows="10" cols="90" name="code">for(int j=0;j 因為在迴圈內,處理控制權沒有釋出,一定要等它作完才會換別人作。 強力推薦 ShareMe 免費網路硬碟 VMASK VMIO-Server/SECS/GEM dllee's blog dllee's StatPlus
------
http://www.ViewMove.com |
hilton1233
一般會員 發表:7 回覆:1 積分:1 註冊:2007-07-14 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
減少 Application->ProcessMessages() 的次數,
例如 if(j0==0)Application->ProcessMessages(); // 比之前來說,每100次才作 1 次 其他的方法,可以使用不同的執行緒處理,或是其他可以分工或多工的方式都行。 強力推薦 ShareMe 免費網路硬碟 VMASK VMIO-Server/SECS/GEM dllee's blog dllee's StatPlus
------
http://www.ViewMove.com |
johnpage
初階會員 發表:0 回覆:79 積分:40 註冊:2004-08-07 發送簡訊給我 |
|
licheer
一般會員 發表:23 回覆:20 積分:8 註冊:2007-08-19 發送簡訊給我 |
寫個 function
然後在 loop 裡 call 它 也能有一樣的效果 呵呵~ 不過我還沒搞懂為何要這樣寫 [code cpp] void DoEvents(int nCount) //nCount:doevent 多少次 { MSG msg; for (int i = 0; i < nCount; i ) { while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } } } [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |