• 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 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版用到的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 }

    测试结果:

  • 相关阅读:
    mybatis调用oracle存储过程
    java heap space
    汉字转拼音
    Go调用cpp类方式一
    ETCD节点故障恢复
    goroutine 加 channel 代替递归调用,突破递归调用的层级限制
    vscode debug golang
    mysql分组和去重同时使用
    github、gitlab 管理多个ssh key
    Qt连接MySQL
  • 原文地址:https://www.cnblogs.com/DLarTisan/p/7073089.html
Copyright © 2020-2023  润新知