https://blog.csdn.net/michaelkiven/article/details/56008364

Win7 64bit VS2010 配置 opencv3.2.0

    openCV的文章必须参考浅墨哥的,因为他书都出来好几版了,也是 CSDN 金牌啊,以下为他的链接 http://blog.csdn.net/poem_qianmo/article/details/19809337 ,very very 详尽,只是本人比较愚昧, 对VS不大熟悉,所以花了3天业余时间才成功搭建起环境,终于可以展示第一张图片了呀,兴奋呀!

   以下介绍为 Win7 64bit VS2010 配置 opencv3.2.0 的环境配置,与浅墨大哥所述的有些许出入,都是本人在参考浅墨哥文章搭建环境过程中,遇到报错所总结的心得.

   注:(文章大部分都是照搬浅墨哥的文章,细节部分按照openCV最新版本来作稍许修改)

1.下载和安装OpenCV SDK

VS2010不用说,肯定都安装了吧。来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装。与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已。(我们直接下载最新版,windows系统有32位和64位的选择,我们选择64bit 的安装包)

(转)Win7 64bit VS2010 配置 opencv3.2.0

在官网:http://opencv.org/上找到OpenCV windows版下载下来。(转)Win7 64bit VS2010 配置 opencv3.2.0

下载完后得到文件OpenCV 2.4.X(OpenCV3.2.0),双击后会提示解压到某个地方,推荐放到D:\Program Files\下,比如D:\Program Files,(因为OpenCV项目文件打包的时候,根目录就是opencv,所以我们不需要额外的新建一个名为opencv的文件夹,然后再解压,那是多此一举的事情)然后点击Extract按钮。

(转)Win7 64bit VS2010 配置 opencv3.2.0

等一段时间,OpenCV2.4.8(OpenCV3.2.0)近3个多G的文件就解压到了D:\Program Files下。

(转)Win7 64bit VS2010 配置 opencv3.2.0

 其中,build里面是使用OpenCV相关的文件,我们如果只是使用OpenCV的话呢,就只用管build里面的内容。下面的sources文件夹你嫌烦,你嫌占硬盘空间,完全可以删掉。但是需要注意的是,官方示例集,也就是samples文件夹里面的示例程序,在sources文件夹里面躺着呢,所以,如果真是要删的话,还是想清楚哦。

sources里面是源代码。可以直接查看。如何生成sln解决方案浅墨在这篇博文中有详细讲到:

 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译



2.配置环境变量

这步的配置方法如下:

【计算机】->【(右键)属性】->【高级系统设置】->【高级(标签)】->【环境变量】->“双击”系统变量中的PATH->在变量值里面添加相应的路径。如图:

<1>

(转)Win7 64bit VS2010 配置 opencv3.2.0

<2>

(转)Win7 64bit VS2010 配置 opencv3.2.0

<3>

(转)Win7 64bit VS2010 配置 opencv3.2.0

<4>

(转)Win7 64bit VS2010 配置 opencv3.2.0

<5>

(转)Win7 64bit VS2010 配置 opencv3.2.0


对于32位系统,就添加:

”;…… opencv\build\x86\vc10\bin”(和之前的就有有的环境变量用英文的分号“;”进行分隔)

 

而对于64位系统,可以两个都添加上:

”;…… opencv\build\x86\vc10\bin”

和”…… opencv\build\x64\vc10\bin”,

这样,到时候才可以在编译器Win32和X64中来回切换都吃得开,游刃有余~


例如,浅墨的就是

D:\Program Files\opencv\build\x64\vc10\bin;D:\Program Files\opencv\build\x86\vc10\bin


 PS:有童鞋亲测说64位系统也只需添加”…… opencv\build\x86\vc10\bin”即可,大家不妨一试。


注:变量值实际为bin文件夹的路径;D表示OpenCV安装于D盘;X64表示运行系统环境位64位系统,若安装于32位系统,应为X86;vc10表示编译环境为Microsoft Visual Studio 2010;变量添加完成后最好注销系统,才会生效。

 


3.工程包含(include)目录的配置

之前看过的好多博文都说“每次新建工程都要重新配置”,其实不用这样麻烦的。

首先是在Visual Studio里面新建一个控制台应用程序,最好是勾好空项目那个勾。

(考虑到看这篇博文的童鞋很少接触vs,那么浅墨在这里将过程详细截图出来——浅墨2014年6月11日注)

<1>打开visual studio,新建win32控制台项目,取个名字,比如叫test1,然后选好路径,点确定.

(转)Win7 64bit VS2010 配置 opencv3.2.0

<2>点一次“下一步”。

(转)Win7 64bit VS2010 配置 opencv3.2.0

<3>勾上空项目那个勾。

(转)Win7 64bit VS2010 配置 opencv3.2.0

<4>接着在解决方案资源管理器的【源文件】处右击->添加->新建项,准备在工程中新建一个cpp源文件。

(转)Win7 64bit VS2010 配置 opencv3.2.0

(转)Win7 64bit VS2010 配置 opencv3.2.0


