前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV配置——在Visual Studio中使用OpenCV

OpenCV配置——在Visual Studio中使用OpenCV

作者头像
王云峰
发布2019-12-25 16:35:28
1.5K0
发布2019-12-25 16:35:28
举报

OpenCV是图像领域经常会用到的工具库函数的集合,有C/C++,Java和Python等语言的接口,并且适用于Windows,Linux,Mac OS桌面开发平台和Android 和IOS移动开发平台。目前已经出了1.x系列和2.x系列,3.0 Beta版也已经出了。OpenCV配置起来还是挺费事的,虽然网上已经有很多很全面也很有用的参考文章,我还是打算把自己配置的过程写下来,以后肯定还会配置这个东西,希望到时候有个方便的参考。

这篇文章记录在Windows平台上,如何安装OpenCV并且在Visual Studio 的C/C++开发环境中使用之。

我用的是Windows 7,Visual tudio 2012 Ultimate。

下载OpenCV包

opencv下载 页面上,下载想要安装的版本。据说3.x系列会修改较多的API名称等,所以建议下载比较新的版本。我下的是2.4.10。下载之后将文件解压。

解压后会看到看到两个文件夹:buildsourcebuild文件夹下面是已经编译好的库文件和可执行文件,而source文件夹下面是未编译的源文件。我们在写程序时用到的是一些编译好的lib和dll文件,所以只要在程序中添加了头文件,调用了相应的函数,然程序运行时能找到相应的库文件(包括动态库文件即.dll文件和静态库文件,即.lib文件)就可以了。所以针对这个情况,大概做以下几个步骤就可以了。

添加环境变量

添加环境变量是为了让程序在运行时能找到函数对应的动态链接库(dll)。要注意的是,OpenCV对于32位程序和64位程序有不同的dll目录,并且对于不同的版本的VS,也有不同的dll文件目录。

build目录下,x86下面包含了32位程序所需的dll文件,x64目录下面包含了64位程序所需dll文件。在这个两个目录下,都有vc10,vc11,vc12三个文件夹,分别是针对vs2010,vs2012vs2013。为了使32位程序和64位程序都能编写通过,我一般将两者目录下的和VS版本对应的文件夹下的bin目录都加入PATH变量中。所以在PATH环境变量中增加如下内容:

代码语言:javascript
复制
;D:\program_file\opencv\build\x86\vc11\bin;D:\program_file\opencv\build\x64\vc11\bin

其中build前面的位置是我安装opencv的目录,安装位置不同前面部分也应改为相应的目录。

生成独立的OpenCV配置属性表

我们的目标是通过操作生成一个单独的OpenCV配置属性表,然后将其导出保存起来,将来在需要用到OpenCV的程序中,直接导入这个保存的属性表即可。 下面几步都是在VS开发环境里面进行。

  1. 创建一个空项目,通过视图->属性管理器找到属性管理器页面。每个项目都可以有四个编译情况,分别是:Debug|win32Release|win32Debug|x64Release|x64,基本步骤都类似,下面针对Debug|win32来说。
  2. Debug|win32文件夹上右击,选择添加新项目属性表,在弹出的对话框里,给这个表取名为OpenCV_Debug_32.props,然后点击添加。
  3. 双击新建的属性表,就会弹出熟悉的MFC复古风格的属性设置页了。
  4. 在属性页上,点击C/C++->常规->附加库包含目录,在这里添加OpenCV安装路径下的include目录,具体如下: D:\program_file\opencv\build\include 同样的,build前面是opencv的安装路径,按实际情况选择。
  5. 在属性页上,点击链接器->常规->附加库目录,在这里添加OpenCV安装路径下的lib目录。注意:对不同编译情况和不同版本的VS,lib文件夹目录不同。对于VS2012下面的Debug|win32模式,lib文件夹目录为:
代码语言:javascript
复制
D:\program_file\opencv\build\x86\vc11\lib

其中x86目录表示是针对win32的,vc11表示是适用于VS2012的。

  1. 在属性页上,点击链接器->输入->附加依赖项,在里面添加附加依赖的lib文件: opencv_calib3d2411d.lib opencv_contrib2411d.lib opencv_core2411d.lib opencv_features2d2411d.lib opencv_flann2411d.lib opencv_gpu2411d.lib opencv_highgui2411d.lib opencv_imgproc2411d.lib opencv_legacy2411d.lib opencv_ml2411d.lib opencv_nonfree2411d.lib opencv_objdetect2411d.lib opencv_ocl2411d.lib opencv_photo2411d.lib opencv_stitching2411d.lib opencv_superres2411d.lib opencv_ts2411d.lib opencv_video2411d.lib opencv_videostab2411d.lib 注意:对于不同的版本,要将后面的2411改为相应的版本号;对于Debug版本,后面有个字母d,而对于Release版本,则没有d,应根据实际情况添加。
  2. 添加好之后,点击属性页面板右下角的应用,确定。
  3. Debug|win32文件夹上右击,选择保存,该属性表就保存好了。
  4. 在该项目目录下面找到这个属性表,保存到一个安全的地方,下次在要用OpenCV的工程里,找出属性管理器,右键,选择添加现有属性表即可。 我将四种情况所需的属性表和添加的附加依赖库的列表都放到了github上,或许能帮到你(注意只适用于VS2012)。

整个配置过程就是这样了,配置好之后就可以安心的使用OpenCV 了!

最后,测试一下,做个图像处理的“Hello World”:

代码语言:javascript
复制
#include <iostream>
#include <string>
#include <opencv2\opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
	Mat img = imread("lena.jpg");

	if (img.empty())
	{
		cout << "error";
		return -1;
	}

	imshow("lena", img);
	waitKey();

	return 0;
}

出来的图像:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载OpenCV包
  • 添加环境变量
  • 生成独立的OpenCV配置属性表
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档