VISUAL STUDIO 2012下的OPENCV 2.4.7安装过程
参考文章:https://www.librehat.com/visual-studio-2012-with-opencv-2-4-7-installation/
OpenCV文件夹的准备
官网下载最新OpenCV的Windows安装程序(其实是一个自解压包),200+MB的体积,双击解压缩到某个分区(如果是SSD的话建议先解压到某个移动硬盘上),
并不是所有文件都是需要的。对于32位Windows系统只需要build文件夹下的以下文件:

如果是64位Windows系统和64位Visual Studio则需要x64文件夹而不是x86文件夹。而且,x86/x64文件夹下,只需要vc11这个文件夹,不需要vc10(vc11对应VS2012,vc10对应VS2010)。
这样一来可以为SSD减轻负担,在D盘创建文件夹openCV_build,把以上需要的build下的文件夹拷贝进去(对于32位系统,openCV_build的内容就和上面截图所示一样)。
设置环境变量
打开管理员模式的命令提示符,运行:
setx -m OPENCV_DIR D:\openCV_build\x86\vc11
-m参数表示该环境变量属于系统范围而非用户范围的值,稍等片刻待提示值已保存后可以关闭cmd了。然后打开计算机属性->高级系统设置->设置环境变量。
在系统变量里找到Path,双击修改,在末尾添加OpenCV的bin(记住要用半角分号隔开),%OPENCV_DIR%\bin
在这里可以使用绝对路径。
如下图所示。使用%OPENCV_DIR%变量的好处是万一下次要变动OpenCV(比如安装了两个版本的OpenCV或者改变了路径),只需要修改%OPENCV_DIR%这个变量即可。

Visual Studio的配置
以Visual Studio 2012和官方指南的Local Method(本地方法)为例,修改某一个工程的属性,添加依赖。(VS2012的项目下的VC++目录功能被否决,无法再用全局方法修改了)
右键单击项目->属性,把弹出窗口左上角的配置更改为“所有配置”,选择配置属性->VC++目录,更改右边的包含目录,编辑,新加一行:
|
1
|
$(OPENCV_DIR)\..\..\include |
类似地,更改库目录,新加一行:
|
1
|
$(OPENCV_DIR)\lib |
如下图所示。,这里可添加绝对路径,直接在依赖文件路径和包含库路径中添加即可


在使用opencv时,需要添加调用的库文件和include文件,库文件路径就添加到Library Directory,头文件就添加到Include Directory,在将编译好的.lib文件添加到新建工程中时还需要在

