[心得] OpenCV 入門經驗

看板C_and_CPP作者 (蘋果酷)時間15年前 (2010/04/22 17:20), 編輯推噓4(401)
留言5則, 4人參與, 最新討論串1/1
大家好,小弟不才,野人獻曝,大學開始摸索 OpenCV 時遇到很多麻煩 雖然用到現在還不到一年,但想把使用 OpenCV 的入門經驗整理一下, 希望可以幫到正要開始使用OpenCV的人 (PS.以 Windows, VC2008 為例) 1.開始 比較快的方法是下載已經包好的安裝檔 http://sourceforge.net/projects/opencvlibrary/files/ 截稿最新版本為 OpenCV-2.1.0-win32-vs2008.exe 若要常常更新,可使用SVN下載 https://code.ros.org/svn/opencv/trunk/opencv 以上兩者可以到 http://opencv.willowgarage.com/wiki/ 參考 2.使用SVN需要自己編譯,理論上更新後要重編譯 預設讀取攝影機是用 VFW & MIL 如果要使用基於 DirectShow 的 videoInput Library 可以到手動定義 HAVE_VIDEOINPUT 因為我需要修改程式碼,所以實際上我是重新下載 videoInput Library 的原始碼,修改後重編的。http://muonics.net/school/spring05/videoInput/ 如果沒有讀取速度上的需求,使用 VFW 也許比較簡單。 至於編譯用的專案可以用 CMake 還蠻方便的 http://www.cmake.org/ 3.看OpenCV目錄下的pdf文件和 sample 可以看看如何使用 OpenCV,目前 find_obj 範例基於 SURF 的方法有 bug 4.其他 Q&A Q1.執行的時候找不到 dll? A1.你可以設環境變數,命名為Path,指向OpenCV下或你編譯的資料夾下bin的資料夾 不過我認為最好的方式是把資料夾下的dll都複製到你執行檔所在目錄下, 這樣換到沒有OpenCV的電腦也能用。 Q2.編譯找不到 ???.lib A2.一般網路上建議的做法是在VC2008的設定加入連結路徑, 我覺得不妨選個穩定版本的lib複製到專案資料夾,然後在專案屬性設定相依的連結路徑 Q3.無法解析的外部符號 A3.可能忘記把 lib 在專案中設定,注意debug mode檔名常以d作尾 Q4.讀不到攝影機或視訊之類的檔案?A4.或許缺了XviD解碼器。 Q5.色彩整個跑掉?A5.注意OpenCV預設圖檔是B-G-R-B-G-R排列 Q6.讀攝影機或圖是有讀取到,但是顯示不出來。 A6.你可能放在迴圈跑吧,中間不妨delay一下,例如cvWaitKey(30); 不要用 getchar(); system("pause"); Sleep(30); 之類的... ... Q7.編譯videoInput會缺少檔案? A7.你的版本比較新,把網路上videoInput資料夾裡面DShow的Include, Extra...等 檔案手動貼到DShow目錄裡面,或者跟DShow原有的揉成肉包後一樣放在專案下。 Q8.Win7不讓改DShow標頭檔案?A8.複製到其他地方,然後貼上新檔案,用系統管理員身分。 Q9.OpenMP缺dll? A9.雖然OpenCV目前用TBB取代OpenMP,還是說一下,去找到相應的dll,放到執行檔目錄下 或者system32資料夾下。 Q10.不想讀到螢幕上內建的攝影機。 A10.去裝置管理員關掉或程式碼換編號都可。注意換電腦之後攝影機編號常不一樣。 Q11.記憶體爆掉了? A11.基本上如果是用C的寫法,看到指標,要記得呼叫相應釋放的函數,當然也有例外. 可以查OpenCV目錄下的pdf文件 Q12.如何關掉編譯器給OpenCV的警告,A12:舉例如下 #pragma warning(push,0) # include <cv.h> # include <highgui.h> # include <cvaux.h> #pragma warning(pop) ... ... 希望不會寫得太多廢話。有錯請指教。 最後希望剛要接觸 OpenCV 的同好們,能夠早日開始專注在演算法上, 而不會被這些小細節浪費時間。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.214.41

04/22 19:56, , 1F
大推實用心得 真希望我一年多以前可以看到這篇文 就不會浪
04/22 19:56, 1F

04/22 19:56, , 2F
費一堆時間了....
04/22 19:56, 2F

04/22 21:28, , 3F
雖然都是基本 但是還是推你的熱心和用心
04/22 21:28, 3F

04/23 01:53, , 4F
收下了~~感謝XD
04/23 01:53, 4F

04/24 15:46, , 5F
最後一個建議太棒了 常常出現CV自己的warning很煩
04/24 15:46, 5F
※ 編輯: applecool 來自: 140.116.214.41 (04/26 10:33)
文章代碼(AID): #1Bq1JbQp (C_and_CPP)