看到的不是自己的,只有寫下來的才是自己的,上次接觸OpenCV實在三個月前,亢奮的看完了OpenCV自帶的入門文檔,覺得對圖形處理有了一點點了解,現在三個月過去了,由於學習需要,想深入了解OpenCV,發現之前學過的知識在腦袋里零零散散的,所以想重讀入門文檔,同時將其記錄下來。部分內容我會根據自己的理解選擇性的記錄,如對原理不理解,建議閱讀官方文檔。
開發環境VS2010+Win7x64。當前VS2010支持的最新的OpenCV是opencv-2.4.11。從官方網站下載。
1.安裝
打開exe,選擇一個目錄即可將已編譯好的OpenCV庫和其源代碼解壓出來,筆者解壓目錄E:\openlib。若需要自行編譯源碼,請查看官網說明。
2.設置環境變量
為了開發軟件和移植工程過程中更加方便,添加OPENCV_DIR環境變量。
(添加方法:計算機--屬性--高級--環境變量--系統變量)
VS2010+32位系統 OPENCV_DIR E:\openlib\OpenCV\Build\x86\vc10
VS2010+64位系統 OPENCV_DIR E:\openlib\OpenCV\Build\x64\vc10
VS2012+32位系統 OPENCV_DIR E:\openlib\OpenCV\Build\x86\vc11
VS2012+64位系統 OPENCV_DIR E:\openlib\OpenCV\Build\x64\vc11
在path中增加 ;%OPENCV_DIR%\bin
3.VS2010環境配置(VS2012類似)
新建控制台工程
編輯屬性表屬性,在C/C++--常規--附加包含目錄中添加 $(OPENCV_DIR)\..\..\include
連接器--常規--附加庫目錄中添加 $(OPENCV_DIR)\lib
鏈接器--常規--附加依賴項中添加
opencv_calib3d2411d.lib opencv_contrib2411d.lib opencv_core2411d.lib opencv_features2d2411d.lib opencv_flann2411d.lib opencv_gpu2411d.lib opencv_highgui2411d.lib opencv_imgproc2411d.lib opencv_legacy2411d.lib opencv_ml2411d.lib opencv_nonfree2411d.lib opencv_objdetect2411d.lib opencv_ocl2411d.lib opencv_photo2411d.lib opencv_stitching2411d.lib opencv_superres2411d.lib opencv_ts2411d.lib opencv_video2411d.lib opencv_videostab2411d.lib
其中2411代表當前版本號,d代表當前為調試版本。
Release配置中同樣添加一個屬性表。重復以上步驟。鏈接庫如下:
opencv_calib3d2411.lib opencv_contrib2411.lib opencv_core2411.lib opencv_features2d2411.lib opencv_flann2411.lib opencv_gpu2411.lib opencv_highgui2411.lib opencv_imgproc2411.lib opencv_legacy2411.lib opencv_ml2411.lib opencv_nonfree2411.lib opencv_objdetect2411.lib opencv_ocl2411.lib opencv_photo2411.lib opencv_stitching2411.lib opencv_superres2411.lib opencv_ts2411.lib opencv_video2411.lib opencv_videostab2411.lib
4.測試環境
cpp文件中粘貼如下代碼
1 #include <opencv2/core/core.hpp> 2 #include <opencv2/highgui/highgui.hpp> 3 #include <iostream> 4 5 using namespace cv; 6 using namespace std; 7 8 int main( int argc, char** argv ) 9 { 10 Mat image; 11 // 打開當前目錄下的lena.jpg文件 12 image = imread("lena.jpg", IMREAD_COLOR); 13 14 if(! image.data ) // 打開是否成功 15 { 16 cout << "Could not open or find the image" << std::endl ; 17 return -1; 18 } 19 //創建一個窗口用來顯示圖片 20 namedWindow( "Display window", WINDOW_AUTOSIZE ); 21 //顯示窗口 22 imshow( "Display window", image ); 23 //等待用戶按鍵 24 waitKey(0); 25 return 0; 26 }
當前目錄下放入圖片名為lena.jpg,運行程序,顯示成功圖片即配置成功。
5.屬性表說明
為什么需要添加屬性表?添加屬性表的好處是屬性表可以通用的,以后的項目如果需要使用OpenCV庫,則可以直接添加現有屬性表,完成OpenCV的配置。
本文結束。