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的文章,没想到现在要用上了. 把搭建开发 ...
随机推荐
- Atitit 爬虫 node版 attilaxA
Atitit 爬虫 node版 attilax 1.1. 貌似不跟python压实,,java的webmagic压实,,什么爬虫框架也没有,只好自己写了. 查了百度三爷资料也没有.都是自己写.. 1. ...
- vue-cli 本地数据模拟
方法一: 使用express搭建静态服务 mock数据写在json文件中,proxyTable 里将接口代理到具体mock数据json文件上.具体方法: 创建 mock 文件夹 build/dev-s ...
- 读取JPG图片的Exif属性(一) - Exif信息简介
https://blog.csdn.net/fioletfly/article/details/53605959 https://blog.csdn.net/a_big_pig/article/det ...
- 浅谈hibernate的sessionFactory和session
一.hibernate是什么? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hiber ...
- Duplicate <http> element detected
1.错误描写叙述 org.springframework.beans.factory.parsing.BeanDefinitionParsingException:Configuration p ...
- Machine Learning Library (MLlib) Guide, BOOKS
download.microsoft.com/download/0/9/6/096170E9-23A2.../9780735698178.pdf Microsoft Azure Essential ...
- do-release-upgrade升级笔记
事后的总结: 后来可能因为阿里云镜像并不是完全底层无关镜像,do-release-upgrade后的18.04版本在经过一次异常的内核版本升级以后,restart失败,因为是虚机还很难处理,不得不直接 ...
- Java中使用Oracle的客户端 load data和sqlldr命令执行数据导入到数据库中
Windows环境下测试代码: import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundExcep ...
- C#学习笔记(32)——委托改变窗体颜色
说明(2017-11-23 22:17:34): 1. 蒋坤的作业,点击窗体1里面的按钮,出现窗体2:点击窗体2里的按钮,窗体1改变背景色. 2. 做完窗体传值后,这个作业就很简单了. 代码: For ...
- PHP 图片处理类 错误处理方法:
call an undefined function exif_imagetype() 打开扩展php.ini 将 ; 去掉: extension=php_exif.dll 并将extension=p ...