zoukankan      html  css  js  c++  java
  • Win7系统Visual Studio下的openCV环境配置

    Win7系统Visual Studio下的openCV环境配置

    【本文为Windows7操作系统,64位,Visual Studio 2012,OpenCV版本号为2.4.9】

    opencv

    http://opencv.org/下载opencv的源码

    这里写图片描述

    这里选择opencv 2.4.9,下载后解压到选定的目录下

    这里写图片描述

    此时目录下的文件夹为:

    这里写图片描述

    其中build是SDK,sources是源码库。

    build中的文件夹分别为:doc:文档文件夹,include:C/C++头文件文件夹,java:java开发库文件夹,python:python开发库文件夹,×86和64,是C/C++的64和32位库文件夹,其中的vc10,11,12分别对应VC++2010,2012,2013

    .opencvuildx86vc11中有 bin,lib,staticlib三个文件夹,其中bin是公用动态链接库(dll), lib文件夹是动态库隐式调用所需的静态链接文件, staticlib文件夹是静态链接库。

    下面添加环境变量。计算机 —> 属性 —> 高级系统设置 —> 环境变量1.

    这里写图片描述

    将SDK的bin文件夹作为变量值,加入系统变量Path

    这里写图片描述

    用户变量里新建一个名为opencv2.4.9的变量,把build作为变量名

    这里写图片描述

    PATH里增加SDK的bin

    .opencvuildx86vc12in

    环境变量配置完成。下面对于visual studio 的项目配置属性:

    新建一个项目,控制台应用程序,如下

    这里写图片描述

    打开属性管理器

    这里写图片描述

    在Debug|Win32上右击,添加新项目属性表,命名为opencv2.4.9,修改包含目录和库目录和可执行文件目录,分别修改为:

    D:OPENCVopencvuildinclude;D:OPENCVopencvuildincludeopencv;D:OPENCVopencvuildincludeopencv2
    D:OPENCVopencvuildx86vc11lib
    D:OPENCVopencvuildx86vc11in

    这里写图片描述

    在链接器中添加附加依赖项:

    这里写图片描述

    添加的内容如下:

    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

    (d代表debug,release版本中需要去掉带d的lib)2.

    接下来配置Release|Win32,基本同上,在附加依赖项中去掉文件名的d(d代表debug)。如下

    这里写图片描述

    然后运行一段测试程序,如下:

    #include <opencv2/opencv.hpp> 
    using namespace cv;      
    int main()  
    {  
        Mat img = imread("test.jpg",1);  
        Mat grey; 
        Mat sobel;   
        double mini, maxi; 
        Mat display; 
        cvtColor(img, grey, CV_BGR2GRAY);    
        Sobel(grey, sobel, CV_32F, 1, 0); 
        minMaxLoc(sobel, &mini, &maxi);
        sobel.convertTo(display, CV_8U,255.0/(maxi - mini), -mini * 255.0/(maxi - mini));    
        namedWindow("src",CV_WINDOW_AUTOSIZE); 
        imshow("src", img); 
        namedWindow("dst",CV_WINDOW_AUTOSIZE); 
        imshow("dst", display); 
        waitKey();     
        return 0;   
    }  

    出现的报错:
    计算机中丢失:opencv_core249d.dll.
    将.uildx86vc11in和. uildx64vc11in中的所有内容分别拷贝至C:WindowsSystem32和C:WindowsSysWOW64,即可解决。但是出现其他问题:

    “Test.exe”(Win32): 已加载“C:WindowsSysWOW64 tdll.dll”。无法查找或打开 PDB 文件。
    “Test.exe”(Win32): 已加载“C:WindowsSysWOW64kernel32.dll”。无法查找或打开PDB 文件。
    “Test.exe”(Win32): 已加载“C:WindowsSysWOW64KernelBase.dll”。无法查找或打开PDB 文件。

    解决方法:

    调试—>选项和设置—>调试—>常规—>启用源服务器支持
    调试—>符号—>Microsoft符号服务器

    问题解决。

    然后运行出错,错误提示:应用程序无法正常启动,返回值为 -1073741701(0xc000007b)。
    下载DirectX Repair,检测并修复动态链接库(*.dll)

    这里写图片描述

    再运行测试程序,查看结果

    这里写图片描述

    终于好了,哈哈哈~~~


    1. 【注:环境变量(environmentvariables)是操作系统设定的运行环境的参数,当操作系统运行程序时,如果没有给出程序的完整路径,在当前文件夹有找不到该程序时,系统会按照环境变量给出的路径查找程序。环境变量分为系统变量和用户变量,相当于global和local variable,系统变量所有用户公用,用户变量仅限当前用户使用】
    2. 【注:包含目录,库目录,附加依赖项。 包含目录是指在include头文件(.h)时查找的目录,库目录是寻找.lib文件的目录,.lib文件是C++头文件中的函数的实现的.cpp,.cc,.c文件打包而成,附加依赖项就是这些lib库,包含着函数的具体实现,如果库目录错误,会提示link error:找不到某lib,而附加依赖项错误,会提示link error:未定义的函数】
  • 相关阅读:
    Address already in use: JVM_Bind 端口被占
    Excel PDF预览 excel导出
    js 判断日期是否节假日
    2020 idea的RunDashboard怎么显示出来
    sql server if else
    IDEA热部署总是失败的解决
    java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
    IOS开发 strong,weak,retain,assign,copy nomatic 等的区别与作用
    NSOperationQueue与GCD的使用原则和场景
    View加载过程
  • 原文地址:https://www.cnblogs.com/morikokyuro/p/13256873.html
Copyright © 2011-2022 走看看