vs2008 + OpenCV-2.1.0-win32-vs2008安裝
1. 安裝vs2008+sp1
2. 安裝opencv-2.1.0-win32-vs2008,假設(shè)安裝目錄為c:\opencv2.1。安裝過(guò)程中注意選擇添加環(huán)境變量,把 “add it to your Current User PATH “前的復(fù)選框勾上 .
3. 為vs2008配置openvc,過(guò)程如下:
工具->選項(xiàng)->項(xiàng)目和解決方案->vc++目錄,
“顯示一下內(nèi)容的目錄”下拉列表中選擇“包含文件”,添加條目“C:\OpenCV2.1\include\opencv”;
“顯示一下內(nèi)容的目錄”下拉列表中選擇“庫(kù)文件” ,添加條目“C:\OpenCV2.1\lib”;
"顯示一下內(nèi)容的目錄"下拉列表選擇“源文件”,添加條目”C:\OpenCV2.1\src\cv” ,”C:\OpenCV2.1\src\cvaux” ,”C:
\OpenCV2.1\src\cxcore” ,”C:\OpenCV2.1\src\highgui”。
點(diǎn)擊“確定”。
4. 為單個(gè)工程配置運(yùn)行環(huán)境,如:
(1) 新建一個(gè)win32命令控制臺(tái)項(xiàng)目opencvhello
(2) 在解決方案資源管理器中右鍵點(diǎn)擊項(xiàng)目名稱(chēng)opencvhello,選擇“屬性”,
在“配置(C)”下拉列表中選擇Debug, 然后“配置屬性”->“鏈接器”->“輸入”->附加依賴(lài)項(xiàng),添加 cxcore210d.lib
cv210d.lib highgui210d.lib
在“配置(C)”下拉列表中選擇Release, 然后“配置屬性”->“鏈接器”->“輸入”->附加依賴(lài)項(xiàng),添加 cxcore210.lib
cv210.lib highgui210.lib
中間如果提示要保存的話(huà),就保存。最后點(diǎn)擊確定。
(3) 測(cè)試。用下列代碼代替源代碼,注意imagename中保存的是圖片的硬盤(pán)地址,程序的運(yùn)行結(jié)果是顯示imagename指向的圖片。
/***********************************************************************
* OpenCV 2.0 測(cè)試?yán)?br> * 于仕琪 提供
***********************************************************************/
#include "stdafx.h"
#include "highgui.h"
//所有的以新風(fēng)格命名的函數(shù)都在 cv 命名空間中
//如果希望不要每次都輸入 cv:: ,則可使用下面語(yǔ)句
//using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
const char* imagename = "E:\\OpenCV2.1\\samples\\c\\lena.jpg";
cv::Mat img = cv::imread(imagename); // Matlab風(fēng)格的 cvLoadImage 函數(shù)的另一種調(diào)用
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
if( !img.data ) // 檢查是否正確載入圖像
return -1;
cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //創(chuàng)建窗口
cv::imshow("image", img); //顯示圖像
cv::waitKey();
return 0;
}
VC 2008 Express下安裝OpenCV2.0/2.1
http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0
安裝VC++ 2008 Express
Visual C++ Express是微軟推出的一款免費(fèi)集成開(kāi)發(fā)環(huán)境,如果你沒(méi)有足夠資金購(gòu)買(mǎi)Visual C++,你可以使用Visual C++ Express。本安裝說(shuō)明撰寫(xiě)時(shí),最新的版本是Visual C++ 2008 Express.
Visual C++ 2008 Express可以從微軟網(wǎng)站下載安裝(http://www.microsoft.com/express/product/default.aspx )。
安裝OpenCV
從 http://www.opencv.org.cn/index.php/Download 下載OpenCV 2.0,并安裝,本文檔假定安裝目錄為:D:\Program Files\OpenCV2.0
安裝CMake
從 http://www.cmake.org/cmake/resources/software.html 下載 Windows (Win32 Installer) 安裝。
編譯OpenCV
用CMake導(dǎo)出VC++項(xiàng)目文件
- 運(yùn)行cmake-gui,設(shè)置路徑為OpenCV安裝路徑(本文檔假定安裝位置為:D:\Program Files\OpenCV2.0),并創(chuàng)建子目錄D:\Program Files\OpenCV2.0\vc2008,用于存放編譯結(jié)果。
- 然后點(diǎn) configure,在彈出的對(duì)話(huà)框內(nèi)選擇 Visual Studio 9 2008。
- 如果是VC++2008的Express版本,則不支持OpenMP,所以需要取消ENABLE_OPENMP選項(xiàng),取消后再次選擇“Congfigure”,完成后選擇“Generate”。VC++ 2008(不是Express版本)支持OpenMP,如果你使用VC++2008,強(qiáng)烈建議不要取消這個(gè)選項(xiàng)。
編譯 OpenCV Debug和Release版本庫(kù)
完成上一步驟后,將在D:\Program Files\OpenCV2.0\vc2008目錄下生成OpenCV.sln的VC Solution File,請(qǐng)用VC++ 2008 Express打開(kāi)OpenCV.sln,然后執(zhí)行如下操作:
- 在Debug下,選擇Solution Explorer里的 Solution OpenCV,點(diǎn)右鍵,運(yùn)行"Rebuild Solution";如編譯無(wú)錯(cuò)誤,再選擇INSTALL項(xiàng)目,運(yùn)行"Build"。
- 在Release下,選擇Solution Explorer里的 Solution OpenCV,點(diǎn)右鍵,運(yùn)行"Rebuild Solution";如編譯無(wú)錯(cuò)誤,再選擇INSTALL項(xiàng)目,運(yùn)行"Build"。
此時(shí),OpenCV的*d.dll文件(for debug)和*.dll文件(for release)將出現(xiàn)在D:\Program Files\OpenCV2.0\vc2008\bin目錄中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)將出現(xiàn)在D:\Program Files\OpenCV2.0\vc2008\lib目錄;頭文件*.h出現(xiàn)在D:\Program Files\OpenCV2.0\vc2008\include\opencv中。
可以被VC++ 2008 Express調(diào)用的OpenCV動(dòng)態(tài)庫(kù)生成完畢。
配置Windows環(huán)境變量Path
將D:\Program Files\OpenCV2.0\vc2008\bin加入Windows系統(tǒng)環(huán)境變量Path中。加入后可能需要注銷(xiāo)當(dāng)前Windows用戶(hù)(或重啟)后重新登陸才生效。
為VC++ 2008 Express配置OpenCV環(huán)境
打開(kāi)VC++ 2008 Express,菜單 Tools -> Options -> Projects and Solutions -> VC++ Directories
- Show directories for選擇include files,加入目錄 D:\Program Files\OpenCV2.0\vc2008\include\opencv
- Show directories for選擇library files,加入目錄 D:\Program Files\OpenCV2.0\vc2008\lib
關(guān)閉VC++ 2008 Express。
使用OpenCV 2.0編程
- 打開(kāi)VC++ 2008 Express,創(chuàng)建一個(gè)Win32控制臺(tái)程序opencvhello;
- 選擇Solution Explorer里的opencvhello項(xiàng)目,點(diǎn)擊鼠標(biāo)右鍵,選擇Properties,在[鏈接器 LINKER]的[輸入INPUT]中;
- 為項(xiàng)目的Debug配置增加依賴(lài)的庫(kù):cxcore200d.lib cv200d.lib highgui200d.lib(注意,文件名cv200d.lib 可能是cv***d.lib等形式,具體應(yīng)查看D:\Program Files\OpenCV2.0\vc2008\lib )
- 為項(xiàng)目的Release配置增加依賴(lài)的庫(kù):cxcore200.lib cv200.lib highgui200.lib
- 配置屬性-字符集修改為使用“多字節(jié)字符集” (由于2008默認(rèn)是以Unicode字符集編譯的)
- 編譯運(yùn)行下面的例程(需要將lena.jpg文件放在項(xiàng)目目錄下)。
/***********************************************************************
* OpenCV 2.0 測(cè)試?yán)?
* 于仕琪 提供
***********************************************************************/
#include "stdafx.h"
#include "highgui.h"
//所有的以新風(fēng)格命名的函數(shù)都在 cv 命名空間中
//如果希望不要每次都輸入 cv:: ,則可使用下面語(yǔ)句
//using namespace cv;
int _tmain(int argc, _TCHAR* argv[])
{
const char* imagename = "lena.jpg";
cv::Mat img = cv::imread(imagename); // Matlab風(fēng)格的 cvLoadImage 函數(shù)的另一種調(diào)用
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
if( !img.data ) // 檢查是否正確載入圖像
return -1;
cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //創(chuàng)建窗口
cv::imshow("image", img); //顯示圖像
cv::waitKey();
return 0;
}
作者
注:使用OpenCV 2.1 的,請(qǐng)將上圖中的 *200.lib 和 *200d.lib 分別改為 *210.lib 和 *210d.lib
Win7 下使用opencv2.1 VC++2008時(shí)該程序中加載圖像時(shí)要寫(xiě)完整路徑,不然加載不了。例如:
const char* imagename = "lena.jpg";
需要修改為
const char* imagename = "D:\\lena.jpg";