VS2013配置OPENCV2.4.9(OPENCV3.X)

转载自->这里

设置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_gpu249d.lib
  opencv_highgui249d.lib
  opencv_imgproc249d.lib
  opencv_legacy249d.lib
  opencv_ml249d.lib
  opencv_nonfree249d.lib
  opencv_objdetect249d.lib
  opencv_ocl249d.lib
  opencv_photo249d.lib
  opencv_stitching249d.lib
  opencv_superres249d.lib
  opencv_ts249d.lib
  opencv_video249d.lib
  opencv_videostab249d.lib

注:唯一的区别是Debug版用到的dlllib文件都有后缀dRelease版使用的不带d。配置Release的附加依赖项时别忘了把d删掉。

若使用opencv3.X,则只需要在依赖项里加入

opencv_world330d.lib

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 }

测试结果:

 

posted @ 2017-06-24 13:05  Runtime69  阅读(370)  评论(0编辑  收藏  举报