近期項目需要用到OpenCV中的幾個函數,但其函數無法全部實現自己需要的功能,故而需要改進部分函數,為安全及效率起見,想參考OpenCV的源碼來改進,這樣節省時間的同時亦可提供代碼的魯棒性和通用性。那么如何查看OpenCV的源代碼?在VS2010環境下,使用“Go to Definition”顯然不能滿足要求(OpenCV已被編譯成LIB及DLL文件供調用),簡單搜索了一下,得知可CMake導出OpenCV源碼生成VC++項目,進入可查看源碼,下面一步一步來達到此目的。
一、下載並安裝CMake
CMake 是個開源的跨平台自動化建構系統,在下載頁面上可下載源碼及二進制可執行程序,我們只需要下載安裝包即可,我的PC系統是Windows 7(32bit),所以我下載cmake-2.8.12.1-win32-x86.zip。
下載完成后,解壓到/cmake-2.8.12.1-win32-x86文件夾下,進入./bin目錄,雙擊“cmake-gui.exe”啟動CMake。
二、使用CMake生成VC++項目
1. 打開CMake后,界面如下圖所示
2. 填入相關信息
如上圖所示,①點擊“Where is the source code”后面的那個“Browse Source...”按鈕,選擇OpenCV源文件的安裝路徑;②點擊“Where to build the binaries”后面的那個“Browse Build...”按鈕,選擇CMake生成的工程文件所在的路徑;③點擊“Configure”轉下一步。
3. 點擊“Configure”按鈕,配置編譯平台
如筆者的機器上安裝的是VS2010,因此,就選擇Visual Studio 2010。
4. 點擊Finish按鈕,開始配置
界面上顯示出現了錯誤,查看錯誤原因得知“Could not register CMake's Visual Studio macros file 'CMakeVSMacros2.vsmacros' while Visual Studio is running. Please exit all running instances of Visual Studio before continuing.CMake needs to register Visual Studio macros when its macros file is updated or when it detects that its current macros file is no longer registered with Visual Studio.”
百度一下,原來是因為VS2010相關路徑設置里面包含了中文等相關字符,可參看解決CMake為VC准備生成文件時的Could not copy from不能復制問題中的解決方案,修改路徑名為全英文的。
修改好后,再次點擊Configure,這次成功了,如下所示:
默認有的復選框沒有選擇,最好不要選擇,因為庫可能不全,從而導致生成失敗,默認就好了。
5. 點擊“Generate”按鈕,進行生成。
如上所示,最下面的消息框中顯示配置完成,生成也完成了。
我們轉到生成目錄(…/OpenCV2.4.8VS2010),如下所示:
OpenCV.sln便是我們需要的解決方案文件。至此,全部結束。