在Configuration Properities -->Linker --> Input -->Additional Dependencies中添加工程中用到的.lib文件的名称
现在修改Debug配置的属性表,在链接器->输入下,修改附加依赖项。这里应该包含所有你需要的OpenCV模块,模块的名称规则是opencv_<module_name><version_number>d.lib,全部模块如下(OpenCV 2.4.7):
|
1
2
3
4
5
6
7
8
9
10
11
|
opencv_core247d.libopencv_imgproc247d.libopencv_highgui247d.libopencv_ml247d.libopencv_video247d.libopencv_features2d247d.libopencv_calib3d247d.libopencv_objdetect247d.libopencv_contrib247d.libopencv_legacy247d.libopencv_flann247d.lib |
然后在Release的配置下再来一次,这一次不要版本号后面的d(d表示debug),完整的模块列表如下:
|
1
2
3
4
5
6
7
8
9
10
11
|
opencv_core247.libopencv_imgproc247.libopencv_highgui247.libopencv_ml247.libopencv_video247.libopencv_features2d247.libopencv_calib3d247.libopencv_objdetect247.libopencv_contrib247.libopencv_legacy247.libopencv_flann247.lib |
编译测试工程
一份简单的测试源码(修改自MrKnight的demo)。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char **argv)
{
if(argc<)
{
cout<<"No parameters.\n"
<<"You need to specify an image."<<endl;
exit();
}
else
{
Mat img = imread(argv[]);
if (img.empty())
{
fprintf(stderr, "Error: load image failed.");
return -;
}
namedWindow("image", CV_WINDOW_AUTOSIZE);
imshow("image", img);
waitKey();
}
return ;
}
编译完成后,需要在命令行下运行,图片的路径作为参数传递给程序。看看能否顺利编译成功,并看到图片吧。
参考文章: Installation in Windows | How to build applications with OpenCV inside the Microsoft Visual Studio
VISUAL STUDIO 2012下的OPENCV 2.4.7安装过程的更多相关文章
- Visual Studio 2012下Box2D开发环境设置
Cocos2d-x 3.x默认情况下采用的物理引擎是Chipmunk,如果我们要使用Box2D引擎,需要进行一些设置和调整,而且不同的开发平台下这些设置也有所不同.由于本书在此之前介绍的都是基于微软的 ...
- Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法
参考:Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法 Vs2012的下载地址: https://msdn.microsoft.com/en ...
- AE10.0在Visual Studio 2012下安装没有模板(转)
转自百度经验: VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及 ...
- Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用
在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架.但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等 ...
- Windows7下Blend for Visual Studio 2012使用问题
目前开发的系统里很多控件样式和动画比较复杂,应该是之前同事用Blend做的,这种神器不用太浪费了,自己也准备试试. 系统环境Windows7+Visual Studio 2012 1.Windows7 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)
前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...
- 用Visual Studio 2012+Xamarin搭建C#开发Andriod的环境
第一步:安装Visual Studio: Visual Studio 2012(或者Visual Studio 2010),原因是目前为止Xamarin for Visual Studio的插件只支持 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言1
在Visual Studio 2012中使用VMSDK开发领域特定语言(一) 前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modelin ...
- opencv 2.46与visual studio 2012 配置方法
一开学就搞实训,还是没学过的图像处理.痛苦啊!图像处理时一般使用Matlab中的图像工具箱,或者是C/C++和OpenCV结合使用.以前看过一些关于opencv的文章,没想到现在要用上了. 把搭建开发 ...
随机推荐
- mysql定时执行某任务
查看event是否开启: show variables like '%sche%'; 将事件计划开启: set global event_scheduler=1; 关闭事件任务: alter even ...
- ubuntu for win10 里运行net core
花了点时间在ubuntu for win10里运行net core 按官网上ubuntun10.14装的net core指令 ...... ...... sudo apt-get install do ...
- 《深入应用C++11:代码优化与工程级应用》开始发售
我的新书<深入应用C++11:代码优化与工程级应用>已经开始在华章微店发售了,下面是链接. 京东发售链接 china-pub发售链接 亚马逊发售链接 天猫商城发售链接 适用读者:C++11 ...
- (原) ubuntu下用pycharm2016.1专业版配docker编译环境(docker Interpreter)
一:先创建docker-machine 先创建docker machine.我主机上的虚拟机是virtualbox.$ docker-machine create --driver virtualbo ...
- Javascript 中ajax实现前台向后台交互
第一种情况:前台传入字符串参数 后台返回json字符串.或是json数组 代码如下: 前台: $.ajax({ url: "xxx/xxx.action", data: &quo ...
- c#中日期格式化
c#的日期格式化比较简单,在ToString中设置日期格式即可 DateTime.Now.ToLocalTime().ToString("yyyy_MM_dd_hh_mm_ss") ...
- pandas简单应用
机器学习离不开数据,数据分析离不开pandas.昨天感受了一下,真的方便.按照一般的使用过程,将pandas的常用方法说明一下. 首先,我们拿到一个excel表,我们将之另存为csv文件.因为文件是实 ...
- ios 两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动
两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动 这是一个创建于 359 天前的主题,其中的信息可能已经有所发展或是发生改变. [联动] :两个 ...
- Mysql 优化,慢查询
最近项目上遇到点问题,服务器出现连接超时.上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了. 初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户 ...
- spring boot模仿reponseBody注解,自定义注解,返回值加上元数据
简介 ResponseBody是通过RequestResponseBodyMethodProcessor起作用的. 我们的做法是写一个包装类,替换掉他 问题:怎么替换呢? 取出 Spring的List ...