1. 主页 > vs安装问题 > VS2013安装问题 >

Visual Studio 2013中OpenCV2.4.9的配置(64位的配置)

之前我是用的OpenCV2.4.8版本,因为重装了电脑,在官方网站看到了新版本,不过发现新的3.0.0的几个版本的文件好像并不一样,为了能够正常开发,还是选择了低版本的2.4.9。
因为用VS2013习惯了,所以也就没用在高版本的VS,这里因为需要重新安装,顺便写这个配置说明,供大家参考。

1、准备工作
(1)下载OpenCV
从OpenCV官方网站下载OpenCV2.4.9版本(OpenCV for Windows)
附:OpenCV2.4.9版本下载地址
https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.9/opencv-2.4.9.exe/download
(2)安装Visual Studio 2013
安装这个就不多说了,很简单,我这里用的是VS2013旗舰版

2、解压OpenCV
首先选择解压目录,我这里选择了D:\OpenCV\2.4.9\这个目录,解压后的结果如下
解压路径
可以看到在opencv文件夹下有build和sources两个文件夹,build是SDK包,sources是源码包(其中也有opencv使用例子的源码)
build文件夹
在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**一个文件夹可以看到以下内容:
vc12文件夹
因不同版本VC++生成的库文件所需的运行时不同,因此配置VC++工程时需要选择相对应的二进制库文件。在VC XX文件夹下bin文件夹是公用的动态链接库,在系统环境变量里配置后,所以opencv工程都能共享他们;lib文件夹是动态库隐式调用所需的静态链接文件;staticlib文件夹是静态链接库,需要生成不依赖动态库的程序就是用它们。

3、设置环境变量
- “计算机”上右键选“属性”打开系统设置窗口
- 选择“高级系统设置”打开“系统属性”窗口
先找到自己要用的vc**目录,注意选择是需要x86/x64相关库,这个后续编写程序的时候很有用
在系统变量里找到Path变量,在Path中添加值SDK中的bin目录。
环境变量的设置
同时也在本地用户变量下添加一个OpenCV的变量
这里写图片描述
**注:环境变量配置后,需重启系统才能生效。
这一步的环境变量的设置是必须的,否则可能能够编译通过,但是不可以运行程序,程序的弹窗错误提示为“应用程序无法启动,系统找不到。。。”
这里如果重启了,后面就不会出现这个错误了,不过这个影响不大,可以后面再重启**

4、进行VS中的配置
(1)新建一个项目
新建一个win32控制台应用程序就可以了,名称什么的都随便起
(2)测试代码
其中包含lena.jpg文件,图片如下,可以右键保存以下
lena.jpg
将该图片保存在新建的项目目录下,如果不想保存到项目目录下,修改程序中的路径也可以,可以改成保存到的路径(绝对路径)

#include "stdafx.h"
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{

    const char* imagename = "lena.jpg";//如果需要,修改此处的路径

    //从文件中读入图像
    Mat img = imread(imagename);

    //如果读入图像失败
    if (img.empty())
    {
        fprintf(stderr, "Can not load image %s\n", imagename);
        return -1;
    }

    //显示图像
    imshow("image", img);

    //此函数等待按键,按键盘任意键就返回
    waitKey();

    return 0;

}

(3)Debug下的配置
注意,首先的配置可以掠过,这是一个错误的配置,因为是64位计算机,但是建议从头开始看,到下个注意点重新配置起
在VS2013中,找到“视图”→“其它窗口”→“属性管理器”,在VS中会打开如下窗口:
VS2013属性管理器
打开Debug|Win32,右键选择Microsoft.Cpp.Win32.user的属性
属性配置目录
然后弹出对话框,首先设置通用属性中的VC++目录,其中可执行文件目录、包含目录、库目录都是需要设置的,设置结果如下图:
需要配置的VC++目录
可执行目录为:
解压文件夹下opencv\build\x64\vc12\bin;
包含目录三个为:
解压文件夹下opencv\build\include;
解压文件夹下opencv\build\include\opencv;
解压文件夹下opencv\build\include\opencv2;
库目录为:
解压文件夹下opencv\build\x64\vc12\lib;
因为我的解压文件夹是 D:\OpenCV\2.4.9\所以配置如图片显示

