[問題] OpenCV開發視訊問題 結案

看板C_and_CPP (C/C++)作者 (Rex)時間15年前 (2011/02/17 16:10), 編輯推噓0(0019)
留言19則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2005 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenCV 問題(Question): 小弟使用OpenCV開發視訊程式, 是對話盒界面,含多個分頁+對話盒 其中一個對話盒可選用設定webcam(如有多個)(設定用) 另一個對話盒分頁中是執行主程式判斷的地方 有使用Ini file,可儲存變數資料!若下次啟動可直接執行,無需再設定 但是!問題來了 若是我直接按主程式的(設定接正確) capture1 = cvCreateCameraCapture(i); 將會抓不到webcam which index is i; 但是如果我是先用對話盒 一樣index是i capture1 = cvCreateCameraCapture(i); 卻可以抓到 餵入的資料(Input): 如上述 預期的正確結果(Expected Output): 皆應能抓到視訊 錯誤結果(Wrong Output): 如上述 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): 多謝大大!十萬火急! ================================================================= 以下是補充說明: 我寫了一個Base class分有兩個衍生類別繼承 而這三個類別是我最主要的精隨所在 然後在 主dialog內有一個分頁 分頁內是主判斷是 而在主dialog有個button去喚醒另一個dialog S S:用來做基本設定webcam的位置!並且做一個查證的動作 設定後的值皆存在INI file 然後~~~若是一開始都設定好:webcam就位,其他數值也都填好存在ini file內 則:直接可以按主dialog的start按鈕 但是問題就出現在這: (如果不進S,直接按下start)cvCreateCameraCapture將不會建立連結 但是進入S後再按start將可以建立連結 本以為是code的問題 做了交叉驗證 把S的code貼在start上 卻變成不行了 以上!希望有能人可以幫忙! 多謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.90.1

02/17 18:14, , 1F
你的意思是,你用設定檔開啟capture會失敗?
02/17 18:14, 1F

02/17 23:46, , 2F
去OpenCV.sln看cvCreateCamearCapture() source code推原因
02/17 23:46, 2F

02/18 09:46, , 3F
可是我在我的vista筆電開發OK 用其他兩台桌上型都不行
02/18 09:46, 3F

02/18 09:47, , 4F
我看debug 的output好像是沒有load進一些dll
02/18 09:47, 4F

02/18 09:47, , 5F
當調用cvCreateCameraCapture的時候會load一些DLL
02/18 09:47, 5F

02/18 09:51, , 6F
1F:對!
02/18 09:51, 6F

02/18 10:45, , 7F
意思:vista筆電可以正常工作,換到其他電腦都不行?
02/18 10:45, 7F

02/18 11:28, , 8F
啊!很奇怪 我再補充說明再補充一些好了
02/18 11:28, 8F
※ 編輯: RexBT 來自: 220.128.90.1 (02/18 11:35)

02/18 13:40, , 9F
意思是,我按下A是直接執行,按下B是指定完之後執行?
02/18 13:40, 9F

02/18 13:40, , 10F
然後執行A需要有設定檔,執行B則是重新點選後執行,
02/18 13:40, 10F

02/18 13:41, , 11F
接著會自動產生設定檔,然後下次只要按下A就會自動開啟
02/18 13:41, 11F

02/18 13:41, , 12F
結果沒想到有設定檔,卻不如預期,以上的問題?
02/18 13:41, 12F

02/18 13:41, , 13F
是否可以提供這兩個function內容來參考?謝謝。
02/18 13:41, 13F
以式的說法是 A是直接執行沒錯 B是先設定指定哪一個webcam於哪一隻模擬的眼睛(左右眼) 並且連結指定的webcam,並且show結果於視窗中,好讓使用者架設好相對的位置 我在B內加了個function(所以B有我自己寫的三個class) A則是在webcam都指定好相對眼睛,且架好位置後, 直接執行主程式 所以A中也有我的三個class 因為用opencv需要include cv.h highgui.h cxcore.h B中沒問題(把A的程式碼移植放在B中沒問題) A因為之前前輩友在header file中 include cv.h highgui.h 在想是不是這問題 但我有#progma once且 若我先進入B再進入A 程式正常 只按A就抓不到camera 當在debug中 設段點,經過 capture1 = cvCreateCameraCapture(i);這行,output會顯示load一堆dll (這是在B中 或先B後A) 但只按A 就不會load dll

02/18 13:50, , 14F
不是耶!我猜應該是dll沒load進去的問題 但不知道是不是
02/18 13:50, 14F
※ 編輯: RexBT 來自: 220.128.90.1 (02/18 14:00)

02/18 14:25, , 15F
你有確定過你的A流程是正確的嗎?也就是你讀入設定檔後
02/18 14:25, 15F

02/18 14:26, , 16F
取得的參數,是正確的,然後流程也和B一致這樣。
02/18 14:26, 16F

02/18 14:26, , 17F
還是要試過才知道。加油。
02/18 14:26, 17F

02/18 14:30, , 18F
都是正確的! 我猜應該是load dll出現問題
02/18 14:30, 18F
※ 編輯: RexBT 來自: 220.128.90.1 (02/18 17:59) ※ 編輯: RexBT 來自: 220.128.90.1 (02/18 18:00)

02/18 18:00, , 19F
終於在下班前做掉了!^^
02/18 18:00, 19F
文章代碼(AID): #1DNDV-Hh (C_and_CPP)
文章代碼(AID): #1DNDV-Hh (C_and_CPP)