搭建VS2008+OpenCV2.1开发环境
引子:如題(非原創,非轉載,非翻譯)。其實本菜鳥很糾結于CSDN博客文章的分類:原創;轉載;翻譯。菜鳥以博客備忘,首先Google,然后試,最后寫博客,說是自己寫,其實是根據實際情況轉述別人的成果。建議文章分類中添加:轉述。這樣才能心安理得,要不頂著原創夸夸其談,心虛啊!
目的是課題中需要SURF算法,后發現有個叫OpenCV的東西不錯,拿來試試,便有了題目的需求。
1、準備
先從官網下載VS2008(90天使用)版本,再安裝SP1,再使用正版序列號破解(方法很簡單,網上有在控制面板中卸載然后輸入序列號的方法。菜鳥試了一下,在安裝完成后,運行光盤中的 autorun?選擇 “更改或移除 Visual Studio 2008”也會出現升級序列號的選項,填寫 PYHYP-WXB3B-B2CCM-V9DX9-VDY8T 升級就OK了?)
官網下載OpenCV2.1 (文件名:OpenCV-2.1.0-win32-vs2008.exe),運行安裝。
下載CMake(本文使用的是CMake 2.6,官網沒上去,感嘆于中國最大的局域網啊,老胳膊老腿不利索了,懶的翻墻,找了半天最后從CSDN下載頻道里下的,1毛大洋啊,唉這年頭木有免費的,文件名:CMake+2.6.rar),解壓。
2、編譯OpenCV (參考http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0/2.1?和http://blog.csdn.net/moc062066/article/details/6626528)
運行CMake解壓目錄下bin目錄中的 cmake-gui .
source cord :中選定OpenCV2.1安裝目錄,本例中為:C:/OpenCV2.1
設置目標目錄(Where to build the binaries),本例中為:C:/OpenCV2.1/VS2008。用于存放編譯結果。
點“Configure”,對話框中選擇 Visual Studio 9 2008,再點“Configure”確認,下面輸出框中:Configuring done ,點“Generate”,下面輸出框中:Generating done,(這時需要關閉VS2008,否則會報錯的)
使用VS2008打開C:\OpenCV2.1\VS2008目錄下生成OpenCV.sln。
在Debug下,“解決方案資源管理器”中右鍵點擊ALL_BUILD,選擇“生成”,然后右鍵點擊INSTALL,選擇“生成”,即可。
在Release下,“解決方案資源管理器”中右鍵點擊ALL_BUILD,選擇“生成”,然后右鍵點擊INSTALL,選擇“生成”,即可。
此時,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)將出現在C:\OpenCV2.1\VS2008\bin目錄中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)將出現在C:\OpenCV2.1\VS2008\lib目錄;頭文件*.h出現在C:\OpenCV2.1\VS2008\include\opencv中。
至此,可以被Visual C++ 2008調用的OpenCV動態庫生成完畢。
還要將 C:\OpenCV2.1\vc2008\bin 加入Windows系統環境變量Path中。
3、為VS2008 配置OpenCV 環境
打開VS2008,菜單 工具-> 選項-> 項目和解決方案-> VC++ 目錄
“在顯示一下內容目錄”中選擇“可執行文件”,加入目錄 C:\OpenCV2.1\vc2008\bin
“在顯示一下內容目錄”中選擇“包含文件”,加入目錄 C:\OpenCV2.1\vc2008\include\opencv
“在顯示一下內容目錄”中選擇“庫文件”,加入目錄 C:\OpenCV2.1\vc2008\lib
關閉VS2008。
4、使用OpenCV 2.1編程
打開VS2008,項目類型選擇 Visual C++ ,創建一個Win32控制臺應用程序 opencvhello;
#include "stdafx.h"
#include "highgui.h"
#pragma?comment(lib,"cv210d.lib")??
#pragma?comment(lib,"cxcore210d.lib")??
#pragma?comment(lib,"highgui210d.lib")
int _tmain(int argc, _TCHAR* argv[])
{
??? const char* imagename = "lena.jpg";
?
?cv::Mat img = cv::imread(imagename); // Matlab風格的 cvLoadImage 函數的另一種調用
??? 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); //創建窗口
?cv::imshow("image", img); //顯示圖像
?
?cv::waitKey();
?
?return 0;
}
需要將lena.jpg文件放在項目目錄下。
?
?
總結
以上是生活随笔為你收集整理的搭建VS2008+OpenCV2.1开发环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell中case判断结构的用法笔记
- 下一篇: Shell脚本中循环until命令用法笔