關於USB CCD影像處理的一些問題... |
尚未結案
|
Fusheng
一般會員 發表:4 回覆:6 積分:2 註冊:2005-08-03 發送簡訊給我 |
問題一:
我使用的USB CCD 規格表上說最快每秒可擷取30張
我處理後每秒只有十張左右(計算畫面上四種顏色的平均座標)
以各位大大的經驗來看,我寫的程式是否還有改進的空間呢? 問題二:
若使用一般的CCD Camera 影像擷取卡....速度是否會改進呢? 問題三:
使用USB CCD 與 CCD 影像擷取卡 , 哪個佔較少的CPU資源呢?
==
因手邊沒影像擷取卡,所以才考慮要不要改成這個 ^^" 感謝各位的幫忙 ~~ 發表人 - Fusheng 於 2005/08/06 01:37:25
|
arisaka_matsuri
高階會員 發表:25 回覆:205 積分:231 註冊:2003-10-19 發送簡訊給我 |
|
Fusheng
一般會員 發表:4 回覆:6 積分:2 註冊:2005-08-03 發送簡訊給我 |
每秒30張我想是指320*240的情況下...
我是把設定調成640*480...不過速度應該不會掉太多...
想想....還是我自己寫的有問題
貼一下我寫的程式
麻煩各位一下,要怎麼改,每秒的張數才會增加呢?
(順便問一下,我跑這個程式的時候,佔了CPU40%的資源耶...這樣算正常嗎?)
===
以下是程式碼...參考精華區中多位大大的寫法...
//---------------------------------------------------------------------------
#include發表人 - Fusheng 於 2005/08/07 00:32:54 |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
Fusheng你好:
你的做法是把圖片讀入MemoryStream,之後又讀進Bitmap,最後又用Scanline,花的時間當然會多不少。我的做法是直接讀影像至一個記憶體空間,之後直接處理。以下是我的做法的片段....,我想速度應該會差不少。
LRESULT CALLBACK TCCDPanel::capVideoStreamCallback(HWND hWnd,LPVIDEOHDR lpVHdr) { TCCDPanel* Panel = (TCCDPanel*)GetWindowLong(hWnd,GWL_USERDATA); if(Panel) { size_t size = lpVHdr->dwBufferLength; unsigned char* pr = Panel->r.begin(); unsigned char* pg = Panel->g.begin(); unsigned char* pb = Panel->b.begin(); unsigned char* pi = (unsigned char*)lpVHdr->lpData; unsigned char* pi_end = pi size; while(pi < pi_end) { *pr = *pi; pi; pr; *pg = *pi; pi; pg; *pb = *pi; pi; pb; } Panel->updated = true; } return true; }發表人 - pwipwi 於 2005/08/07 00:38:32 |
Fusheng
一般會員 發表:4 回覆:6 積分:2 註冊:2005-08-03 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
Fusheng
一般會員 發表:4 回覆:6 積分:2 註冊:2005-08-03 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |