1. 程式人生 > >在沒有安裝Opencv的電腦上執行基於Opencv庫的程式

在沒有安裝Opencv的電腦上執行基於Opencv庫的程式

以HMMDemo為例
1、將OpenCv安裝目錄下的cv、cvaux、otherlibs/highgui三個目錄複製到你的工程目錄下,再在工程目錄下新建一個camera目錄,將安裝目錄下的apps/Common目錄中的兩個檔案複製至camera目錄中。
2、在整合開發環境的專案管理視窗中(FileView)新建六個資料夾,分別為highgui_src,highgui_include,cvaux_include,cvaux_src,cv_include,cv_src
3、將專案管理視窗中Source Files中的Camera.cpp(如果有的話)及Header Files中的Camera.h(如果有的話)的路徑改為工程目錄下的camera目錄。

4、在專案管理視窗中右擊cv_include項,選擇Add Files to Folder...,將第1步中已複製至工程目錄下的cv目錄下的include目錄中的.h檔案新增到該專案管理資料夾中。接著按相同做法將cv目錄下的src目錄中的.cpp檔案新增到cv_src專案管理資料夾中。對cvaux_include、cvaux_src,highgui_include,highgui_src亦如此操作。兩點注意,第一是工程目錄下的highgui目錄下不再分include和src,但操作相同;第二是為cvaux_src新增.cpp檔案時不要新增cvaux.cpp,因為這個檔案包括了cv.h,連結時會有重複定義的錯誤。

5、右擊cv_src,選擇Setting...,選擇C/C++頁,在Category選擇Precompiled Headers,再選擇下面四個單選項中的第一項”Not using precompiled headers”。這樣做的目的是不使用編譯標頭檔案,否則會產生“找不到檔案結尾”的錯誤。也可以在每個.cpp檔案的開頭加入include ”stdafx.h”,但顯然沒有更改一個選項來得方便。對cvaux_src及highgui_src也進行相同操作。
6、為工程的編譯編譯選項(Project->Settings...->C/C++)增加/Zm200,作用是增加堆疊的最大限制,因為cvaux_src中有個檔案用到了一個很大的常數陣列,200不夠大的可以300,400......。

7、在Project->Settings...->C/C++中,選擇Category中的Preprocessor項,把Additional include directories改為cv/include,cv/src,highgui,camera,cvaux/include,cvaux/src
8、Project->Settings...->Link,如果Object/library modules中有cv.lib,cvaux.lib,highgui.lib,刪除之。注意cvd.lib為Debug版,cv.lib為Release版。
9、Project->Settings...->General,將Output directories下的兩個框改為Debug,這個是中間檔案(.obj等)的輸出目錄。Project->Settings...->Link,將Output file name改為Debug/XXX.exe,這個是最終可執行檔案的輸出目錄。
好了,你的專案已經可以脫離OpenCV安裝環境編譯了,編譯出來的程式也可以脫離OpenCV的動態連結庫運行了