<5>选定C++源文件,取个名字,比如叫“main”,然后点【添加】,那么,一个新的cpp文件就添加到了工程中。

<6>看过浅墨之前DirectX配置的相关博文的朋友们应该都知道,有一招叫属性管理器。在属性管理器中进行一次配置,就相当于进行了通用的配置过程,以后新建的工程就不用再额外的进行重新配置了。


在菜单栏里面点<视图>--<其他窗口>---<属性管理器>,那么就会在visual studio中多出一个属性管理器工作区来。

(转)Win7 64bit VS2010 配置 opencv3.2.0


<7>在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.user(右键属性,或者双击)即可打开属性页面。

 (转)Win7 64bit VS2010 配置 opencv3.2.0



<8>打开属性页面后,就是一番配置了。首先是在

【通用属性】 ->【VC++目录】 ->【包含目录】中

(转)Win7 64bit VS2010 配置 opencv3.2.0

添加上

D:\Program Files\opencv\build\include

D:\Program Files\opencv\build\include\opencv

D:\Program Files\opencv\build\include\opencv2 这三个目录。

(转)Win7 64bit VS2010 配置 opencv3.2.0

当然,这是之前把OpenCV解压到D:\Program Files\下的情况。实际的路径还要看你自己把OpenCV解压到了哪个目录下,根据你的实际情况来调节。


4.工程库(lib)目录的配置

其实这步和上一步差不多,属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.user(右键属性,或者双击)打开属性页面。

接着上步,就是在【通用属性】 ->【VC++目录】 ->【库目录】中,

(转)Win7 64bit VS2010 配置 opencv3.2.0

添加上D:\Program Files\opencv\build\x86\vc10\lib这个路径。(最好不要复制粘贴浅墨给出的路径,而是自己去预览里面指定出来,这样会准确得多)

(感谢小如风童鞋,之前给出的路径D:\Program Files\opencv\build\x86\vc10\lib里少个空格,直接复制浅墨给出的上面路径的童鞋就会出现“无法打开错误 1 error LNK1104: 无法打开文件“opencv_calib3d248.lib”类似的错误”,现已更正)

——————浅墨于2014年4月3日



4.1 Debug| x64 的配置

执行完上述操作, 你直接生成解决方案会发现报这个错误

模块计算机类型x64与目标计算机类型X86冲突

那是因为VS 默认 Debug 模式下使用了 Win32 的配置,这时执行下图操作, 选择 Debug 弹出下拉框

(转)Win7 64bit VS2010 配置 opencv3.2.0

点击 配置管理器

 (转)Win7 64bit VS2010 配置 opencv3.2.0


点击  活动解决方案平台

(转)Win7 64bit VS2010 配置 opencv3.2.0

键入或选择新平台下 ------ 选择 x64 ------- 从此处复制设置 ------- 选择 Win32 , ----- 点击确定

(转)Win7 64bit VS2010 配置 opencv3.2.0

最后清理解决方案---------> 重新生成解决方案



4.2 解决 error LNK1123: 转换到 COOF...错误

在 4.1 步骤生成解决方案的时候,通常会报下图错误

(转)Win7 64bit VS2010 配置 opencv3.2.0


此时按照下图方法来配置, 选择项目(我自己新建的项目为 OpenCV_CSDN), 右键打开列表,选择 -----------  属性

(转)Win7 64bit VS2010 配置 opencv3.2.0

进入到 项目属性页 ------> 点击 清单工具, 此时的活动平台应该为 x64 才对

(转)Win7 64bit VS2010 配置 opencv3.2.0


清单工具 -------> 输入和输出 ------> 嵌入清单 ----> 选择 否(转)Win7 64bit VS2010 配置 opencv3.2.0

点击 应用---确定 即可



5.链接库的配置

依然是“属性管理器”工作区中,点击项目->Debug|Win32->Microsoft.Cpp.Win32.user(右键属性,或者双击)即可打开属性页面。【通用属性】 ->【链接器】->【输入】->【附加的依赖项】

(转)Win7 64bit VS2010 配置 opencv3.2.0


对于【OpenCV 3.2.0添加3.0版本的lib,新版的lib非常简单。想用debug版本的库,添加

opencv_world320.lib

opencv_world320d.lib 这两个库即可。


其实,对已经发行和未来即将发布的新版OpenCV,只需看opencv\build\x64\vc14\lib下的库是哪几个,添加成依赖项就可以了。




另外注意按照如上的这种方式来配置,也许会出现debug下可以运行但是release下不能运行的情况(因为字符串读取问题引起的诸如图片载入不了,报指针越界,内存错误等等),这算是OpenCV自2.4.1以来的一个bug。

解决方案:想在release模式下运行出程序结果,在工程的release模式下,将不带d的lib(全部是19个)添加到【项目】->【属性】(注意这样打开的是当前工程的属性页,我们只需在这里将release版(即不带d)的相关lib添加进去)->【配置属性】->【链接器】->【输入】->【附加的依赖项】下即可。


——————浅墨 2014年3月17日注&2014年6月11日更新

类似错误如图:

(转)Win7 64bit VS2010 配置 opencv3.2.0


 