然后配置通用属性中的,链接器中输入中的附加依赖项,如下图
连接器输入配置
Debug下的附加依赖项如下:
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
添加到连接器中必须是每个单独一行的,显示如下
连接器-附加依赖项
然后配置就结束了,现在我们运行这段程序选择“调试”→“开始执行(不调试)”,发现运行有错误“模块计算机类型 x64 与目标计算机类型 x86 冲突”
模块计算机类型冲突
这里是正确的配置开始,前面掠过的从这里一步一步跟着做就可以配置成功了
这个错误的原因很简单,就是我们配置的都是64位计算机的运行库等信息,但是执行的是32位计算机下的程序,这时候需要在配置管理器中添加64位的环境,首先,找到配置管理器,如下图
配置管理器
然后新建一个x64的平台,新建的步骤如下两图
新建活动解决方案平台
新建x64解决方案平台
然后我们可以看到属性管理器中有4个选项了
这里写图片描述
然后我们选择”Debug|x64“中的Microsoft.Cpp.x64.user(右键点击打开其属性,后面的配置和前面相同)然后弹出对话框,首先设置通用属性中的VC++目录,其中可执行文件目录、包含目录、库目录都是需要设置的,设置结果如下图:
需要配置的VC++目录
可执行目录为:
解压文件夹下opencv\build\x64\vc12\bin;
包含目录三个为:
解压文件夹下opencv\build\include;
解压文件夹下opencv\build\include\opencv;
解压文件夹下opencv\build\include\opencv2;
库目录为:
解压文件夹下opencv\build\x64\vc12\lib;
因为我的解压文件夹是 D:\OpenCV\2.4.9\所以配置如图片显示

然后配置通用属性中的,链接器中输入中的附加依赖项,如下图
连接器输入配置
Debug下的附加依赖项如下:
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
添加到连接器中必须是每个单独一行的,显示如下
连接器-附加依赖项
然后配置就结束了,这次是真正正确的结束了,现在我们运行这段程序选择“调试”→“开始执行(不调试)”,结果发现还是有错误,这次的错误高级了一些,是弹窗显示的,显示如下:
无法启动应用程序
直接无法启动应用程序,这个原因很简单,想一下,我们之前配置了系统的环境变量,但是还没有重启计算机,所以现在就是要重新启动计算机的时候了。(如果之前配置完环境变量之后重启了,就没有这个错误了)
重启计算机结束之后,我们重新打开VS2013的这个项目,然后点击“调试”→“开始执行(不调试)”,现在我们就发现程序可以正常运行了,运行结果如下图:
配置成功的测试结果

5、Release下的配置
细心的小伙伴可能发现了,我们这里好像少了什么,对,就是Release下的配置,这个配置跟Debug是一样的,不一样的是开始的选择,我们要选择如下图的属性:Release | x64中的Microsoft.Cpp.x64.user(右键点击打开其属性,VC++目录的配置和前面Debug相同,不同的是链接器输入的附加依赖项的配置)
Release配置选择
VC++目录配置按照前面Debug的配置配置完成后,配置”连接器“→”输入“下的附加依赖项,这个是跟Debug不同的,他们需要的动态链接库是不一样的,Release下的动态链接库如下:
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_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_videostab249.lib
配置完成后就可以进行OpenCV的编程了

PS. 这里我配置完了Debug之后不知道为什么Release也给配置了,应该是配置过程中配置的后面显示的是不适用的原因(对比下图红框可以发现),当然配置的方法还有其他,比如选择”项目“→”属性“显示如下,这个的不同之处是可以分别配置Debug和Release模式下的各项内容,所以小伙伴们可以用如下方式进行配置哈
对项目属性配置

欢迎跟我进行OpenCV的交流学习
QQ:80935495
E-mail: liangkingz@vip.qq.com

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2013anzhuangwenti/2020/0725/5298.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息