擷取的視訊畫要如何來做比對? |
尚未結案
|
gavinj123
初階會員 發表:88 回覆:48 積分:27 註冊:2002-10-15 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
ohnini
一般會員 發表:4 回覆:8 積分:7 註冊:2002-04-05 發送簡訊給我 |
|
ufstep
一般會員 發表:8 回覆:11 積分:3 註冊:2002-04-14 發送簡訊給我 |
引言: gavinj123您好: 1. 先儲存一張[乾淨]的背景畫面 2. 擷取前景畫面 3. 統計差量像素值,並設一臨界值,大於此臨界值便為移動偵測的準則 順心 <>~我也是在學習的階段,所以請您多多見諒與指教~> 發表人 - >>< face="Verdana, Arial, Helvetica">想請教一下為何我擷取的兩張畫面永遠都是一樣的呢? 程式如下: LRESULT CALLBACK FrameCallBack( HWND hCapWnd, Longint lpvhdr ) { //---------前面stream的設定略過---------- Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Graphics::TBitmap *Bmp2 = new Graphics::TBitmap(); Bmp->PixelFormat=pf24bit; stream->Position=0; Bmp->LoadFromStream(stream); //先存一張背景畫面 /* Sleep(30); <-------Delay一段時間再擷取Frame2(但不管Delay多久還是一樣ㄝ) stream->Position=0; Bmp2->LoadFromStream(stream); //再存一張前景畫面 for ( y = 0; y < MainForm->Image1->Height; y ) //統計兩個Frame像素質 { ptr1 = (Byte *)Bmp->ScanLine[y]; ptr2 = (Byte *)Bmp2->ScanLine[y]; for ( x = 0; x < MainForm->Image1->Width; x ) { a_pic = (ptr1[x*3] ptr1[x*3 1] ptr1[x*3 2])/3; b_pic = (ptr2[x*3] ptr2[x*3 1] ptr2[x*3 2])/3; aval[x][y] =a_pic; bval[x][y] =b_pic; } } if( memcmp( aval, bval, sizeof(bval[x][y]) ) == 0 ) MainForm->Label4->Caption="同一張圖形"; else MainForm->Label4->Caption="不同圖形"; }每次抓都是同一張圖形,是因為用memcmp比對方式錯誤嗎? 有錯請指證謝謝~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |