全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2042
推到 Plurk!
推到 Facebook!

兩台ccd同時使用問題

答題得分者是:cmf
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-26 17:19:45 IP:202.39.xxx.xxx 未訂閱
我有兩台ccd想作程式自動切換,但vfw.h提供的切換對話視窗是要手動切換, 請問要使用那一個函數才能作切換。 我試過capDriverConnect(hndVideo, SelectedDevice); 然後改變SelectedDevice的值,可是始終無效,只能抓到第一台ccd 也就是SelectedDevice=0才有效,請問我應該作如何設定?
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-26 20:00:00 IP:61.225.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25955    
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-27 08:48:09 IP:202.39.xxx.xxx 未訂閱
謝謝,這篇文章和這個站有關ccd我都看過後,而我要的不只是顯示ccd名稱而以,而是該如何切換ccd,其中使用的函數是那一個。
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-27 11:08:11 IP:61.216.xxx.xxx 未訂閱
int i; char name[10][80]; char ver[10][80]; AnsiString s,name1,ver1; TMenuItem* NewItem;    for (i=0;i<=9;i++) { if ( capGetDriverDescription( i,name[i],80,ver[i],80) ) { name1=name[i]; ver1=ver[i]; s="Driver="+name1+"Ver="+ ver1;    capCreateCaptureWindow("My Capture Window", WS_VISIBLE | WS_CHILD ,320*i, 0, 320, 240,Panel1->Handle, i); //設定CaptureWindows capDriverConnect (hCapWnd, i);  capPreviewRate(hCapWnd,100);  capPreview(hCapWnd,1);    } }     
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-27 11:54:30 IP:202.39.xxx.xxx 未訂閱
關於這個capGetDriverDescription函數是取得driver的資訊,但我要的是裝置名稱(ccd名稱),因我有多台ccd以上。 執行了capGetDriverDescription後只傳回一個值也就是i=0那個值,其餘皆為空的,這樣正確嗎? 你有icq或msn即時通訊嗎? 非常感謝你的回應 icq:178677251 mail:jason@syris.com
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-27 12:54:35 IP:61.216.xxx.xxx 未訂閱
In addition to opening the capture driver for generic read, the mapper needs to make a pin connection to the video source filter, using the format that the driver exported as part of its video properties. The driver is ready to stream data only when the pin connection is successful.    The driver handle and pin connection handle have different uses. The driver handle is used to query and set the driver property and data range, and to make the pin connection. The pin connection handle is used to query and set the current streaming state (stop, pause, and run), and to read the streaming data.    When the driver is opened the first time, the first supported video format exported from its driver is used to make the pin connection. Key format information is saved in the registry. To avoid failure due to lack of system resources, it is recommended that the least resource-bound video format be the default video format that is exported.    
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-27 13:50:08 IP:202.39.xxx.xxx 未訂閱
理論我懂,但要如何作,使用那個函數… 我現在就是這一點跨不過去,總該有一個api來選擇切換device吧! 我看過其他video軟體上都有一個driver名稱和多個device名稱(假如有) 作切換,但始終找不到實作方法。 非常感謝
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-27 15:48:46 IP:140.135.xxx.xxx 未訂閱
jason-huang您好: 試試下面的code(這是可以同時Display到Form上[我不知道有沒有更好的方式],至於切換的話,加上某些條件應該就可以了,我現在沒有設備,所以只好請您自行驗證了^_^) vcHWND = capCreateCaptureWindow ( "Capture Window", WS_CHILD | WS_VISIBLE ,0, 0, 320,240 , Form1->Handle, 0); vcHWND1 = capCreateCaptureWindow ( "Capture Window", WS_CHILD | WS_VISIBLE ,321, 0, 640,240 , Form1->Handle, 0); bool a = false; for( int j = 0; j < 10; j ) { a = capDriverConnect( vcHWND1, j ); if(a) break; } if( !a ) { ShowMessage("攝影機1連接失敗.."); } bool b = false; for( int i = 0; i < 10; i ) { b = capDriverConnect( vcHWND, i ); if( b ) break; } if( !b ) { ShowMessage("攝影機2連接失敗.."); } capPreview(vcHWND,true); capPreviewRate(vcHWND,66); capPreview(vcHWND1,true); capPreviewRate(vcHWND1,66);
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-02-27 16:25:23 IP:202.39.xxx.xxx 未訂閱
謝謝你的範例,但結果跟我之前遇到的一樣, 也就是會跑出capDlgVideoSource(hndVideo)這個對話視窗,然後再手動選擇ccd來源,但程式內容明明沒呼叫確跑出來,這是為什麼?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-02-27 16:32:56 IP:140.135.xxx.xxx 未訂閱
jason-huang您好: 可是我不會出現對話視窗耶,若是只接一台攝影機的話則出現 第2台攝影機連接失敗的訊息,之後畫面上就是只有一台攝影機畫面 且顯示兩個...
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-02-27 17:29:42 IP:202.39.xxx.xxx 未訂閱
我接一台也沒問題,但接兩台就會了,不知道在connect之前要作啥什麼函數呼叫設定,他才不會跑出來源對話窗讓你選擇
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-02-28 20:25:15 IP:61.70.xxx.xxx 未訂閱
jason-huang    今天收到你信,了解你很急 我所用的方法與上面的差不多 但也未發生你所說的問題    請問 兩台ccd是輸入到同一塊捕捉卡嗎?    你的作業系統為何?    捕捉卡是否有提供 demo 程式 或 程式範利?                 僅供參考,歡迎繼續發言
------
︿︿
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-03-03 14:45:07 IP:202.39.xxx.xxx 未訂閱
我沒用補捉卡,是兩個usb ccd 作業系統 xp ccd1 dual mode USB Camera PLUS ccd2 PC Camera 我目前的問題是在上面的程式呼叫第一次capDriverConnect 沒問題,會抓到系統目前預設的第一台ccd 在第二次呼叫capDriverConnect則會出現類似capDlgVideoSource 這樣的對話視窗讓你選擇第二台ccd,若重覆選擇同一台ccd則出現錯誤訊息, 必須選擇另一台才正常。 所以我想要的解決方法是:我不要這個對話視窗,真接設定ccd裝置後,第二次 呼叫capDriverConnect就可直接秀出畫面。這樣應該作得到吧             僅供參考,歡迎繼續發言 [/quote]
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-03-03 14:53:10 IP:61.218.xxx.xxx 未訂閱
    usb Camera 是否有提供 demo 程式 或 程式範利? 如果有就比較好辦了    僅供參考,歡迎繼續發言
------
︿︿
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-03-03 16:00:56 IP:202.39.xxx.xxx 未訂閱
我的ccd是一般的CAMERA,demo的範例程式也只amcap這一套公用的展示軟體,我現在遇到的麻須就是只要把上述api的問題解決即可. 非常感謝!
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#16 引用回覆 回覆 發表時間:2003-03-03 16:06:35 IP:61.218.xxx.xxx 未訂閱
範例程式 有 source 嗎?        僅供參考,歡迎繼續發言
------
︿︿
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#17 引用回覆 回覆 發表時間:2003-03-03 16:23:32 IP:202.39.xxx.xxx 未訂閱
沒有,那只是一套公用的展示video程式
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#18 引用回覆 回覆 發表時間:2003-03-03 16:43:02 IP:61.218.xxx.xxx 未訂閱
Streaming Devices (Video and Audio): Windows DDK     USB Camera Minidriver Library    The USB Camera Minidriver Library section covers the following topics:    USBCAMD Structures http://msdn.microsoft.com/library/en-us/stream/hh/stream/usbcmdpr_9qur.asp    USBCAMD Callback Functions http://msdn.microsoft.com/library/en-us/stream/hh/stream/usbcmdpr_6ilv.asp    USBCAMD Services and Functions http://msdn.microsoft.com/library/en-us/stream/hh/stream/usbcmdpr_0t6b.asp         僅供參考,歡迎繼續發言
------
︿︿
jason-huang
一般會員


發表:1
回覆:9
積分:2
註冊:2003-01-24

發送簡訊給我
#19 引用回覆 回覆 發表時間:2003-03-11 15:54:58 IP:202.39.xxx.xxx 未訂閱
感謝各位的幫忙!我的問題已經無解了,我已經改變了方向,也就是採用影像補捉卡,利用卡所付的sdk來處理。 謝謝大家!
系統時間:2024-04-20 1:46:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!