關於OpenCV在VS IDE下的安裝和配置,一些熱心的網友已經分享了它們的成功經驗,這裡有一篇很好的文章。這裡我無意重複這些內容,我想強調的是,在配置OpenCV開發環境的時候,除了滿足能夠正常工作外,我們還可以從移植和維護的角度多考慮一下。我們可能需要注意以下幾個方面的問題:
1. 配置的開發環境最好要獨立於OpenCV的安裝目錄。設想這樣的情況,我們需要將OpenCV工程轉移到另外一台電腦,這台電腦已經安裝了相同版本的OpenCV,但是不幸的是,它安裝在另外一個目錄中。在這樣的情況下,如果想讓這個OpenCV工程能夠順利的編譯通過,我們需要修改工程設定中任何引用到OpenCV安裝目錄的地方,並將它們修改成正確的OpenCV安裝目錄。解決這樣問題的一個好的辦法就是設定一個儲存OpenCV安裝目錄的環境變數,讓OpenCV工程引用這個環境變數。如果OpenCV的安裝目錄發生了變化,我們唯一需要做的就是修改環境變數的值。例如,我們可以設定兩個環境變數:
OPENCVAP_LIB = C:/Program Files/OpenCV/lib
OPENCVAP_INCLUDE = C:/Program Files/OpenCV
這兩個環境變數分別記錄了OpenCV的安裝目錄和lib目錄。
接下來當我們需要為OpenCV工程設定附加元件封裝含目錄時,我們就可以使用環境變數來替換絕對目錄:
"$(OPENCVAP_INCLUDE)/cxcore/include";
"$(OPENCVAP_INCLUDE)/cv/include";
"$(OPENCVAP_INCLUDE)/otherlibs"
當我們需要為OpenCV工程設定附加庫目錄時,同樣的我們可以使用環境變數來替換決定目錄:
"$(OPENCVAP_LIB)"
2.配這的開發環境最好也要獨立於VS IDE,即OpenCV開發環境不能儲存在VS IDE中,而是儲存在OpenCV工程設定中。同樣的設想這樣的情況,將OpenCV工程移植到另外一台電腦中,這台電腦雖然安裝了相同版本的VS IDE但是並沒有正確的配置OpenCV開發環境,很顯然OpenCV工程不能得到正確的編譯,我們只能在這台電腦中重新設定一次OpenCV環境。如果OpenCV環境配置在工程設定時,拷貝OpenCV工程的時候連同編譯環境也一同拷貝了,這樣即使VS IDE沒有設定也能正確的編譯。
3.當我們串連必要的庫檔案的時候,我們可以在代碼中指定需要串連那些庫檔案,而不必在項目設定中設定它們。在一個標頭檔中,例如staAfx.h中,添加:
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cvaux.lib")
#pragma comment(lib,"highgui.lib")
剩下的工作就是在源檔案中包含需要的標頭檔,這樣就使用OpenCV代給我們的強大功能了:
#include "cv.h"
#include "cxcore.h"
#include "cxtypes.h"
#include "highgui/highgui.h"
附加1:VS IDE + Visual Assist X
相信Visual Assist X是很多Windows程式員的最愛,甚至是達到了沒有Visual Assist X就不能正常工作的程度。除了其中的"文法高亮"功能外,最讓我喜歡的就是"符號解析"和在標記法宣告和定義之間自由的切換,這樣為我們閱讀源碼提供了很大的方便。為了使Visual Assist X幫我們解析OpenCV庫中各種符號,我們需要在Visual Assist X中設定OpenCV的安裝目錄,這樣當VS IDE被啟動並且OpenCV項目被開啟的時候,Visual Assist X會自動尋找到OpenCV的安裝目錄,為我們解析各種符號。下面以Visual Assist X 10.3為例,說明如何設定。啟動Visual Assist X並選擇"Visual Assist X Options",在其中選擇"Projects->C/C++ Directories"。在"Platform"選項中選擇"Custom",在"Show Directories"中選擇"Stable include files",在其中添加OpenCV的各個模組的標頭檔目錄:
C://Program Files//OpenCV//cv//include;
C://Program Files//OpenCV//cxcore//include;
C://Program Files//OpenCV//otherlibs//highgui;
接下來在"Show Directories"中選擇"Source files",在其中添加OpenCV的各個模組的源檔案目錄:
C://Program Files//OpenCV//cv//src;
C://Program Files//OpenCV//cxcore//src;
C://Program Files//OpenCV//otherlibs//highgui;
有了這樣的設定,我們就可以很方便的查閱OpenCV函數的源碼。
記錄
03/13/2007 v1.0
原文的第一版
03/16/2007 v1.1
添加如果在Visual Assist X中設定OpenCV目錄