电竞比分网-中国电竞赛事及体育赛事平台

分享

VC 2008 Express下安裝OpenCV2.3.1

 pgj555 2014-04-10

注意:


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

目錄

[隱藏]





安裝所需要的軟件


下載OpenCV


  1. 從本站下載欄目 http://www./index.php/Download 下載 OpenCV for Windows(也即  OpenCV-2.3.1-win-superpack.exe 文件)。
  2. 將 OpenCV-2.3.1-win-superpack.exe 解壓并放到某個(gè)目錄下,例如 D:\Program Files\OpenCV2.3.1 (無需運(yùn)行setup.exe,解壓則可)。解壓后的目錄結(jié)構(gòu)如下圖。

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


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


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




編譯OpenCV(非必需步驟)


用CMake導(dǎo)出VC++項(xiàng)目文件


  • 運(yùn)行cmake-gui,設(shè)置where is the source code路徑為OpenCV安裝路徑(本文檔假定安裝位置為:D:\Program Files\OpenCV2.3.1\opencv),并創(chuàng)建子目錄D:\Program Files\OpenCV2.3.1\opencv\build\my,并將cmake的"where to build the binaries"設(shè)置為這個(gè)目錄。
  • 然后點(diǎn) configure,在彈出的對(duì)話框內(nèi)選擇 Visual Studio 9 2008。
  • 你可根據(jù)你的系統(tǒng)修改選項(xiàng),修改后再次選擇“Congfigure”,完成后選擇“Generate”。

(注: 此處Open CV文件放的目錄不能包含漢字,否則“Congfigure”和“Generate”無法成功;同時(shí)需要關(guān)閉已經(jīng)打開的VS,否則CMake與VS的宏無法配置。 by:Jackyzzy 趙振陽)





2.0版本截圖僅供參考,點(diǎn)擊看大圖 
Enlarge
2.0版本截圖僅供參考,點(diǎn)擊看大圖

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖

2.0版本截圖僅供參考,點(diǎn)擊看大圖 
Enlarge
2.0版本截圖僅供參考,點(diǎn)擊看大圖


編譯 OpenCV Debug和Release版本庫


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


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

全部運(yùn)行完畢后,針對(duì)你的系統(tǒng)的OpenCV庫就生成了。


配置VC


配置include路徑


也即告訴VC去什么地方尋找OpenCV的頭文件,打開VC,選擇菜單“工具”->“選項(xiàng)”->“項(xiàng)目和解決方案”->“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


點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


配置lib路徑


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

在剛才下載的文件OpenCV-2.3.1-win-superpack.exe 里,已經(jīng)為VC2008和VC2010預(yù)先編譯好了動(dòng)態(tài)庫和靜態(tài)庫。因此我們不需要如早先版本那樣,自己用cmake編譯OpenCV。


  • 自己編譯的庫,庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib

(注:由于自己編譯成功,lib文件在Debug和Release兩個(gè)文件中,加載庫時(shí)需到Debug和Release中,
  我配置的庫目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,否則調(diào)試時(shí)無法進(jìn)入Open CV代碼中。 by:Jackyzzy 趙振陽)



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

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






點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


設(shè)置環(huán)境變量


剛才設(shè)置的是動(dòng)態(tài)庫,因此還需要將OpenCV的dll文件所在的目錄加入Path環(huán)境變量。dll文件目錄如下,請(qǐng)根據(jù)自己情況五選一:


  • 自己編譯的庫,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\bin
  • 32位系統(tǒng) & VC2008,dll目錄為:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin

(注:此處環(huán)境變量應(yīng)與上邊庫目錄一致,這樣能夠調(diào)試時(shí)能夠進(jìn)入代碼,我自己的目錄是:D:\Program Files\OpenCV2.3.1\opencv\build\x86\vc9\bin\Debug。 by:Jackyzzy 趙振陽)



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

由于有些函數(shù)需要TBB,所以需要將tbb所在的目錄也加入到環(huán)境變量Path中。TBB相關(guān)的DLL路徑為:


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

如下圖所示將OpenCV和TBB的dll文件所在的目錄系統(tǒng)環(huán)境變量Path中。加入后可能需要注銷當(dāng)前Windows用戶(或重啟)后重新登陸才生效。






點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


使用OpenCV 2.3.1編程


  • 打開VC++ 2008 Express,創(chuàng)建一個(gè)Win32控制臺(tái)程序helloopencv;

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


  • 選擇Solution Explorer里的opencvhello項(xiàng)目,點(diǎn)擊鼠標(biāo)右鍵,選擇Properties。

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


  • ,在[鏈接器 LINKER]的[輸入INPUT]中,為項(xiàng)目的Debug配置增加 [附加依賴項(xiàng) 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 (可根據(jù)實(shí)際需要?jiǎng)h減)注意,請(qǐng)打開了新編輯窗口(即點(diǎn)擊了“...”按鈕)“附加依賴項(xiàng)”,并一條一條分別加入,一條一行(一個(gè)回車),(注意行末不要加";")否則會(huì)出現(xiàn)類似以下錯(cuò)誤:1>LINK : fatal error LNK1104: 無法打開文件“…….lib”
  • 如果下載的OpenCV不是2.3.1版本,請(qǐng)將"XXX231d.lib"中的"231"更改為對(duì)應(yīng)的版本號(hào),例如:下載OpenCV 2.4.0,則統(tǒng)一改為"XXX240d.lib",否則會(huì)出現(xiàn)類似以下錯(cuò)誤:1>LINK : fatal error LNK1104: 無法打開文件“XXX.lib”

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


  • 為項(xiàng)目的Release配置增加[附加依賴項(xiàng) 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 (可根據(jù)實(shí)際需要?jiǎng)h減)*

點(diǎn)擊看大圖 
Enlarge
點(diǎn)擊看大圖


  • 編譯運(yùn)行下面的例程(需要將lena.jpg文件放在項(xiàng)目目錄下,即與生成的.exe文件同位置)(這里有誤。雙擊exe的話,圖片放在.exe同一文件夾內(nèi);按F5直接運(yùn)行程序的話,lena.jpg要放在helloopencv\helloopencv里)。

/***********************************************************************
 * OpenCV 2.3.1 測(cè)試?yán)? * 于仕琪 提供
 ***********************************************************************/
#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);
 
	//此函數(shù)等待按鍵,按鍵盤任意鍵就返回
	waitKey();
 
	return 0;
}

程序運(yùn)行結(jié)果圖,點(diǎn)擊看大圖 
Enlarge
程序運(yùn)行結(jié)果圖,點(diǎn)擊看大圖


作者






          
     
  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多