• Open Source Computer Vision Library

VC 2010 Express下安裝OpenCV2.4.3

Wikipedia,自由的百科全书

註意:

  1. 下列文檔基於VC2010 Express。
  2. VC 6.0不被OpenCV 2.4.3支持。
  3. VC Express是微軟提供的免費版,可從此處下載: VC2010 Express
  4. 建議先不要自己編譯,如果使用預編譯好的庫有問題,再嘗試自己編譯。

目錄

安裝所需要的軟體

下載OpenCV

  1. 從本站下載欄目 http://www.opencv.org.cn/index.php/Download 下載 OpenCV for Windows(也即 OpenCV-2.4.3.exe 文件)。
  2. 將 OpenCV-2.4.3.exe 解壓並放到某個目錄下,例如 D:\OpenCV 。解壓後的目錄結構如下圖。
点击看大图
Enlarge
點擊看大圖

配置VC

配置include路徑

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

  • 打開VC++ 2010 Express,創建一個Win32控制台程式opencvtest;
点击看大图
Enlarge
點擊看大圖
  • 選擇Solution Explorer里的opencvtest項目,點擊滑鼠右鍵,選擇Properties。
点击看大图
Enlarge
點擊看大圖
  • 依次選擇“配置屬性”->“VC++目錄”->“包含目錄”,包含 D:\OpenCV\build\include;D:\OpenCV\build\include\opencv;D:\OpenCV\build\include\opencv2
点击看大图
Enlarge
點擊看大圖
点击看大图
Enlarge
點擊看大圖

配置lib路徑

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

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

  • 32位系統 & VC2010,庫目錄為:D:\OpenCV\build\x86\vc10\lib
  • 64位系統 & VC2010,庫目錄為:D:\OpenCV\build\x64\vc10\lib

請根據自己的情況二選一,將庫目錄輸入“屬性”->“配置屬性”->“VC++目錄”->“庫目錄” 。如下圖所示:

点击看大图
Enlarge
點擊看大圖

設置環境變數

剛纔設置的是動態庫,因此還需要將OpenCV的dll文件所在的目錄加入Path環境變數。dll文件目錄如下:

  • 32位系統 & VC2010,dll目錄為:D:\OpenCV\build\x86\vc10\bin
  • 64位系統 & VC2010,dll目錄為:D:\OpenCV\build\x64\vc10\bin

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

  • 32位系統 & VC2010:D:\OpenCV\build\common\tbb\ia32\vc10
  • 64位系統 & VC2010:D:\OpenCV\build\common\tbb\intel64\vc10

因為2.4.3版本的opencv內嵌了TBB的功能,所以取消了TBB直接安裝,這樣就不需要再配置TBB環境變數了。

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

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

使用OpenCV 2.4.3編程

  • 選擇Solution Explorer里的opencvtest項目,點擊滑鼠右鍵,選擇Properties。
点击看大图
Enlarge
點擊看大圖
  • 在配置屬性-->[鏈接器 LINKER]的[輸入INPUT]中,為項目的Debug配置增加 [附加依賴項 Additional Dependencies]:

opencv_calib3d243d.lib

opencv_contrib243d.lib

opencv_core243d.lib

opencv_features2d243d.lib

opencv_flann243d.lib

opencv_gpu243d.lib

opencv_highgui243d.lib

opencv_imgproc243d.lib

opencv_legacy243d.lib

opencv_ml243d.lib

opencv_objdetect243d.lib

opencv_ts243d.lib

opencv_video243d.lib (可根據實際需要刪減)註意,請打開了新編輯視窗(即點擊了“...”按鈕)“附加依賴項”,並一條一條分別加入,一條一行(一個回車),(註意行末不要加";")否則會出現類似以下錯誤:1>LINK : fatal error LNK1104: 無法打開文件“…….lib”

  • 如果下載的OpenCV不是2.4.3版本,請將"XXX243d.lib"中的"243"更改為對應的版本號,例如:下載OpenCV 2.4.0,則統一改為"XXX240d.lib",否則會出現類似以下錯誤:1>LINK : fatal error LNK1104: 無法打開文件“XXX.lib”
点击看大图
Enlarge
點擊看大圖
  • 為項目的Release配置增加[附加依賴項 Additional Dependencies]:

opencv_contrib243.lib

opencv_core243.lib

opencv_features2d243.lib

opencv_flann243.lib

opencv_gpu243.lib

opencv_highgui243.lib

opencv_imgproc243.lib

opencv_legacy243.lib

opencv_ml243.lib

opencv_objdetect243.lib

opencv_ts243.lib

opencv_video243.lib (可根據實際需要刪減)*

  • 編譯運行下麵的常式,需要將lena.jpg文件放在項目目錄下。如果想雙擊運行exe的話,圖片放在.exe同一文件夾內;按F5直接運行程式的話,lena.jpg要放在opencvtest\opencvtest里)。
/***********************************************************************
 * OpenCV 2.4.3 測試常式
 * 于仕琪 提供
 ***********************************************************************/
#include "stdafx.h"
 
#include <opencv2/opencv.hpp>
 
using namespace std;
using namespace cv;
 
int _tmain(int argc, _TCHAR* 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
個人工具