攝影機的Preview與Overlay Mode的問題 |
答題得分者是:swindler
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
大家好:
若有使用vfw.h擷取攝影機影像的人都一定有用過這兩個Mode的經驗
一般來說WebCam (USB介面)是不支援Overlay Mode
而要用到此Mode就要用影像擷取卡介面的攝影機
問題是雖然顯示的速度非常之快(不論影像大小為何)
但卻沒有辦法正確或即時的將畫面擷取下來
EX.
capSetCallbackOnFrame (失效,無法擷取) DC (失效,無法擷取) BitBlt (失效,無法擷取) 剪貼簿 (慢) capFileSaveDIB (慢,畫面停頓) TMemoryStream (慢,畫面停頓)請問該如何正確或即時的將如此快速的畫面擷取下來呢? 謝謝大家 發表人 - |
MilesWamg
一般會員 發表:18 回覆:37 積分:11 註冊:2003-02-07 發送簡訊給我 |
小弟的想法
以前工作時使用BCB作影像擷取時,
改寫以下之 CALLBACK function
LRESULT CALLBACK capVideoStreamCallback(HWND hWnd,LPVIDEOHDR lpVHdr)
將影像儲存於記憶體中,再壓成avi檔,
可以做到每秒30個frame,
這是使用CALLBACK function,實作沒問題ㄝ,
而一般我們做vfw時使用BCB的TTimer物件作一計時中斷作Capture & Display
的工作,此一常態工作花的時間需要注意,此如需要於30Frames/sec
模式下工作須於33ms以內完成。一般pc都能勝任
但TTimer本身即有限制(最小中斷時間>50ms,也就是說 顯示率< 20Frames/Sec)
實驗上而使用擷取卡與webcam去用TMemoryStream 可達每秒28-30張(注意輸出pixelformat格式須與webcam pixelformat一致,否則delay)而使用TThread來作一中斷,如果系統很忙Thread沒有分配到時間也慢
而preview其擷取路徑經由cpu再將資料送至顯示卡影像記憶體中,
而overlap就經由類似DMA直接將資料送至顯示卡影像記憶體中所以一定快
不知版大需求是多快呢?這是小弟的一點心得 發表人 -
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
swindler
一般會員 發表:13 回覆:22 積分:17 註冊:2003-01-08 發送簡訊給我 |
恩 之前我也卡在類似問題
後來在找到一張卡 提供給做類似視訊研究的參考
典通公司有一張S404(他網站沒放 可電話詢問)
4CH可傳入120張影像進來(Preview模式)
含稅約5000 (我覺得很便宜 之前問的價錢都貴的離譜 且不合研究所需)
不過沒SDK 我以此測試我的程式
可同時抓到多個頻道影像並顯示出來
我目前可一秒擷取含壓縮70幾FRAME 持續改進中
我跟工程師聊天 像一般多頻道或FPS不足 很可能是韌體寫的不好
一般卡不支援多擷取裝置 多擷取裝置很容易造成衝突 造成效能降低
其軔體需額外處理多通道擷取
我們才能使用VFW或DirectShow呼叫
小的這陣子的研究心得 跟大家分享
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
swindler
一般會員 發表:13 回覆:22 積分:17 註冊:2003-01-08 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |