转载自->这里
设置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 Filesopencvuildx86vc12in。
在用户变量里,新建一个opencv的变量值为
D:Program Filesopencvuild(根据解压目录)
PATH里增加(注:中间加;隔开,是英文状态下的)
D:Program Filesopencvuildx86vc12in
注:环境变量配置后,需重启系统才能生效。
4、 VC++工程配置
新建一个项目(这个应该都会吧)
然后打开视图->属性管理器
双击标注出的地方,弹出一个属性页
先选择VC++目录
将可执行文件目录
点击右边,选择编辑
新建一个位置
本人输入的是(如果不确定,就点击右边的省略号选择文件夹)
D:Program Filesopencvuildx86vc12in
然后是包含目录
差不多一样
本人输入的是(如果不确定,就点击右边的省略号选择文件夹)
D:Program Filesopencvuildinclude
D:Program Filesopencvuildincludeopencv2
D:Program Filesopencvuildincludeopencv
下一个是库目录(如果不确定,就点击右边的省略号选择文件夹)
本人输入的是(如果不确定,就点击右边的省略号选择文件夹)
D:Program Filesopencvuildx86vc12lib
下一步就是附加依赖项的配置了
输入下面的链接库名
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版用到的dll和lib文件都有后缀d,Release版使用的不带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 }
测试结果: