2012年5月6日 星期日

OpenCV 2.3.1 with Visual Studio 2010


雖然OpenCV 2.4已經正式釋出了,這邊還是先做2.3.1的介紹,安裝步驟如下。

Step1.下載OpenCV-2.3.1-win-superpack.exe


Step2.將下載之Superpack進行解壓縮
該解壓縮位置非常重要,是接下來path等相關環境變數所要設定的位置。本範例解壓縮至"C:\OpenCV_2.3.1\"


Step3.設定Window 環境變數

a.新增系統變數OPENCV_DIR=C:\OpenCV_2.3.1


b.查看是否有新增成功


c.修改Path環境變數,
加入OpenCV bin位置"%OPENCV_DIR%\build\x64\vc10\bin"
補充:
如果要加入GPU計算(CUDA),PATH路徑%OPENCV_DIR%\build\gpu\x64\bin,兩個不可以同時加入,因為bin裡面的資料都相同,系統將無法判別要使用哪個dll檔案。

加入TBB bin 位置"%OPENCV_DIR%\build\common\tbb\intel64\vc10"


d.查看是否新增成功


Step4: Visual Studio 2010 設置屬性

a.於Visual Studio 2010中,新增win32主控台應用程式



b.Win32應用程式精靈

點選建立空專案並且點選完成。



c.建立x64應用程式專案
這次的目標是要建立x64版本的OpenCV程式,如下圖所示點選組態管理員


於平台選單中點選新增


並新增新平台為x64


新增後組態管理員將出現Debug | x64 與 Release | x64專案屬性


若無需建立Win32版本,可由此案右鍵將組態給移除。


於此可用Visual Studio 2010之新功能,先建立專案屬性,利用該專案屬性功能先建立預設值,未來將可直接在入該檔案,無須每次進行下列設定。於Debug | x64 按右鍵,並點選加入新的專案屬性工作表。如下圖所示。



建立該屬性名稱,輸入名稱OpenCVProject,並點選新增。



建立屬性工作表之後,請於屬性工作表裏面進行編輯,點選OpenCVProject兩下開啟OpenCVProject屬性。


加入OpenCV Include目錄。


加入"$(OPENCV_DIR)\build\include"
注意$(OPENCV_DIR)為windows環境變數,於Step3.時加入,相對應資料夾為C:\OpenCV_2.3.1


加入程式庫目錄"$(OPENCV_DIR)\build\x86\vc10\lib"
補充
如果使用的是GPU加速版本,要將lib庫指向 $(OPENCV_DIR)\build\gpu\x64\lib



修改後如下


新增上述兩個目錄之後將OpenCVProject儲存,如下圖所示。


Release項將可直接加入該屬性工作表即可。




最後要新增C++裡面的其他相依性,於Debug | x64 上點選右鍵"屬性",並於"輸入"之其他相依性加入OpenCV之lib檔案




Release | x64也須做相同的動作,下面列出相關lib輸入值,該相依性可依據該專案進行新增,若該專案用不到該lib將可不需填入。

如何使用DOS指令將所有lib進行List
DOS指令
Release列表
dir/b *231.lib > release_list.txt
Debug列表
dir/b *231d.lib > debug_list.txt

輸出結果
release
opencv_calib3d231.lib
opencv_contrib231.lib
opencv_core231.lib
opencv_features2d231.lib
opencv_flann231.lib
opencv_gpu231.lib
opencv_highgui231.lib
opencv_imgproc231.lib
opencv_legacy231.lib
opencv_ml231.lib
opencv_objdetect231.lib
opencv_ts231.lib
opencv_video231.lib

debug
opencv_calib3d231d.lib
opencv_contrib231d.lib
opencv_core231d.lib
opencv_features2d231d.lib
opencv_flann231d.lib
opencv_gpu231d.lib
opencv_highgui231d.lib
opencv_imgproc231d.lib
opencv_legacy231d.lib
opencv_ml231d.lib
opencv_objdetect231d.lib
opencv_ts231d.lib
opencv_video231d.lib                                                                                                                     


Debug
opencv_core231d.lib
opencv_imgproc231d.lib
opencv_highgui231d.lib
opencv_ml231d.lib
opencv_video231d.lib
opencv_features2d231d.lib
opencv_calib3d231d.lib
opencv_objdetect231d.lib
opencv_contrib231d.lib
opencv_legacy231d.lib
opencv_flann231d.lib

Release
opencv_core231.lib
opencv_imgproc231.lib
opencv_highgui231.lib
opencv_ml231.lib
opencv_video231.lib
opencv_features2d231.lib
opencv_calib3d231.lib
opencv_objdetect231.lib
opencv_contrib231.lib
opencv_legacy231.lib
opencv_flann231.lib

Step5: OpenCV Hello World
建立簡單OpenCV顯示圖片程式

於原始程式檔中加入一新增項目。如下圖所示。


新增C++檔案,檔名為main.cpp


貼上測試程式碼。


如何驗證你所建立的專案與OpenCV lib有成功連結,你可以簡單輸入cv::,如果有出現下圖相關程式,代表該專案已經成功與OpenCV連結。


測試專案是否可以常運作


如果出現下圖,無任何錯誤發生,代表該執行檔已經成功被Compiled




成功Compil出一個OpenCV程式了。





Step5: OpenCV whith cuda Hello World
上述安裝步驟中如果你需要啟動CUDA平行運算,可以參考補充部分,將path及Lib dll庫的位置設定為GPU用,這樣您將可以使用OpenCV上的CUDA運算。
回顧:
1.環境變數修改成:%OPENCV_DIR%\build\gpu\x64\bin
2.Visual Studio 2010中C++ lib 庫路徑指向 $(OPENCV_DIR)\build\gpu\x64\lib
3.OpenCV with 需要硬體與驅動程式部分
a.支援CUDA平行運算之NVIDIA顯示卡
b.安裝nvidia驅動程式。4.0以上,版範例安裝 devdriver_4.1_winvista-win7_64_286.19_general.exe
c.安裝CUDA ToolKit。OpenCV 2.3.1 Release 時所使用的版本為4.0.17 所以要安裝 cudatoolkit_4.0.17_win_64.msi,若已經安裝cudatoolkit_4.1.28_win_64.msi,可在下載安裝4.0.17版即可,ToolKit可以共存不同版本,因此不須將新舊版本進行移除。
d.安裝CUDA SDK 。本範例安裝 gpucomputingsdk_4.1.28_win_64.exe。


4.OpenCV 2.3.1 With CUDA Test
使用OpenCV所提供的範例如下。


輸出結果,範例中顯示本電腦有一個GPU device,並且可以使用他進行編譯及執行。


沒有留言:

張貼留言