VS2013配置OPENCV2.4.9

转载自->这里

设置opencv SDK解压目录,点击Extract后解压

VS2013配置OPENCV2.4.9

我是习惯于解压到这个位置的。

VS2013配置OPENCV2.4.9

解压过程如上图。

2、         文件目录介绍

解压后会在目录下生成opencv的文件夹

VS2013配置OPENCV2.4.9

在opencv文件夹下有build和sources两个文件夹,build是SDK 包,sources是源码包(里面也有opencv使用例子源码)

VS2013配置OPENCV2.4.9

在build文件夹下include是C&C++头文件所在文件夹;doc是文档文件夹;java是java开发的库文件夹;python是python开发库文件夹;x64和X86是已编译好的C&C++的64位和32位库文件夹,在它里面有vc10、vc11、vc12   三个文件夹,分别对应VC++2010、VC++2012和VC++2013。

VS2013配置OPENCV2.4.9

因不同版本VC++生成的库文件所需的运行时不同,因此配置VC++工程时需要选择相对应的二进制库文件。在VC XX文件夹下bin文件夹是公用的动态链接库,在系统环境变量里配置后,所以opencv工程都能共享他们;lib文件夹是动态库隐式调用所需的静态链接文件;staticlib文件夹是静态链接库,需要生成不依赖动态库的程序就是用它们。

3、         设置环境变量

“开始菜单”-> “控制面板”->“系统”或在“计算机”上右键选“属性”打开系统设置窗口    选择“高级系统设置”打开“系统属性”窗口  

VS2013配置OPENCV2.4.9

VS2013配置OPENCV2.4.9

选择“高级选项卡“,点击“环境变量”按钮打开“环境变量”窗口

VS2013配置OPENCV2.4.9

在系统变量里找到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++工程配置

新建一个项目(这个应该都会吧)

然后打开视图->属性管理器

 VS2013配置OPENCV2.4.9

双击标注出的地方,弹出一个属性页

VS2013配置OPENCV2.4.9

先选择VC++目录

VS2013配置OPENCV2.4.9

将可执行文件目录

点击右边,选择编辑

VS2013配置OPENCV2.4.9

新建一个位置

VS2013配置OPENCV2.4.9

本人输入的是(如果不确定,就点击右边的省略号选择文件夹)

D:\Program Files\opencv\build\x86\vc12\bin

然后是包含目录

差不多一样

VS2013配置OPENCV2.4.9

本人输入的是(如果不确定,就点击右边的省略号选择文件夹)

D:\Program Files\opencv\build\include

D:\Program Files\opencv\build\include\opencv2

D:\Program Files\opencv\build\include\opencv

下一个是库目录(如果不确定,就点击右边的省略号选择文件夹)

VS2013配置OPENCV2.4.9

本人输入的是(如果不确定,就点击右边的省略号选择文件夹)

D:\Program Files\opencv\build\x86\vc12\lib

 

下一步就是附加依赖项的配置了

VS2013配置OPENCV2.4.9

输入下面的链接库名

  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、         测试环节

分形例程

 #include <cv.h>
#include <highgui.h>
#include <cxcore.h> IplImage* fractal;
IplImage* fcopy;//用来画矩形
int width = ;//图像宽和高
int height = ;
double XMax = 2.5;//复平面的最大坐标
double XMin = -2.5;
double YMax = 2.5;
double YMin = -2.5; #define MAX_COLOR 256//用来记录配色
int B[MAX_COLOR];
int G[MAX_COLOR];
int R[MAX_COLOR]; struct Complex//复数
{
double real;
double img;
}; //初始化图片彩色像素库
void initColor()//虽然写的是BGR,但是这里是当作HSV来初始化的,图片绘制完成后转BGR
{
for (int i = ; i < MAX_COLOR; i++)
{
B[i] = i * % ;
G[i] = 0.7 * 255.0;
R[i] = 255.0 * (1.0 - i / 255.0 * i / 255.0 / 1.2);
}
}
//绘制分形图
void drawPic()
{
double deltaX = (XMax - XMin) / width;
double deltaY = (YMax - YMin) / height;
int max_iterations = ;//最大迭代次数
double max_size = 4.0;
for (int row = ; row < height; row++)
{
for (int col = ; col < width; col++)
{
int color = ;
Complex c, z;
//z.real = 0;//这里是Mandelbrot集,下面被注释掉的是Julia集
//z.img = 0;
//c.real = XMin + col * deltaX;
//c.img = YMin + row * deltaY;
z.real = XMin + col * deltaX;
z.img = YMin + row * deltaY;
c.real = -0.8;
c.img = 0.156; while ((color < max_iterations) && ((z.img * z.img + z.real * z.real) < max_size))
{
double tmp = z.real * z.real - z.img * z.img + c.real;
z.img = z.img * z.real + z.real * z.img + c.img;
z.real = tmp;
color++;
}
color %= MAX_COLOR;
fractal->imageData[row * fractal->widthStep + * col] = B[color];
fractal->imageData[row * fractal->widthStep + * col + ] = G[color];
fractal->imageData[row * fractal->widthStep + * col + ] = R[color];
}
}
cvCvtColor(fractal, fractal, CV_HSV2BGR);//将HSV空间转换为BGR,方便显示
cvShowImage("Fractal", fractal);
cvWaitKey();
}
//主函数
int main()
{
cvNamedWindow("Fractal", );
fractal = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, );
fcopy = cvCreateImage(cvSize(width, height), IPL_DEPTH_8U, );
initColor();
drawPic();
cvReleaseImage(&fractal);
cvReleaseImage(&fcopy);
cvDestroyWindow("Fractal");
return ;
}

测试结果:

VS2013配置OPENCV2.4.9

上一篇:以太坊智能合约 Solidity 的常用数据类型介绍


下一篇:atitit. 集合groupby 的实现(2)---自定义linq查询--java .net php