zoukankan      html  css  js  c++  java
  • vs2010+opencv2.4.4的配置在基于win8的64位系统上(自己结合网上不同的教程自己亲自实验)

      (注:参考:http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html,还有一个找不到链接了,是opencv china里的,找不到了,标题叫在vc2008 express下安装opencv2.3.1),参考这两个,结合自己的实际情况,亲自实验成功。

    环境 win8(或者win7或者xp都行)+opencv +vs2010

    步骤一:下载opencv,下载之后将opencv解压到某个地方,我的是解压倒d盘的(D:Program FilesOpenCV2.3.1opencv,),下载vs2010,并安装(微软的东西到:msdn我告诉你,这里去下就ok了,都是官方原版东西)。

    步骤二:配置环境变量

    win8下就是 windows键+i 点电脑信息--〉高级系统设置--〉高级--〉环境变量,在  系统变量  里与上边的   用户变量   里分别填上

      Path:

          32位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx86vc10in(这里如果你的opencv解压到其他盘,只把根目录换一下就行,如果解压到f盘里,根目录为F:opencv,则环境变量为:F:opencvuildx86vc10in,以下的相应修改即可)。

          64位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx64vc10in

    (这里我看有些人添加的是比较复杂,如果path里只添加上边那一个不行的话,那就多添加几个(就是在path环境变量里将TBB的环境变量,还有跟路径加上了),中间用 英语的分号“;”隔开,

          32位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx86vc10in;D:Program FilesOpenCV2.3.1opencvuildcommon bbia32vc10;D:Program FilesOpenCV2.3.1opencv

          64位系统 & VC2010添加的环境变量为:D:Program FilesOpenCV2.3.1opencvuildx64vc10in;D:Program FilesOpenCV2.3.1opencvuildcommon bbintel64vc10;D:Program FilesOpenCV2.3.1opencv

      TBB:

          32位系统 & VC2010:D:Program FilesOpenCV2.3.1opencvuildcommon bbia32vc10

            64位系统 & VC2010:D:Program FilesOpenCV2.3.1opencvuildcommon bbintel64vc10

    步骤三:打开vs2010,建立工程测试()

    1)、文件->新建->项目->Visual C++->Win32 控制台应用程序(输入名称test)

    2)、确定->下一步->附加选项选“空项目”->完成

    3)、解决方案资源管理器->源文件(右键)->添加->新建项

    4)、Visual C++->C++文件:输入名称test点添加

    5)、粘贴下面的代码,保存

    1 #include <opencv2opencv.hpp>
     2 #include <iostream>
     3 #include <string>
     4 using namespace cv;
     5 using namespace std;
     6 int main()
     7 {
     8     Mat img = imread("opencv.jpg");
     9     if(img.empty())
    10     {
    11         cout<<"error";
    12         return -1;
    13     }
    14     imshow("xx的图片",img);
    15     waitKey();
    16 
    17     return 0;
    18 }
    

      

    6)、把自己想要显示的图片改名为opencv.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)

    第四步:配置工程的opencv依赖,(项目(菜单项)->…属性->VC++目录:需要配置“包含目录”和“库目录”两项。)

    1.配置   包含目录

    也即告诉VC去什么地方寻找OpenCV的头文件,打开VC,选择菜单工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件,包含 D:Program FilesOpenCV2.3.1opencvuildinclude;D:Program FilesOpenCV2.3.1opencvuildincludeopencv;D:Program FilesOpenCV2.3.1opencvuildincludeopencv2 

    2.配置  库目录

    也即告诉VC去什么地方寻找OpenCV的库文件。

        32位系统 & VC2010,库目录为:D:Program FilesOpenCV2.3.1opencvuildx86vc10lib

        

        64位系统 & VC2010,库目录为:D:Program FilesOpenCV2.3.1opencvuildx64vc10lib

    3.配置连接器:项目(菜单项)->…属性->连接器->输入->附加依赖项

     

    在[链接器 LINKER]的[输入INPUT]中,为项目的Debug配置增加 [附加依赖项 Additional Dependencies]:

    opencv_calib3d231d.lib

    opencv_contrib231d.lib

    opencv_core231d.lib

    opencv_features2d231d.lib

    opencv_flann231d.lib

    opencv_gpu231d.lib

    opencv_highgui231d.lib

    opencv_imgproc231d.lib

    opencv_legacy231d.lib

    opencv_ml231d.lib

    opencv_objdetect231d.lib

    opencv_ts231d.lib

    opencv_video231d.lib

    (可根据实际需要删减)注意,请打开了新编辑窗口(即点击了“...”按钮)“附加依赖项”,并一条一条分别加入,一条一行(一个回车),(注意行末不要加";")否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“…….lib”

    (如果下载的OpenCV不是2.3.1版本,请将"XXX231d.lib"中的"231"更改为对应的版本号,例如:下载OpenCV 2.4.0,则统一改为"XXX240d.lib",否则会出现类似以下错误:1>LINK : fatal error LNK1104: 无法打开文件“XXX.lib”)

     

     

    为项目的Release配置增加[附加依赖项 Additional Dependencies]:

    opencv_calib3d231.lib

    opencv_contrib231.lib

    opencv_core231.lib

    opencv_features2d231.lib

    opencv_flann231.lib

    opencv_gpu231.lib

    opencv_highgui231.lib

    opencv_imgproc231.lib

    opencv_legacy231.lib

    opencv_ml231.lib

    opencv_objdetect231.lib

    opencv_ts231.lib

    opencv_video231.lib

    (可根据实际需要删减)*

    到这里,执行。测试看看能执行出来吗

    32位的机器应该没什么问题了,但是对于64位机器这时候执行的时候,会报错

    fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突

    对于这个问题,(下边内容只64位看就可以了,32位的可以忽略了。)

     win8 下,安装的VS2010,然后搭配opencv2.4.4运行,报错为:fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突 。通过网上查询,给错的答案大同小异,但是依然有很多朋友按照网上的答案无法解决这个问题,以下是我的解决方案

     

    1、原因:win8下的64位系统,在运行程序的时候,需要的DLL必须是64位系统编译的,VS2008也必须在安装的时候,选择了64位编译的支持。如果安装的时候,已经选择了,那么出现该问题的解决办法,安装网上常规的思路即可。既:

           (1)右键项目名,点击属性,弹出项目属性页,找到链接器----高级,修改右侧的目标计算机,选择有X64的那个选项。
            (2)右键项目名,选择清理解决方案,清理完之后选择X64平台编译器,然后重新生成解决方案,便可以调试成功。

    注:按照网上搜到的方法执行完以上步骤后,我的程序仍然报错,只是X86和X64的位置换了一下。。汗死。。于是折腾出一下步骤:

    2、如果此时问题依然没有解决,则可能是系统包含的DLL文件是win32下编译的,则,需要把DLL换成64位系统编译的。比如opencv2.3.1,之前编译的就是win32下编译的,则需要重新编译,具体步骤如下:

          (1)、右键 解决方案->属性,将平台选为X64,若无此选项,则点击配置管理器,选择X64平台,若无则新建一个X64平台并选中。

     

     

     

           (2)、接着,打开OpenCV.sln,右键清理,重新生成,注意配置管理器里面选择x64平台,不然编译出来的还是不能使用。   

     

     

             (3)、编译完成之后,配置DLL和Lib的路径后,就不会再出以上的错误了。

    ok了。。。

  • 相关阅读:
    UDP协议
    发送大数据文件
    socket
    异常处理
    网络编程
    JupyterStudy——安装与环境部署
    PythonStudy——封装
    PythonStudy——继承、接口、鸭子类型
    PythonStudy——面向对象
    PythonStudy——xml 模块
  • 原文地址:https://www.cnblogs.com/zhulintingfeng/p/opencv.html
Copyright © 2011-2022 走看看