1、下載及安裝
OpenCV是一套開源免費的圖形庫,主要有C/C++語言編寫,官網: http://opencv.org/ 。在 http://opencv.org/downloads.html 可以找到個版本和各種平台的程序包。OpenCV的Windows平台安裝包是放在SourceForge.net網站。
我下了2.4.4版,大概217M。安裝包其實就是一個壓縮包,安裝過程就是解壓到某個文件夾。我是安裝到 E:\Soft\opencv 目錄,安裝后文件夾如下:
我們只需要關注“build”文件夾即可,其他的可以不用管。“build”文件夾編譯后的文件,我們可以直接使用。打開“build”文件夾,如下
編寫過C++程序的都知道,要使用別人的編寫好的DLL,那么需要三種文件,即頭文件、后綴名為“lib”的鏈接文件,后綴名為"dll"的動態庫文件。如果使用靜態編譯方式,那么需要頭文件和靜態庫文件。X86是32位操作系統的庫,X64是64位操作系統的庫。
(1)“build\x86\vc10\bin”目錄下放的是OpenCV運行時所需的動態運行庫,
(2)“build\x86\vc10\lib”目錄放的是編譯OpenCV程序時所需的的動態鏈接庫,
(3)“build\x86\vc10\staticlib”目錄方式的靜態編譯時OpenCV所需要的靜態鏈接庫,如果是靜態編譯,運行時則不需要“build\x86\vc10\bin”目錄的DLL文件,但編譯后的文件較大。
由於我使用VS2010,所以只關注目錄 E:\Soft\opencv\build\x86\vc10 。為了使VS2010可以編譯OpenCV程序,我們需要對VS2010做一些設置,主要是讓VS2010能找到OpenCV的頭文件和鏈接庫。在“OpenCV安裝目錄\build\docs”目錄下有個名為“opencv_tutorials.pdf”的PDF文檔,里面的1.5節“How to build application with OpenCV inside the Micorosoft Visual Studio”說明了如何配置VS2010。
如果想一次配置對所有的C++項目都適用,可以按如下配置:
1、在VS2010打開任何一個C++項目,然后選擇“視圖”=》“其他窗口”=》“屬性管理器”,如下圖:
打開的屬性管理器窗口如下:
2、在打開的屬性管理器窗口中,展開“Degug|Win32”節點,雙擊“Micorsoft.Cpp.Win32.user”會打開全局屬性設置窗口,
(1)在左邊選擇“VC++目錄”;
(2)在右邊“包含目錄”中加上OpenCV的頭文件目錄,我的頭文件目錄是放在“E:\Soft\opencv\build\include”,這個根據OpenCV的安裝目錄,一般在build\include目錄;
(3)在右邊“庫目錄”中加上OpenCV的鏈接庫目錄,我的VS2010庫目錄是放在“E:\Soft\opencv\build\x86\vc10\lib”,這個是根據OpenCV的安裝目錄和IDE版本決定,根據自己的情況選擇。
對“Release|Win32”節點下的“build\x86\vc10\bin”也做同樣配置。
2、第一個OpenCV程序
通過以上配置,OpenCV的開發環境已經搭建起來,下面我們來寫第一個OpenCV HelloWorld程序。
打開VS2010,新建一個Win32控制台應用程序
新建后的項目如下:
雙擊“HelloWorld.cpp”文件,輸入如下內容
//C++輸入輸出庫頭文件 #include <iostream> //OpenCV核心庫頭文件 #include <opencv2\core\core.hpp> //OpenCV圖形處理頭文件 #include <opencv2\highgui\highgui.hpp> //OpenCV核心動態鏈接庫,和core.hpp頭文件對應,d代表調試版本 #pragma comment(lib,"opencv_core242d.lib") //OpenCV圖形處理動態鏈接庫,和highgui.hpp頭文件對應,d代表調試版本 #pragma comment(lib,"opencv_highgui242d.lib") int _tmain(int argc, _TCHAR* argv[]) { //窗口名稱 std::string windowName = "HelloWorld"; //圖像名稱 std::string imgFile = "opencv-logo.png"; //讀入圖像 cv::Mat image = cv::imread(imgFile,CV_LOAD_IMAGE_COLOR); //如果無法讀取圖形 if(!image.data) { std::cout << "無法打開圖像文件" <<std::endl; system("PAUSE");//暫停窗口 return -1; } //創建一個新窗口 cv::namedWindow(windowName,CV_WINDOW_AUTOSIZE); //將圖像顯示都新創建的窗口中 cv::imshow(windowName,image); //等待,直到用戶按任意鍵時退出 cv::waitKey(0); return 0; }
如果編譯無錯誤,要運行程序,還要復制一些必要的文件:
(1)在OpenCV的目錄下的doc文件夾有一個名為"opencv-logo.png"的圖像文件,將其復制到“HelloWorld”項目的文件夾下,
(2)到OpenCV安裝目錄\build\x86\vc10\bin\ 復制三個文件 opencv_core242d.dll、opencv_highgui242d.dll、tbb_debug.dll 三個文件到解決方案文件夾下的Degug目錄,也就是編譯后可執行文件所在的目錄。
如果一切正常,運行后的效果如下:
3、OpenCV學習資源
2.3.2版本的幫助文檔翻譯 http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html ,是OpenCV安裝目錄\build\docs\opencv_tutorials.pdf文檔的中文翻譯。
http://www.opencv.org.cn/ 也是學習OpenCV的好地方。
http://wiki.opencv.org.cn/index.php OpenCV的各種中文資料。
http://opencv.org/documentation.html 官方的在線幫助文檔。
http://www.sigvc.org/bbs/ 視覺計算論壇。