1. 程式人生 > >VS2013配置OPENCV2.4.9

VS2013配置OPENCV2.4.9

rac 菜單 s2d 配置 targe itblog 按鈕 控制 cvs

轉載自->這裏

設置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++工程配置

新建一個項目(這個應該都會吧)

然後打開視圖->屬性管理器

技術分享

雙擊標註出的地方,彈出一個屬性頁

技術分享

先選擇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版用到的dlllib文件都有後綴dRelease版使用的不帶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