VS2013 opencv2.4.8
【转】http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html
vs2010+opencv2.4.0:http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html
2012年4月给同学写了篇傻瓜式的 VS2010+Opencv-2.4.0的配置攻略 结果没有想到,点击量一路飙升,固定在了Google “Opencv 配置” 关键词搜索的榜首。现在看看,已经过时了,版本升级后看不到ttb了,还有很多不足的地方需要修正。新电脑需要重新配置环境,结合新版本,再来写篇最完美的傻瓜教程,看能不能超过以前的那篇 :)
环境:Windows 8.1, Opencv 2.4.8, VS 2013.
目录
配置
下载安装软件
下载 Opencv for Windows 最新版本,本文是 Opencv 2.4.8。双击后会出现解压提示,实际上就是“安装”了,路径填写为 D:/Program Files,然后确定。
Note
D:/Program Files 可以为任意自己希望opencv安装的路径,解压完成后,会在你所填目录中新增一个 opencv文件夹,里面就是opencv的所有内容了。例如按照我的路径,解压完成后Opencv就在 D:/Program Files/opencv 里面了。
下载 VS 2013,并安装。(自己找破解吧)
配置环境变量
在系统变量里面新建变量,名为 OPENCV ,值为自己解压opencv路径下的build路径,如 D:\Program Files\opencv\build。
Tip
这一步是方便以后如果opencv路径改变了,只需要修改此变量就可以了,而不必做大范围修改。
在系统变量里面编辑 Path 变量,在末尾添加 ;%OPENCV%\x86\vc12\bin 。
Note
x86和x64分别表示32bit和64bit的VS工程,根据自己的工程来修改,否则虽编译成功但会运行错误;vc10, vc11, vc12 分别表示VS2010, VS2012, VS2013的Visual Studio使用的编译器版本,根据自己的VS版本来填写正确的编译器版本号。
Note
多谢 @玄影游侠 的提醒,环境变量设置好后最好注销(重启)一下系统,可能有的系统环境变量不会立即生效,而导致一系列路径相关的问题。
编写Opencv的VS工程容属性表
在opencv根目录(例如 D:\Program Files\opencv)下新建VS属性表文件 opencv248.props,或者直接下载我的属性表文件opencv248.props 。
opencv248.props 文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc12\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link Condition="'$(Configuration)'=='Debug'">
<AdditionalDependencies>opencv_calib3d248d.lib;opencv_contrib248d.lib;opencv_core248d.lib;opencv_features2d248d.lib;opencv_flann248d.lib;opencv_gpu248d.lib;opencv_highgui248d.lib;opencv_imgproc248d.lib;opencv_legacy248d.lib;opencv_ml248d.lib;opencv_nonfree248d.lib;opencv_objdetect248d.lib;opencv_ocl248d.lib;opencv_photo248d.lib;opencv_stitching248d.lib;opencv_superres248d.lib;opencv_ts248d.lib;opencv_video248d.lib;opencv_videostab248d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<Link Condition="'$(Configuration)'=='Release'">
<AdditionalDependencies>opencv_calib3d248.lib;opencv_contrib248.lib;opencv_core248.lib;opencv_features2d248.lib;opencv_flann248.lib;opencv_gpu248.lib;opencv_highgui248.lib;opencv_imgproc248.lib;opencv_legacy248.lib;opencv_ml248.lib;opencv_nonfree248.lib;opencv_objdetect248.lib;opencv_ocl248.lib;opencv_photo248.lib;opencv_stitching248.lib;opencv_superres248.lib;opencv_ts248.lib;opencv_video248.lib;opencv_videostab248.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
这份属性表为opencv2.4.8的VS2013工程属性表,兼容64位和32位平台,兼容Debug和Release配置。详细解释看后文,后面在VS工程中配置Opencv只需要导入这份属性表就可以了。
Note
如果不是VS2013,或者Opencv版本不是2.4.8,一定要修改部分参数才能使用。详细修改办法看后文。
VS内配置Opencv
这里用VS属性表的方式将Opencv配进工程,每次只需要添加属性表即可完成配置,比手工界面配置方便很多。
属性管理器 -> 右键 "test"(工程名) -> 添加现有属性表
找到之前新建或者下载的属性表( D:\Program Files\opencv\opencv248.props ),添加进工程
测试
解决方案资源管理器 -> 源文件(右键)-> 添加 -> 新建项
Visual C++ -> C++文件:输入名称test点添加
粘贴下面的代码,保存:
#include <opencv2\opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("pp.jpg");
if (img.empty())
{
cout << "error";
return -1;
}
imshow("pp的靓照", img);
waitKey(); return 0;
}
把自己的靓照改名为pp.jpg,然后放到工程项目的test文件夹里面(是里面那个test文件夹)
按F5调试程序,如果你的图片出来了就OK了。
进阶
直接文本编写Opencv x64 x86 Debug Release 全兼容属性表
新建属性表文档 opencv248.props,填写下面的xml内容并保存:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>$(OPENCV)\include;$(IncludePath)</IncludePath>
<LibraryPath Condition="'$(Platform)'=='Win32'">$(OPENCV)\x86\vc12\lib;$(LibraryPath)</LibraryPath>
<LibraryPath Condition="'$(Platform)'=='X64'">$(OPENCV)\x64\vc12\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup>
<Link Condition="'$(Configuration)'=='Debug'">
<AdditionalDependencies>opencv_calib3d248d.lib;opencv_contrib248d.lib;opencv_core248d.lib;opencv_features2d248d.lib;opencv_flann248d.lib;opencv_gpu248d.lib;opencv_highgui248d.lib;opencv_imgproc248d.lib;opencv_legacy248d.lib;opencv_ml248d.lib;opencv_nonfree248d.lib;opencv_objdetect248d.lib;opencv_ocl248d.lib;opencv_photo248d.lib;opencv_stitching248d.lib;opencv_superres248d.lib;opencv_ts248d.lib;opencv_video248d.lib;opencv_videostab248d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<Link Condition="'$(Configuration)'=='Release'">
<AdditionalDependencies>opencv_calib3d248.lib;opencv_contrib248.lib;opencv_core248.lib;opencv_features2d248.lib;opencv_flann248.lib;opencv_gpu248.lib;opencv_highgui248.lib;opencv_imgproc248.lib;opencv_legacy248.lib;opencv_ml248.lib;opencv_nonfree248.lib;opencv_objdetect248.lib;opencv_ocl248.lib;opencv_photo248.lib;opencv_stitching248.lib;opencv_superres248.lib;opencv_ts248.lib;opencv_video248.lib;opencv_videostab248.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
这份属性表为opencv2.4.8的VS工程属性表,兼容64位和32位平台,兼容Debug和Release配置。
很容易看出如何修改:
- 如果你没有配置%OPENCV%环境变量,则只需要修改 IncludePath 和 LibraryPath 所指三个标签,用绝对路径代替$(OPENCV);
- 如果你的Visual Studio版本与我的不同,则需要修改 LibraryPath 所指两个标签的将编译器版本号,VS2010对应vc10,VS2012对应vc11,VS2013对应vc12;
- 如果你的opencv与我的版本不同,只需要将两个 AdditionalDependencies 标签内的所有lib的版本号修正即可(所有的248改为自己的版本号),并在opencv的lib目录下检查一下lib名称是否对应。
通过VS界面建立自己的VS项目属性表
网上一大堆,就不具体说明了。与自己文本编写属性表不同的是,通过界面新建的属性表要为不同的配置单独建立,导入的时候也要针对配置单独导入。
属性管理器 ->展开 项目名 -> 右键 Debug | Win32 -> 添加新项目属性表
添加属性表,取名为“opencv248x86.Debug.props”。
属性管理器 ->展开 Debug | Win32 -> 双击 新建的 opencv248x86.Debug 打开属性页面 -> VC++ 目录
编辑 包含目录 一栏,添加opencv的include路径,例如我的是 D:\Program Files\opencv\build\include;编辑 库目录 一栏,添加opencv的lib路径,例如我的是 D:\Program Files\opencv\build\x86\vc12\lib 。
Note
将光标移到编辑框会在右边出现小下拉三角,点击小三角,再选择编辑打开路径选择窗口选择对应路径。如果直接粘贴则粘贴在现有内容前面用分号隔开,否则会失去继承性。
Note
库目录 一栏选择opencv的lib路径时,如果工程是64位则选择opencv的x64目录,如果是32位则选择x86。Visual Studio的版本与编译器版本号的对应关系是:VS2010 -> vc10, VS2012 -> vc11, VS2013 -> vc12,选择目录的时候注意自己的VS工程版本。
在属性页面 -> 链接器 -> 输入 -> 附加依赖项 -> 编辑。添加下面的lib列表:
opencv_calib3d248d.lib
opencv_contrib248d.lib
opencv_core248d.lib
opencv_features2d248d.lib
opencv_flann248d.lib
opencv_gpu248d.lib
opencv_highgui248d.lib
opencv_imgproc248d.lib
opencv_legacy248d.lib
opencv_ml248d.lib
opencv_nonfree248d.lib
opencv_objdetect248d.lib
opencv_ocl248d.lib
opencv_photo248d.lib
opencv_stitching248d.lib
opencv_superres248d.lib
opencv_ts248d.lib
opencv_video248d.lib
opencv_videostab248d.lib
确定两次后完成Debug版本的属性表编辑。
同样依照上面的步骤编写Release版本的属性表,唯一不同的是在“附加依赖项”中填入的是Release版本的lib列表:
opencv_calib3d248.lib
opencv_contrib248.lib
opencv_core248.lib
opencv_features2d248.lib
opencv_flann248.lib
opencv_gpu248.lib
opencv_highgui248.lib
opencv_imgproc248.lib
opencv_legacy248.lib
opencv_ml248.lib
opencv_nonfree248.lib
opencv_objdetect248.lib
opencv_ocl248.lib
opencv_photo248.lib
opencv_stitching248.lib
opencv_superres248.lib
opencv_ts248.lib
opencv_video248.lib
opencv_videostab248.lib
Tip
*d.lib的是Debug版本lib,*.lib的是Release版本lib。
【注意】:出现的错误:1、如果是内存指向错误,一般是程序错误,或者你的图片放的位置不对
2、无法加载各种PDB文件,这种不用管,不影响程序运行,如果按照某度的方法设置符号等,会让你的程序运行卡慢
3、各种环境变量一定要设置对,debug和release的依赖库要设置对。
VS2013 opencv2.4.8的更多相关文章
- vs2013+opencv2.4.11+Qt5.5.1配置
注意本教程配置环境:win7 32位 如果只配置vs2013+opencv2.4.11,参考http://jingyan.baidu.com/article/ff411625b1311a12e4823 ...
- VS2013+opencv2.4.9配置
VS2013+opencv2.4.9(10)配置[zz] - yifeier12 - 博客园 http://www.cnblogs.com/cuteshongshong/p/4057193.html ...
- (OpenCV) VS2013 + opencv-2.4.10.exe + Windows 10 开发环境配置
主要配置2点: - Windows 环境变量. - VC++ 配置. STEP BY STEP: 1. 双击 ”opencv-2.4.10.exe“,解压到本地文件夹 “C:\ ". 2. ...
- Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境
折腾了几天,终于在windows系统上成功配置了Caffe环境,期间遇到了很多问题,每个问题的解决也都花了不少时间,查过挺多资料,感觉挺有意义,这里写篇博客记录一下. 原来我使用的CUDA版本是7.5 ...
- 64bit win7+VS2013+opencv2.4.9配置
我的配置是opencv2.4.9与VS2013,在win7 64bit下. 从opencv官网(http://opencv.org/downloads.html),下载安装文件,然后双击安装包,类似于 ...
- VS2013+opencv2.4.9(10)配置[zz]
1. 下载opencv2.4.9,然后解压到一个位置 设置opencv SDK解压目录,点击Extract后解压 我是习惯于解压到这个位置的. 解压过程如上图. 2. ...
- VS2013+opencv2.4.9(10)配置
1. 下载opencv2.4.9,然后解压到一个位置 设置opencv SDK解压目录,点击Extract后解压 我是习惯于解压到这个位置的. 解压过程如上图. 2. 文件目录介绍 解压后 ...
- Vs2013+opencv2.4.12+x64用VideoCapture无法打开视频
环境变量中匹配的是x86的opencv_ffmpeg244.dll,与项目不匹配,需在项目exe文件同目录下添加X:\opencv\opencv2.4.12\build\x64\vc12\bin\op ...
- VS2013下配置OpenCV 3.0.0 &&& VS2013下配置Opencv2.4.9
最近做图像需要用到Matlab和OpenCV,一些东西真的是要深入的研究进去才会有所发现,但Matlab和C++都不是我擅长的语言,所以要很加油很加油才行啊!! 步入正题. 1. 环境:Win7 6 ...
随机推荐
- 转:webdriver驱动未在默认目录安装的firefox
刚开始用webdriver的朋友一定会苦恼它时常不能启动firefox,很多时候是因为firefox安装在默认路径下.此时,我们有些常用方法,可以解决此问题. [1] System.setProper ...
- Redis(2)用jedis实现在java中使用redis
昨天已经在windows环境下安装使用了redis. 下面准备在java项目中测试使用redis. redis官网推荐使用jedis来访问redis.所以首先准备了jedis的jar包,以及需要依赖的 ...
- listview的简单封装
package com.itheima.googleplay.ui.view; import android.content.Context; import android.graphics.Colo ...
- 剑指offer 链表中倒数第K个节点
利用两个间隔为k的指针来实现倒数第k个 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...
- 很好的一个dp题目 Codeforces Round #326 (Div. 2) D dp
http://codeforces.com/contest/588/problem/D 感觉吧,这道题让我做,我应该是不会做的... 题目大意:给出n,L,K.表示数组的长度为n,数组b的长度为L,定 ...
- java的property
System.currentTimeMillis() 返回以毫秒为单位的当前时间.System.gc() 垃圾回收System.getProperties().返回当前的系统属性System.getP ...
- 关于数据结构的10个面试题(c语言实现)
关于数据结构的10个面试题(c语言实现) 2010-04-21 22:17 5702人阅读 评论(0) 收藏 举报 数据结构面试c语言bttree 1. 输入一个链表的头结点,从尾到头 ...
- ecos的app生命周期
5种变迁,安装.更新.启动.暂停.卸载,每个app都可以自行维护每种变迁 方法简单,只需要在app/$app_name目录下定义task.php文件 <?php class desktop_ta ...
- webfont 字体
http://www.phpdl.com/demo/webfont/index.html 淘宝web font字体,开源. 自定义字体,网站可以用服务端字体. 一般来说,只能用客户端字体.格式不同,为 ...
- centos lvm常用命令
# vgs -a VG #PV #LV #SN Attr VSize VFree cinder 1 0 0 wz--n- 30.39g 30.39g os ...