zoukankan      html  css  js  c++  java
  • VS2010下配置OpenCV2.2

    最近用上了Opencv2.2,在这里面使用的还有些门道,于是记录下来,供大家参考

     环境:windows 7+visual studio 2010+opencv 2.1 

    各位进行操作时,最好把其它无关的程序均关掉,最好把杀毒软件关掉,360也都关掉,否则会出现未知的错误
    如果所在的环境是VS2010,那么必须要用CV2.2 ,CV2.1是针对VS2008的版本
    1、下载文件 
    OpenCV2.2 
    直接下载opencv2.2 for vs2010的安装版进行安装(下载网址:http://www.opencv.org.cn/index.php/Download)

    CMAKE 2.8.1 
    http://www.cmake.org/files/v2.8/cmake-2.8.1-win32-86.exe 
    INTELTBB3.0[/url] 
    http://www.threadingbuildingblocks.org/uploads/77/151/3.0/tbb30_20100406oss_win.zip 

    这三个部件可以在打开迅雷后直接复制下载


    2、首先安装CMAKE2.8.1,然后将OpenCV2.2安装到你将要放置OPENCV的地方,接着,解压INTEL TBB 3.0,比如将OPENCV和TBB都放在D:\Program Files里面。并在OpenCV文件夹下创建子目录D:\vs2010,用于存放编译结果。 

    检查D:\Program Files\OpenCV2.2\bin和D:\Intel TBB 3.0\bin\ia32\vc10是否已经被加入到环境变量(我的电脑-属性-环境变量)PATH,如果没有,请加入。加入后需要注销当前Windows用户(或重启)后重新登陆才生效。(可以在任务管理器里重启explorer.exe) 

    打开CMAKE 2.8.1,在Where is the source code后面填写(或者选择)OPENCV 2.2的安装目录,如D:\Program Files\OpenCV2.2,在Where to build the binaries里填写刚创建的子目录D:\vs2010。接着点击Configure按钮,在出现的对话框中选择Visual Studio 10,下面的选项选择Use default native compilers,点击Finish继续。 

    过一会儿之后会出现一个配置窗口(此处注意在CMAKE配置的时候是不能够打开VS2010的),然后勾选BUILD_SHARED_LIBS,BUILD_TESTS,OPENCV_BUILD_3DPARTY_LIBS,以及下面的WITH_JASPER,WITH_JPEG,WITH_PNG,WITH_TBB(一般这个没默认选上),和WITH_TIFF选项 

    这是配置时出现的错误,稍后一会就会解决

    继续,
    勾好后再次点击Configure,之后再配置窗口最上面会出现TBB_INCLUDE_DIR-NOTFOUND字样的红色选项,此处为CMAKE找不到INTEL TBB的包含文件为之所致,将INTEL TBB 3.0里面的INCLUDE文件夹路径(注意是INCLUDE,不是INCLUDE里面的子文件夹)定位到该配置属性的路径里(就在这一项的Value列,你点击一下就会出现选择文件夹的对话框),再次点击Configure,在TBB_LIB_DIR处又会出现红色一行,此处为INTEL TBB的库文件位置,此处必须将路径定位到含有LIB文件的位置(就在这一项的Value列,你点击一下就会出现选择文件夹的对话框,别找不到),比如我的安装位置是D:/Program Files/Intel TBB 3.0/lib/ia32/vc10,也就是说,在lib文件夹下会有子文件夹,必须定位到子文件夹对应的VC版本文件夹里去,这里由于是配置VS2010,所以我们选择VC10文件夹,ia32子文件夹是32位系统,此处应根据对应操作系统选择。 

    然后,我们再次点击Configure,此时所有红色行已经变为白色,同时在下方的信息里面会有一条为Use TBB:YES的字样,证明我们已经将INTEL TBB配置完毕,然后点击Generate。 

    3、完成后在刚创建的子文件夹D:\vs2010下会出现一个VS2010的解决方案文件OPENCV.sln,双击打开后,出现OPENCV 2.1的所有工程项目,先不要着急编译。 

    首先点击Solution Explorer(解决方案资源管理器)里面Property Manager(属性管理器)(在视图--》其它窗口--》属性管理器)下的选项卡,依次展开ALL_BUILD—Debug|Win32—右键单击Microsoft.Cpp.Win32.user,选择Properties(属性),然后选择VC++ Directories(VC++目录),在Executable Directories(可执行文件目录)里面将INTEL TBB 3.0的可执行路径(bin)填写到里面,此处与LIB一样,必须定位到VC10才可以,例如我的是D:\Program Files\Intel TBB 3.0\bin\ia32\vc10,将Include Directories(包含目录)定位到Intel TBB的Include文件夹即可,无需再往深入定位,在Library Directories(库目录)里填写Intel TBB的LIB文件位置,定位到VC10文件夹。 

    单击确定之后,将选项卡切回到Solution Explorer(解决方案资源管理器),将编译模式切换为Debug模式,右键单击Solution OpenCV(解决方案OpenCV),选择Rebuild Solution(重新生成解决方案),编译后再右键单击INSTALL项目,选择Build(生成),之后将编译模式切换为Release,重复debug模式下的步骤。完成后在你的解决方案文件夹D:\Program Files\OpenCV2.2\vs2010里面会生成bin目录,include目录,lib目录。 

    此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:\vs2010\bin目录中;

    OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将出现在D:\vc2010\lib目录;

    头文件*.h出现在D:\vc2010\include\opencv中。

    配置Opencv2.2的环境变量是一件非常麻烦的事情,需要很大耐心

    配置Windows环境变量Path

    将OPENCV安装时的环境变量,以及Generate以后的VS2010\bin,VS2010\include\opencv2,forVS2010\lib 都加入Windows系统环境变量Path中。

    D:\Program Files\OpenCV2.2\include

    D:\Program Files\OpenCV2.2\forVS2010\bin

    D:\Program Files\OpenCV2.2\forVS2010\include\opencv2

    D:\Program Files\OpenCV2.2\forVS2010\lib

    到此OPENCV 2.1配置完成,以后建立OPENCV项目时都需在项目里面添加依赖库,
    方法是先建立一个C++项目
    配置OpenCV环境
    菜单-->点击Solution Explorer(解决方案资源管理器)-->Property Manager(属性管理器)(在视图--》其它窗口--》属性管理器)下的选项卡
    —Debug|Win32—右键单击Microsoft.Cpp.Win32.user,选择Properties(属性),然后选择VC++ Directories(VC++目录),

    需要编辑的项目有三个:Excutable files directory(可执行文件目录),Include Directory(包含文件目录),Library Directory(库目录)

    可执行文件目录中填写的文件夹地址为:

    因为我在刚开始安装时使用的CV2.1所以浪费了很久,又拆下来重新装的2.2,但是文件夹还是采用的2.1的根目录文件夹,大家安装2.2时,文件夹自然就是2.2的。

    VC++目录中  选择包含目录,加入目录 

    VC++目录中 选择库目录,加入目录 

    至此,所有的目录添加完毕,下面开始添加依赖库。

    在Properity Explorer(属性管理器)里面右键选择项目,选择Properties(属性),在Debug|Win32下选中Microsoft.Cpp.Win32.user右键选择属性,

    然后在Linker(链接器)里面选择Input(输入),在依赖库里添加OPENCV的D:\Program Files\OpenCV2.1\forVS2010\lib中的.lib文件名称即可

    文件名后面有小写字母“d”的为Debug库(调试模式库),没有“d”的为Release库(发布模式库)。例如active(debug)[活动(debug)]里添加cv210d.lib cvaux210d.lib cxcore210d.lib highgui210d.lib ml210d.lib,release里添加cv210.lib cvaux210.lib cxcore210.lib highgui210.lib ml210.lib 
    我把所有的lib文件名都填进去了,带d的Debug库(调试模式库)和不带d的Release库(发布模式库)都放到这里面。OK!
    新建win32控制台项目,修改主文件为: 
    #include "stdafx.h"  
    #include "highgui.h"  
      
    //所有的以新风格命名的函数都在 cv 命名空间中   
    using namespace cv;   
      
    int _tmain(int argc, _TCHAR* argv[])   
    {   
      
        const char* imagename = "E:\\lena.jpg";   
      
        Mat img = imread(imagename); // Matlab风格的 cvLoadImage 函数的另一种调用   
        if(img.empty())   
        {   
            fprintf(stderr, "Can not load image %s\n", imagename);   
            return -1;   
        }   
      
        if( !img.data ) // 检查是否正确载入图像   
            return -1;   
      
        namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口   
        imshow("image", img); //显示图像   
      
        waitKey();   
      
        return 0;   
    }  

    在VS2010中,图片路径一定要写成"E:\\lena.jpg";  这种形式。

    在编译时,可能直接Debug,程序不会有反应并且汇报:

    Cannot find or open the PDB file

    这个是因为在VS2010下的特殊原因,有人推荐

    打开VS2010:工具--》选项--》调试--》符号
    接下来就是选择Microsoft,然后确认

    但是这样有一个缺点:编译时间特别长,运行非常慢。

    正解是:在运行时采用Ctrl+F5这样问题就解决了。

    在运行时还会出现虽然图片的路径正确,但是程序仍然报:cannot find the image

    这时将VS2010的运行状态从Debug转换成Release,然后再Ctrl+F5,图片正常显示。

     

     

  • 相关阅读:
    day_03、初识函数
    一、Python简介
    四、列表和元祖
    MinGW安装和使用
    python编码总结
    开博第一篇,学习markdown
    python 2.7.11安装pywin32过程中 停止工作问题
    python读写excel
    关于\r和\n的区别
    1.1 Python for macOS 安装与配置
  • 原文地址:https://www.cnblogs.com/woshitianma/p/2763061.html
Copyright © 2011-2022 走看看