• Open Source Computer Vision Library

VC 2008 Express下安裝OpenCV2.3.1

Wikipedia,自由的百科全书

註意:

  1. 下列文檔以VC2008 Express為例,VC2010下的配置應與本文檔類似。
  2. VC 6.0不被OpenCV 2.3.1支持。
  3. VC Express是微軟提供的免費版,可從此處下載: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
  4. 建議先不要自己編譯,如果使用預編譯好的庫有問題,再嘗試自己編譯。

目錄

安裝所需要的軟體

下載OpenCV

  1. 從本站下載欄目 http://www.opencv.org.cn/index.php/Download 下載 OpenCV for Windows(也即 OpenCV-2.3.1-win-superpack.exe 文件)。
  2. 將 OpenCV-2.3.1-win-superpack.exe 解壓並放到某個目錄下,例如 D:\Program Files\OpenCV2.3.1 (無需運行setup.exe,解壓則可)。解壓後的目錄結構如下圖。
点击看大图
Enlarge
點擊看大圖

安裝CMake(不打算自己編譯無需安裝)

http://www.cmake.org/cmake/resources/software.html 下載 Windows (Win32 Installer) 安裝。


編譯OpenCV(非必需步驟)

用CMake導出VC++項目文件

  • 運行cmake-gui,設置where is the source code路徑為OpenCV安裝路徑(本文檔假定安裝位置為:D:\Program Files\OpenCV2.3.1\opencv),並創建子目錄D:\Program Files\OpenCV2.3.1\opencv\build\my,並將cmake的"where to build the binaries"設置為這個目錄。
  • 然後點 configure,在彈出的對話框內選擇 Visual Studio 9 2008。
  • 你可根據你的系統修改選項,修改後再次選擇“Congfigure”,完成後選擇“Generate”。
(註: 此處Open CV文件放的目錄不能包含漢字,否則“Congfigure”和“Generate”無法成功;同時需要關閉已經打開的VS,否則CMake與VS的巨集無法配置。 by:Jackyzzy 趙振陽)
2.0版本截图仅供参考,点击看大图
Enlarge
2.0版本截圖僅供參考,點擊看大圖
点击看大图
Enlarge
點擊看大圖
2.0版本截图仅供参考,点击看大图
Enlarge
2.0版本截圖僅供參考,點擊看大圖

編譯 OpenCV Debug和Release版本庫

完成上一步驟後,將在D:\Program Files\OpenCV2.3.1\opencv\build\my目錄下生成OpenCV.sln的VC Solution File,請用VC++ 2008 Express打開OpenCV.sln,然後執行如下操作:

  • 在Debug下,選擇Solution Explorer(解決方案資源管理器)里的 Solution OpenCV(解決方案“OpenCV”),點右鍵,運行"Rebuild Solution";如編譯無錯誤,再選擇INSTALL項目,運行"Build"。
  • 在Release下,選擇Solution Explorer里的 Solution OpenCV,點右鍵,運行"Rebuild Solution";如編譯無錯誤,再選擇INSTALL項目,運行"Build"。

全部運行完畢後,針對你的系統的OpenCV庫就生成了。

配置VC

配置include路徑

也即告訴VC去什麼地方尋找OpenCV的頭文件,打開VC,選擇菜單“工具”->“選項”->“項目和解決方案”->“VC++目錄”->“包含文件”,包含 D:\Program Files\OpenCV2.3.1\opencv\build\include;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv;D:\Program Files\OpenCV2.3.1\opencv\build\include\opencv2 如果是自己編譯的則輸入D:\Program Files\OpenCV2.3.1\opencv\build\my\install\include

点击看大图
Enlarge
點擊看大圖

配置lib路徑

也即告訴VC去什麼地方尋找OpenCV的庫文件。

在剛纔下載的文件OpenCV-2.3.1-win-superpack.exe 里,已經為VC2008和VC2010預先編譯好了動態庫和靜態庫。因此我們不需要如早先版本那樣,自己用cmake編譯OpenCV。

  • 自己編譯的庫,庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib
(註:由於自己編譯成功,lib文件在Debug和Release兩個文件中,載入庫時需到Debug和Release中,
  我配置的庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,否則調試時無法進入Open CV代碼中。 by:Jackyzzy 趙振陽)

  • 32位系統 & VC2008,庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\lib
  • 32位系統 & VC2010,庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\lib
  • 64位系統 & VC2008,庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc9\lib
  • 64位系統 & VC2010,庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\lib