5.1 DirectX Repair 工具的安装

电脑使用过程中会碰到各种问题,打开软件就提示“应用程序无法正常启动0xc000007b”这个问题也很常见。 这里小编就来为大家分享应用程序无法正常启动0xc000007b怎么解决!
(转)Win7 64bit VS2010 配置 opencv3.2.0

导致原因
  • DirectX 组件损坏

解决方法

下载并安装 DirectX Repair V3.5(解压后334Mb左右大小) 修复工具(有64bit和32bit可选择),在网上搜索这个工具,一定要安装这个工具,这个工具自带了C++ 完整的动态库,我自己的系统用这个工具修复了5-6个 C++库包,用这个工具可以帮助规避很多缺失C++库的报错,如下图文所示

(转)Win7 64bit VS2010 配置 opencv3.2.0

(转)Win7 64bit VS2010 配置 opencv3.2.0

(转)Win7 64bit VS2010 配置 opencv3.2.0

直接检测修复即可修复缺失的 C++ 库



5.2  关于系统静态库的存放路径,例如报错 :(转)Win7 64bit VS2010 配置 opencv3.2.0

这种问题最简单粗暴的方法,是把下载好相关的dll都拷贝到Windows操作系统的目录下。如果你的Windows安装在C盘,那么路径就是c:\Windows\System32。按照之前我的OpenCV的存放环境,这些dll存放在

D:\Program Files\opencv\build\x64\vc10\bin目录下。

(转)Win7 64bit VS2010 配置 opencv3.2.0

到这个目录下,【Alt+A】全选,【Alt+C】拷贝,然后转到c:\Windows\System32下面,【Alt+V】复制,简单粗暴地就完成了。

PS:对于Windows 8,则要放在要在SysWOW64文件夹中。

 



6.在Windows文件夹下加入OpenCV动态链接库

PS:经过 hellofuturecyj 同学提醒,如果配置环境变量那步配置准确,且配置之后经过重启,就没有进行这步配置的必要了。即做完上面第五步的配置,重启一次,就可以直接跳到第七步,进行测试,看出不出图。

当然,如果需不重启而马上来看配置的结果,就可以试试这里的方式。

——————浅墨 2014年6月16日注


这一步是各种介绍OpenCV的配置的相关博文中都没写出来的。根据这些博文配置出来的环境,在运行基于OpenCV的程序的时候,往往会得到这样类似的结果:

 (转)Win7 64bit VS2010 配置 opencv3.2.0


我的计算机则报出  计算机中丢失 msvcp140.dll, VCRUNTIME140.dll,  (如图), 我直接在百度上找了这个库直接下载,然后加入到C:\Window\System32 文件夹中即可,或许也会报其他库的缺失,直接尝试百度下载一个,加入到System32 . 或许更多的提示缺失 VC 的库文件,


这种问题最简单粗暴的方法,是把相关的dll都拷贝到Windows操作系统的目录下。如果你的Windows安装在C盘,那么路径就是c:\Windows\System32。按照之前我的OpenCV的存放环境,这些dll存放在

D:\Program Files\opencv\build\x64\vc10\bin目录下。

(转)Win7 64bit VS2010 配置 opencv3.2.0

到这个目录下,【Alt+A】全选,【Alt+C】拷贝,然后转到c:\Windows\System32下面,【Alt+V】复制,简单粗暴地就完成了。

PS:对于Windows 8,则要放在要在SysWOW64文件夹中。

 

7.最终的测试

就用载入并显示一张图片到窗口的程序,用于我们的配置测试吧。

新建一个空项目的控制台应用程序,新建一个cpp文件,然后粘贴如下代码:


#include<iostream>
 

#include <opencv2/core/core.hpp>
 

#include <opencv2/highgui/highgui.hpp>
 


 
  using namespace cv;   

int
 main() 


    // 读入一张图片(游戏原画) 

    Mat img=imread("pic.jpg"); 

    // 创建一个名为 "游戏原画"窗口 

    namedWindow("游戏原画"); 

    // 在窗口中显示游戏原画 

    imshow("游戏原画",img); 

    // 等待6000 ms后窗口自动关闭 

    waitKey(6000); 

}  

放置一张名为pic.jpg的图片到工程目录中,然后点击“运行“按钮,如果配置成功,就不会报错,得到预想的运行结果:

(转)Win7 64bit VS2010 配置 opencv3.2.0


最后一个坑: 浅墨哥提供的这个图片过大, 请用截图工具把该图片截图后尝试, 并且后缀需要用 jpg 格式, 否则会报类似以下界面的这个错误

(转)Win7 64bit VS2010 配置 opencv3.2.0


以上内容参考浅墨哥的原文,

增加了 4.1的 Debug x64 配置内容

增加了 4.2 的解决 error LNK1123: 转换到 COOFF 期间失败: 文件无效或损坏的 报错 方案

增加了5.1 的 DirectX Repair 的安装步骤

,修改了一些VS2010 64bit 版本的出入,例如属性管理器的位置等

增加了最后一个坑的解决方案

                                                                                                        --------------- by Michael.Ke(MK)






相关文章: