VS2013配置OPENCV2.4.9
轉載自->這裏
設置opencv SDK解壓目錄,點擊Extract後解壓
我是習慣於解壓到這個位置的。
解壓過程如上圖。
2、 文件目錄介紹
解壓後會在目錄下生成opencv的文件夾
在opencv文件夾下有build和sources兩個文件夾,build是SDK 包,sources是源碼包(裏面也有opencv使用例子源碼)
在build文件夾下include是C&C++頭文件所在文件夾;doc是文檔文件夾;java是java開發的庫文件夾;python是python開發庫文件夾;x64和X86是已編譯好的C&C++的64位和32位庫文件夾,在它裏面有vc10、vc11、vc12 三個文件夾,分別對應VC++2010、VC++2012和VC++2013。
因不同版本VC++生成的庫文件所需的運行時不同,因此配置VC++工程時需要選擇相對應的二進制庫文件。在VC XX文件夾下bin文件夾是公用的動態鏈接庫,在系統環境變量裏配置後,所以opencv工程都能共享他們;lib文件夾是動態庫隱式調用所需的靜態鏈接文件;staticlib文件夾是靜態鏈接庫,需要生成不依賴動態庫的程序就是用它們。
3、 設置環境變量
“開始菜單”-> “控制面板”->“系統”或在“計算機”上右鍵選“屬性”打開系統設置窗口 選擇“高級系統設置”打開“系統屬性”窗口
選擇“高級選項卡“,點擊“環境變量”按鈕打開“環境變量”窗口
在系統變量裏找到Path變量,在Path中添加值SDK中的bin目錄。
本人解壓時設置的目錄是D:\Program Files,用到是32位庫,VC++用的是2013,因此添加到bin目錄為
D:\Program Files\opencv\build\x86\vc12\bin。
在用戶變量裏,新建一個opencv的變量值為
D:\Program Files\opencv\build(根據解壓目錄)
PATH裏增加(註:中間加;隔開,是英文狀態下的)
D:\Program Files\opencv\build\x86\vc12\bin
註:環境變量配置後,需重啟系統才能生效。
4、
新建一個項目(這個應該都會吧)
然後打開視圖->屬性管理器
雙擊標註出的地方,彈出一個屬性頁
先選擇VC++目錄
將可執行文件目錄
點擊右邊,選擇編輯
新建一個位置
本人輸入的是(如果不確定,就點擊右邊的省略號選擇文件夾)
D:\Program Files\opencv\build\x86\vc12\bin
然後是包含目錄
差不多一樣
本人輸入的是(如果不確定,就點擊右邊的省略號選擇文件夾)
D:\Program Files\opencv\build\include
D:\Program Files\opencv\build\include\opencv2
D:\Program Files\opencv\build\include\opencv
下一個是庫目錄(如果不確定,就點擊右邊的省略號選擇文件夾)
本人輸入的是(如果不確定,就點擊右邊的省略號選擇文件夾)
D:\Program Files\opencv\build\x86\vc12\lib
下一步就是附加依賴項的配置了
輸入下面的鏈接庫名
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib
opencv_nonfree249.lib
opencv_objdetect249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_videostab249.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib
註:唯一的區別是Debug版用到的dll和lib文件都有後綴d,Release版使用的不帶d。配置Release的附加依賴項時別忘了把d刪掉
5、 測試環節
分形例程
1 #include <cv.h> 2 #include <highgui.h> 3 #include <cxcore.h> 4 5 IplImage* fractal; 6 IplImage* fcopy;//用來畫矩形 7 int width = 1280;//圖像寬和高 8 int height = 720; 9 double XMax = 2.5;//復平面的最大坐標 10 double XMin = -2.5; 11 double YMax = 2.5; 12 double YMin = -2.5; 13 14 #define MAX_COLOR 256//用來記錄配色 15 int B[MAX_COLOR]; 16 int G[MAX_COLOR]; 17 int R[MAX_COLOR]; 18 19 struct Complex//復數 20 { 21 double real; 22 double img; 23 }; 24 25 //初始化圖片彩色像素庫 26 void initColor()//雖然寫的是BGR,但是這裏是當作HSV來初始化的,圖片繪制完成後轉BGR 27 { 28 for (int i = 0; i < MAX_COLOR; i++) 29 { 30 B[i] = i * 4 % 256; 31 G[i] = 0.7 * 255.0; 32 R[i] = 255.0 * (1.0 - i / 255.0 * i / 255.0 / 1.2); 33 } 34 } 35 //繪制分形圖 36 void drawPic() 37 { 38 double deltaX = (XMax - XMin) / width; 39 double deltaY = (YMax - YMin) / height; 40 int max_iterations = 256;//最大叠代次數 41 double max_size = 4.0; 42 for (int row = 0; row < height; row++) 43 { 44 for (int col = 0; col < width; col++) 45 { 46 int color = 0; 47 Complex c, z; 48 //z.real = 0;//這裏是Mandelbrot集,下面被註釋掉的是Julia集 49 //z.img = 0; 50 //c.real = XMin + col * deltaX; 51 //c.img = YMin + row * deltaY; 52 z.real = XMin + col * deltaX; 53 z.img = YMin + row * deltaY; 54 c.real = -0.8; 55 c.img = 0.156; 56 57 while ((color < max_iterations) && ((z.img * z.img + z.real * z.real) < max_size)) 58 { 59 double tmp = z.real * z.real - z.img * z.img + c.real; 60 z.img = z.img * z.real + z.real * z.img + c.img; 61 z.real = tmp; 62 color++; 63 } 64 color %= MAX_COLOR; 65 fractal->imageData[row * fractal->widthStep + 3 * col] = B[color]; 66 fractal->imageData[row * fractal->widthStep + 3 * col + 1] = G[color]; 67 fractal->imageData[row * fractal->widthStep + 3 * col + 2] = R[color]; 68 } 69 } 70 cvCvtColor(fractal, fractal, CV_HSV2BGR);//將HSV空間轉換為BGR,方便顯示 71 cvShowImage("Fractal", fractal); 72 cvWaitKey(0); 73 } 74 //主函數 75 int main() 76 { 77 cvNamedWindow("Fractal", 1); 78 fractal = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3); 79 fcopy = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, 3); 80 initColor(); 81 drawPic(); 82 cvReleaseImage(&fractal); 83 cvReleaseImage(&fcopy); 84 cvDestroyWindow("Fractal"); 85 return 0; 86 }
測試結果:
VS2013配置OPENCV2.4.9