請根據自己的情況四選一,將庫目錄輸入菜單“工具”->“選項”->“項目和解決方案”->“VC++目錄”->“庫文件” 。如下圖所示:

点击看大图
Enlarge
點擊看大圖
点击看大图
Enlarge
點擊看大圖
点击看大图
Enlarge
點擊看大圖

設置環境變數

剛纔設置的是動態庫,因此還需要將OpenCV的dll文件所在的目錄加入Path環境變數。dll文件目錄如下,請根據自己情況五選一:

  • 自己編譯的庫,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\bin
  • 32位系統 & VC2008,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin
(註:此處環境變數應與上邊庫目錄一致,這樣能夠調試時能夠進入代碼,我自己的目錄是:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin\Debug。 by:Jackyzzy 趙振陽)

  • 32位系統 & VC2010,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc10\bin
  • 64位系統 & VC2008,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc9\bin
  • 64位系統 & VC2010,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x64\vc10\bin

由於有些函數需要TBB,所以需要將tbb所在的目錄也加入到環境變數Path中。TBB相關的DLL路徑為:

  • 32位系統 & VC2008:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc9
  • 32位系統 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\ia32\vc10
  • 64位系統 & VC2008:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc9
  • 64位系統 & VC2010:D:\Program Files\OpenCV2.3.1\opencv\build\common\tbb\intel64\vc10

如下圖所示將OpenCV和TBB的dll文件所在的目錄系統環境變數Path中。加入後可能需要註銷當前Windows用戶(或重啟)後重新登陸才生效。

点击看大图
Enlarge
點擊看大圖
点击看大图
Enlarge
點擊看大圖

使用OpenCV 2.3.1編程

  • 打開VC++ 2008 Express,創建一個Win32控制台程式helloopencv;
点击看大图
Enlarge
點擊看大圖
  • 選擇Solution Explorer里的opencvhello項目,點擊滑鼠右鍵,選擇Properties。
点击看大图
Enlarge
點擊看大圖
  • ,在[鏈接器 LINKER]的[輸入INPUT]中,為項目的Debug配置增加 [附加依賴項 Additional Dependencies]: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 (可根據實際需要刪減)註意,請打開了新編輯視窗(即點擊了“...”按鈕)“附加依賴項”,並一條一條分別加入,一條一行(一個回車),(註意行末不要加";")否則會出現類似以下錯誤:1>LINK : fatal error LNK1104: 無法打開文件“…….lib”
  • 如果下載的OpenCV不是2.3.1版本,請將"XXX231d.lib"中的"231"更改為對應的版本號,例如:下載OpenCV 2.4.0,則統一改為"XXX240d.lib",否則會出現類似以下錯誤:1>LINK : fatal error LNK1104: 無法打開文件“XXX.lib”
点击看大图
Enlarge
點擊看大圖
  • 為項目的Release配置增加[附加依賴項 Additional Dependencies]: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 (可根據實際需要刪減)*
点击看大图
Enlarge
點擊看大圖
  • 編譯運行下麵的常式(需要將lena.jpg文件放在項目目錄下,即與生成的.exe文件同位置)(這裡有誤。雙擊exe的話,圖片放在.exe同一文件夾內;按F5直接運行程式的話,lena.jpg要放在helloopencv\helloopencv里)。
/***********************************************************************
 * OpenCV 2.3.1 測試常式
 * 于仕琪 提供
 ***********************************************************************/
#include "stdafx.h"
 
#include <opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;
 
int main(int argc, char* argv[])
{
	const char* imagename = "lena.jpg";
 
	//從文件中讀入圖像
	Mat img = imread(imagename);
 
	//如果讀入圖像失敗
	if(img.empty())
	{
		fprintf(stderr, "Can not load image %s\n", imagename);
		return -1;
	}
 
	//顯示圖像
	imshow("image", img);
 
	//此函數等待按鍵,按鍵盤任意鍵就返回
	waitKey();
 
	return 0;
}
程序运行结果图,点击看大图
Enlarge
程式運行結果圖,點擊看大圖

作者

Views
個人工具