兩個同型號的USB CCD 同時開 |
尚未結案
|
yean0429
一般會員 發表:3 回覆:2 積分:1 註冊:2008-02-12 發送簡訊給我 |
我想要在兩個PANEL上同時顯示兩個同型號USB的CCD,參考了一下板上的寫法,跟版上大大提供的元件(EzCapCamera),當我啟用第一個CCD後,畫面在顯示在PANEL1,但是當我啟用第二個CCD後,畫面也會顯示在PANEL1,而第一台CCD畫面則跑到PANEL2,是否有辦法第一台就顯示在PANEL1,第二台顯示在PANEL2呢?
另外當我啟用第一台,似乎是隨機抓取的,沒有辦法選擇第一台要開啟其中的哪一台,開啟第二台時才有辦法選取,是否可以在第一次開啟的時候就選擇我要開啟兩台中的其中一台呢?我是用VFW開啟的,板上似乎有大大說採用DIRECT SHOW硬體相容度會更高,不過我用VFW開兩台並不會很LAG,不知VFW是否可以解決上述問題呢?還是一定要採用DIRECT SHOW? 第一次發問,如果有不妥請見諒,麻煩大家的解答,謝謝。 以下是我參考板上的寫法: void __fastcall TEzCapCamera::CameraDisplay() { vcHWND = capCreateCaptureWindow ( "Capture Window", WS_CHILD | WS_VISIBLE ,0,0,Width,Height,Handle, 0); //設定視窗大小 bool ScanDriver = false; for(int i=0;i<2;i ) { ScanDriver=capDriverConnect(vcHWND,i); if(ScanDriver) break; } if(!ScanDriver) ShowMessage("攝影機連接失敗.."); if (CameraMode==0) { capPreviewRate(vcHWND,33); capPreview(vcHWND,true); } else { capOverlay(vcHWND,true); } } //第二台連結-------------------------------------------------------------------- void __fastcall TEzCapCamera::CameraDisplay2() { vcHWND2 = capCreateCaptureWindow ( "Capture Window", WS_CHILD | WS_VISIBLE ,0,0,Width,Height,Handle, 0); //設定視窗大小 bool ScanDriver2 = false; for(int j=0;j<2;j ) { ScanDriver2=capDriverConnect(vcHWND2,j); if(ScanDriver2) break; } if(!ScanDriver2) ShowMessage("攝影機連接失敗.."); if (CameraMode==0) { capPreviewRate(vcHWND2,33); capPreview(vcHWND2,true); } else { capOverlay(vcHWND2,true); } } 編輯記錄
yean0429 重新編輯於 2008-05-06 01:20:52, 註解 無‧
|
charlietian
一般會員 發表:1 回覆:6 積分:1 註冊:2008-04-08 發送簡訊給我 |
“另外當我啟用第一台,似乎是隨機抓取的,沒有辦法選擇第一台要開啟其中的哪一台,開啟第二台時才有辦法選取,是否可以在第一次開啟的時候就選擇我要開啟兩台中的其中一台呢?我是用VFW開啟的,板上似乎有大大說採用DIRECT SHOW硬體相容度會更高,不過我用VFW開兩台並不會很LAG,不知VFW是否可以解決上述問題呢?還是一定要採用DIRECT SHOW?”
1、关于DIRECT SHOW相容度高的问题,大概是因为新的CAMERA驱动很多是WMD的,如果驱动本身写的不好可能就兼容不了VFW,VFW是比较旧的......所以大大们才建议DIRECT SHOW。 2、另外DIRECT SHOW可以很容易的读出设备的友好名称,应该可以利用这点来解决你遇到的选择设备的问题;不过VFW应该也有类似的办法,只是我不清楚罢了; 你的程式里是直接用版上提供的VFW控件写的吗? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |