OpenCV2.4.9 官方预编译版本+Visual Studio 2013+win8.1 x64 环境 配置记录
2014-12-02 12:12
381 查看
\\Note:赶进度,没有尝试自己编译OpenCV库,本日志所用OpenCV库为OpenCV官网预编译好的版本
时间 2014年12月1日
配置环境:win8.1 x64系统 (win7 x64系统应该也适用)
OpenCV版本:2.4.9 官方预编译版本
IDE:Visual Studio 2013
配置参考教程 OpenCV官方文档:
1. Installation in Windows
http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html#windowssetpathandenviromentvariable
2. How to build applications with OpenCV inside the Microsoft Visual Studio http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to
(官方文档其实很详细很全,如果按照步骤一步步来应该大方向上不会有问题的,不过个人在配置过程中还是遇到了一些需要注意的小问题,这里记录一下)
配置过程:
1. 下载官方已编译好的OpenCV库:http://opencv.org/downloads.html
选择 OpenCV for Windows。
2.将下载好的库放在一个自己喜欢的目录下。
其目录结构大致如下:
总目录:
其中,build为openCV官方编译好的openCV库,sources为该版本openCV的源码。我们在IDE开发环境里需要用的,就是build里面已编译好的库文件。
build目录结构:
跟本日志配置相关的目录有三个,一个是include文件夹,这里包含了该版本openCV的头文件;另外两个分别是x64和x86文件夹,里面分别包含针对开发64位程序与开发32位程序所需要的openCV库文件。
以x86目录为例,其结构如下:
vc10,vc11,vc12分别为针对visual studio 2010,2011,2012编译的openCV库文件。因为本日志所用IDE为VS2013,所以选择了vc12:
bin文件夹里包含了开发openCV程序时所需要的所有动态链接库文件,lib里面是openCV的lib文件,由于刚入门,这两者的真正区别现在只有一个感性认知,尚未深入了解,等以后有时间把它补上。#希望自己别忘记了。。。#
3. 现在我们有了openCV库,也大致了解了它的目录结构,那么,在将openCV库配置到IDE的过程中,实际上,我们需要做两件事:
(1)* Tell to the compiler how the OpenCV library looks. You do this by showing it the header files.
(2)* Tell to the linker from where to get the functions or data structures of OpenCV, when they are needed.
*:摘自openCV官方文档How to build applications with OpenCV inside the Microsoft Visual Studio
在做这两件事情之前,为了以后方便,我们还需要做一些准备工作--利用windows的系统环境变量配置好OpenCV库路径:
3.1 在windows的系统环境变量中配置OpenCV库所在的目录和OpenCV的动态链接库目录。
电脑=》属性=》高级系统设置=》环境变量
3.1.1 在“系统变量”里新建变量名为“OPENCV_DIR”的环境变量,其变量值为”<your OpenCV DIR>\build\<OpenCV program architecture>\<your vs version>"
其中,<your OpenCV DIR>为OpenCV库在你的PC上的路径;<OpenCV program architecture>为开发包含OpenCV库的程序的目标系统架构,根据情况选择x86或者x64;<your vs version>为你的Visual Studio版本,这里因为下载的官方库尚未提供vs13版本,因此我选择了最新的vs12。
在配置好这一环境变量后,以后我们在IDE里需要引用OpenCV时,可以直接以OPENCV_DIR做为OPENCV库所在的路径,这样如果我们以后openCV库路径有所变动,或者我们将项目移植到别人电脑上时,就会省去在IDE逐一更改显式路径的麻烦。
接下来,我们需要配置OpenCV的dll路径。dll是windows可执行程序在runtime时会调用的动态链接库。一种配置方式是在系统变量Path里面加入程序需要调用的动态链接库路径,这样程序在运行时,系统就知道该去哪里找相应的dll了:
在“系统变量”列表里找到名为“Path”的系统变量:
在其变量值里加入OpenCV的bin路径:"%OPENCV_DIR%\bin" (注意,因Path里存储了许多路径,新增路径时注意添加英文分号';'做为间隔符)
好了。至此我们的准备工作就完成了。接下来开始配置IDE。
3.2 启动VS2013,文件=》新建=》项目
选择Win32控制台应用程序,在这里我将项目命名为“HelloOpenCV”,哈哈,配置为空项目
接下来有两种配置方法,一种是全局配置,也就是在VS2013里的所有项目都会被配置上OpenCV库,一种是local配置,也就是只为当前的项目配置OpenCV。方法不同,各有利弊,我选择的是local的方法:
1.视图=》属性管理器,在这里我们来配置HelloOpenCV链接OpenCV库所需要配置的属性:
在属性管理器面板上,我们可以看到Debug和Release两个目录,也就是说,实际应用过程中,我们可以根据情况为debug和release版本分别定义不同的编译规则:
下面以配置Debug版本的编译规则为例:
右键Debug,添加新项目属性表
方便起见,我将它命名为OPENCV_Debug。
接下来,在"C/C++"选项里配置OpenCV的头文件路径,这里我们就看到之前配置环境变量OPENCV_DIR的好处了
在“附加包含目录”里添加"$(OPENCV_DIR)\..\..\include" 。这条语句的意思是,前往OPENCV_DIR所指的的目录=>返回上一级=>返回上一级=>在当前目录下找到include文件夹做为附加包含目录之一。
好,至此我们配置好头文件路径了,接下来去配置链接器。
还是在OpenCV_Debug属性页,前往“链接器”选项:
1.“链接器”=>常规:选择“附加库目录” 在这里添加OpenCV库的lib文件夹(这里的含义还不是很清楚,有时间学习一下):"$(OPENCV_DIR)\lib"
2.“链接器”=>输入:在”附加依赖项“里加入程序所需要用到的OpenCV lib文件:
点击编辑:
需要注意的是,我们目前配置的是Debug版本的编译规则,OpenCV为我们提供了两种版本的lib,其区别在于:
Debug:
Release:
注意到了吗,debug版本的lib文件名末尾比release版本的多了一个d,表示为debug版本。
因此,现在我们在附加依赖项里加入debug版本的lib文件。在这里,我所安装的OpenCV 2.4.9的debug lib文件名列表如下:
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_videostab249d.lib
release版本的文件名与这个列表相同,只不过每个文件名末尾都少了一个d。
在添加完依赖项之后,确定,保存。至此,我们的OpenCV应该就是配置完毕了。(注意,这里release的配置跟debug基本类似,所以略去了)
4. Next,test it!
好,现在将官方文档http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to
上的demo拿来测试一下配置是否正确。
在这里,因为官方文档是openCV3.0版本的demo,所以直接拿来用之前还要更改一下include文件:
将
接下来我偷了个小懒,把这段代码注释掉:
然后硬编码了一个test图像路径:
好了,运行,结果如下:
附注:
在最后test过程中,我遇到的问题有:
1. include文件报错
原因:官方demo与我下载的版本不符。
解决方案:更改代码中的include配置
2.运行程序时报 ”xxx.dll 丢失/找不到"
原因:IDE没有找到OpenCV的动态链接库
解决方案:
(1)确认环境变量中的OPENCV_DIR指定的opencv路径是正确的。
(2)确认在系统变量“Path”中已添加OpenCV的bin路径:%OPENCV_DIR%\bin
(3)确认已配置的环境变量已经被系统更新:重启或注销系统,再看看运行情况。
后记:
恩,其实最开始我是在Mac OSX下配置的OpenCV,期间经历了安装homebrew,安装cmake,安装openCV,然后配置xcode。。。。
最后很蛋疼地发现mac osX更新实在太快,在OS 10.10,xcode6.1环境下的openCV配置、开发资料网上少得可怜,也就stackoverflow有那么一丁点。。。
楼主这几天为了套一个加拿大的教授,下载他的还不太稳定的开源项目,拿来在xcode上跑直接跪了。。。各种版本、配置、编译器问题。。。
在和xcode糜战一周后,我做了至今为止感觉很正确的一个选择:果断转成win环境,拿vs学习好了OpenCV再说。
OpenCV在Win下的,尤其是vs IDE环境下的教程资料真的很丰富,很容易找,今天一个上午就把它搞定了,比起xcode,简直轻松许多。
当然,不是说xcode不好,做为苹果家的御用编译器,xcode还是很多很多优点的,不过,针对我的学习目标,想要短时间内掌握OpenCV基础的话,我觉得还是在一个比较好找到资料的环境下学习来的容易一些。就酱,that‘s all。去看论文了~
时间 2014年12月1日
配置环境:win8.1 x64系统 (win7 x64系统应该也适用)
OpenCV版本:2.4.9 官方预编译版本
IDE:Visual Studio 2013
配置参考教程 OpenCV官方文档:
1. Installation in Windows
http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_install/windows_install.html#windowssetpathandenviromentvariable
2. How to build applications with OpenCV inside the Microsoft Visual Studio http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to
(官方文档其实很详细很全,如果按照步骤一步步来应该大方向上不会有问题的,不过个人在配置过程中还是遇到了一些需要注意的小问题,这里记录一下)
配置过程:
1. 下载官方已编译好的OpenCV库:http://opencv.org/downloads.html
选择 OpenCV for Windows。
2.将下载好的库放在一个自己喜欢的目录下。
其目录结构大致如下:
总目录:
其中,build为openCV官方编译好的openCV库,sources为该版本openCV的源码。我们在IDE开发环境里需要用的,就是build里面已编译好的库文件。
build目录结构:
跟本日志配置相关的目录有三个,一个是include文件夹,这里包含了该版本openCV的头文件;另外两个分别是x64和x86文件夹,里面分别包含针对开发64位程序与开发32位程序所需要的openCV库文件。
以x86目录为例,其结构如下:
vc10,vc11,vc12分别为针对visual studio 2010,2011,2012编译的openCV库文件。因为本日志所用IDE为VS2013,所以选择了vc12:
bin文件夹里包含了开发openCV程序时所需要的所有动态链接库文件,lib里面是openCV的lib文件,由于刚入门,这两者的真正区别现在只有一个感性认知,尚未深入了解,等以后有时间把它补上。#希望自己别忘记了。。。#
3. 现在我们有了openCV库,也大致了解了它的目录结构,那么,在将openCV库配置到IDE的过程中,实际上,我们需要做两件事:
(1)* Tell to the compiler how the OpenCV library looks. You do this by showing it the header files.
(2)* Tell to the linker from where to get the functions or data structures of OpenCV, when they are needed.
*:摘自openCV官方文档How to build applications with OpenCV inside the Microsoft Visual Studio
在做这两件事情之前,为了以后方便,我们还需要做一些准备工作--利用windows的系统环境变量配置好OpenCV库路径:
3.1 在windows的系统环境变量中配置OpenCV库所在的目录和OpenCV的动态链接库目录。
电脑=》属性=》高级系统设置=》环境变量
3.1.1 在“系统变量”里新建变量名为“OPENCV_DIR”的环境变量,其变量值为”<your OpenCV DIR>\build\<OpenCV program architecture>\<your vs version>"
其中,<your OpenCV DIR>为OpenCV库在你的PC上的路径;<OpenCV program architecture>为开发包含OpenCV库的程序的目标系统架构,根据情况选择x86或者x64;<your vs version>为你的Visual Studio版本,这里因为下载的官方库尚未提供vs13版本,因此我选择了最新的vs12。
在配置好这一环境变量后,以后我们在IDE里需要引用OpenCV时,可以直接以OPENCV_DIR做为OPENCV库所在的路径,这样如果我们以后openCV库路径有所变动,或者我们将项目移植到别人电脑上时,就会省去在IDE逐一更改显式路径的麻烦。
接下来,我们需要配置OpenCV的dll路径。dll是windows可执行程序在runtime时会调用的动态链接库。一种配置方式是在系统变量Path里面加入程序需要调用的动态链接库路径,这样程序在运行时,系统就知道该去哪里找相应的dll了:
在“系统变量”列表里找到名为“Path”的系统变量:
在其变量值里加入OpenCV的bin路径:"%OPENCV_DIR%\bin" (注意,因Path里存储了许多路径,新增路径时注意添加英文分号';'做为间隔符)
好了。至此我们的准备工作就完成了。接下来开始配置IDE。
3.2 启动VS2013,文件=》新建=》项目
选择Win32控制台应用程序,在这里我将项目命名为“HelloOpenCV”,哈哈,配置为空项目
接下来有两种配置方法,一种是全局配置,也就是在VS2013里的所有项目都会被配置上OpenCV库,一种是local配置,也就是只为当前的项目配置OpenCV。方法不同,各有利弊,我选择的是local的方法:
1.视图=》属性管理器,在这里我们来配置HelloOpenCV链接OpenCV库所需要配置的属性:
在属性管理器面板上,我们可以看到Debug和Release两个目录,也就是说,实际应用过程中,我们可以根据情况为debug和release版本分别定义不同的编译规则:
下面以配置Debug版本的编译规则为例:
右键Debug,添加新项目属性表
方便起见,我将它命名为OPENCV_Debug。
接下来,在"C/C++"选项里配置OpenCV的头文件路径,这里我们就看到之前配置环境变量OPENCV_DIR的好处了
在“附加包含目录”里添加"$(OPENCV_DIR)\..\..\include" 。这条语句的意思是,前往OPENCV_DIR所指的的目录=>返回上一级=>返回上一级=>在当前目录下找到include文件夹做为附加包含目录之一。
好,至此我们配置好头文件路径了,接下来去配置链接器。
还是在OpenCV_Debug属性页,前往“链接器”选项:
1.“链接器”=>常规:选择“附加库目录” 在这里添加OpenCV库的lib文件夹(这里的含义还不是很清楚,有时间学习一下):"$(OPENCV_DIR)\lib"
2.“链接器”=>输入:在”附加依赖项“里加入程序所需要用到的OpenCV lib文件:
点击编辑:
需要注意的是,我们目前配置的是Debug版本的编译规则,OpenCV为我们提供了两种版本的lib,其区别在于:
Debug:
opencv_(The Name of the module)(The version Number of the library you use)d.lib
Release:
opencv_(The Name of the module)(The version Number of the library you use).lib
注意到了吗,debug版本的lib文件名末尾比release版本的多了一个d,表示为debug版本。
因此,现在我们在附加依赖项里加入debug版本的lib文件。在这里,我所安装的OpenCV 2.4.9的debug lib文件名列表如下:
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_videostab249d.lib
release版本的文件名与这个列表相同,只不过每个文件名末尾都少了一个d。
在添加完依赖项之后,确定,保存。至此,我们的OpenCV应该就是配置完毕了。(注意,这里release的配置跟debug基本类似,所以略去了)
4. Next,test it!
好,现在将官方文档http://docs.opencv.org/trunk/doc/tutorials/introduction/windows_visual_studio_Opencv/windows_visual_studio_Opencv.html#windows-visual-studio-how-to
上的demo拿来测试一下配置是否正确。
在这里,因为官方文档是openCV3.0版本的demo,所以直接拿来用之前还要更改一下include文件:
将
#include <opencv2/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui.hpp>改为
#include <opencv2/opencv.hpp> #include <iostream>不能直接用demo的include配置的原因应该是我的opencv版本跟官方demo用的不一致的问题,在这里,我将include更改为openCV2.4.9 里的opencv.hpp文件,就好了,这个文件好像包含了opencv里面(好像是所有吧。。)的头文件,具体细节,感兴趣可以去$(OPENCV_DIR)\build\opencv2里找opencv.hpp看一下它里面的内容。
接下来我偷了个小懒,把这段代码注释掉:
/*if (argc != 2) { cout << " Usage: display_image ImageToLoadAndDisplay" << endl; return -1; }*/
然后硬编码了一个test图像路径:
Mat image; image = imread("<Your test img DIR>", IMREAD_COLOR); // Read the file
好了,运行,结果如下:
附注:
在最后test过程中,我遇到的问题有:
1. include文件报错
原因:官方demo与我下载的版本不符。
解决方案:更改代码中的include配置
2.运行程序时报 ”xxx.dll 丢失/找不到"
原因:IDE没有找到OpenCV的动态链接库
解决方案:
(1)确认环境变量中的OPENCV_DIR指定的opencv路径是正确的。
(2)确认在系统变量“Path”中已添加OpenCV的bin路径:%OPENCV_DIR%\bin
(3)确认已配置的环境变量已经被系统更新:重启或注销系统,再看看运行情况。
后记:
恩,其实最开始我是在Mac OSX下配置的OpenCV,期间经历了安装homebrew,安装cmake,安装openCV,然后配置xcode。。。。
最后很蛋疼地发现mac osX更新实在太快,在OS 10.10,xcode6.1环境下的openCV配置、开发资料网上少得可怜,也就stackoverflow有那么一丁点。。。
楼主这几天为了套一个加拿大的教授,下载他的还不太稳定的开源项目,拿来在xcode上跑直接跪了。。。各种版本、配置、编译器问题。。。
在和xcode糜战一周后,我做了至今为止感觉很正确的一个选择:果断转成win环境,拿vs学习好了OpenCV再说。
OpenCV在Win下的,尤其是vs IDE环境下的教程资料真的很丰富,很容易找,今天一个上午就把它搞定了,比起xcode,简直轻松许多。
当然,不是说xcode不好,做为苹果家的御用编译器,xcode还是很多很多优点的,不过,针对我的学习目标,想要短时间内掌握OpenCV基础的话,我觉得还是在一个比较好找到资料的环境下学习来的容易一些。就酱,that‘s all。去看论文了~
相关文章推荐
- OpenCV2.4.9+VS2013环境配置及“fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突”的解决
- Kinect开发环境配置:Kinect for Windows SDK(V 1.8) + OpenCV2.4.9 + VS2013 + Win10(x64)
- OpenCV 2.4.9 +VS2013 开发环境配置(其余版本类似)
- opencv2.4.9在visual studio 2013中的配置
- 安装OpenCV:OpenCV 3.0、OpenCV 2.4.9、OpenCV 2.4.8 +VS 各版本 开发环境配置
- [转] OpenCV 2.4.9 +VS2013 开发环境配置
- OpenCV 2.4.9 +VS2013 开发环境配置
- Opencv3.0.0+Visual Studio 2013+win8.1 64位 配置大致思路
- visual studio 2013(2015)配置opencv 3.1,win10系统(x64)
- 利用Opencv 3.0源码 + Visual Studio 2013 在window7环境下编译lib及dll
- QT各版本环境搭建以及opencv编译配置
- OpenCV2.4.9 + VS2013 开发环境配置
- Visual Studio 2013 配置 OpenCV 2.4.9 方法
- OpenCV 2.4.9 +VS2013 开发环境配置
- OpenCV 2.4.9 +VS 2013 开发环境配置
- visual studio 2013上搭建arm交叉编译环境(二) cygwin等软件的安装及配置
- 64位系统下visual studio 2013配置opencv 2.4.9
- 编译cuda版本的opencv——cuda7.5+opencv2.4.9+vs2013
- Visual Studio 2013 + OpenCV 2.4.9配置
- Visual Studio 2010中Opencv 2.4.3版本配置(不编译)