首页 > VS2010(VS2008)下安装配置OpenCV

VS2010(VS2008)下安装配置OpenCV

研究生课题做嵌入式图像处理方向,所以主要涉及的知识就是嵌入式Linux+OpenCV+QT,主要OpenCV和QT都是跨平台的,而且充分利用好的话再后期的算法设计和功能扩展上就方便很多。只是之前多数做的是硬件方向设计和偏单片机类型的处理器,嵌入式Linux没有太多的基础,图像处理方面基本上是空白,QT也从没有接触过,完成这个任务需要学习的东西还很多啊。目前只是大致确定了一个方向,很多地方还很迷茫,欢迎有兴趣的朋友指点、交流。

 

既然学习OpenCV,虽说我是想在嵌入式平台上使用,但是还是需要在win平台上先学习,有些算法验证上也方便些。因此本文首先是关于Windows平台下的OpenCV安装与使用。

软件平台:

Windows 7 X86, Visual Studio 2010, OpenCV2.4.3 ,Cmake 2.8

部分软件下载地址:

OpenCV:http://www.opencv.org.cn/index.php/Download

Cmake:http://www.cmake.org/cmake/resources/software.html

从以上提供的网站下载对应版本和平台的软件。

本文的主要参考:http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.3.1

学习OpenCV那么中文官方网站的资料应该是比较权威和全面的,因此本文只是对参考文章的补充和实践。

OpenCV的下载与安装

下载Windows下的安装文件OpenCV-2.4.3.exe,双击解压,选择需要的安装目录即可。我的存放路径为D:opencv。

解压完成后就是需要的文件了。注意相应的目录不能包含中文。

编译OpenCV

这一步不是必须的,如果不编译,可以使用编译好的库,但是不能进行源代码的跟踪调试(未验证),因此这里还是编译一下。

编译用的工具Cmake,这是一个跨平台的安装编译工具,主要用于把OpenCV的源码生成对应的VS工程。操作如下。

 

1、如图所示,设置OpenCV的安装文件路径和想要生成的文件路径;

2、点击左下方configure,在弹出的选项中选择Visual Studio 10(对应2010版本);

3、点击完成就会进行配置,配置后的界面如下图所示,选择需要加入的文件,我这里勾上BUILD_EXAMPLES其他选项默认;

4、修改完成后再次点击configure进行配置,完成后点击Generate,至此完成配置。

SNAGHTMLa64bc2

 

使用VS2010编译版本库

以上操作完成后,就可以在生成的目录下找到对应的工程文件,根据上图配置我的文件路径为D:OpenCV24OpenCV.sln,使用VS2010打开,进行如下操作。

1、在Debug下,选择解决方案(解决方案资源管理器)里的 解决方案“OpenCV”,点右键,运行"重新生成解决方案";

image

2、生成成功后,在选择INSTALL项目,右键运行生成;

3、在Release下进行1-2步的操作;

4、以上操作完成后,针对当前的系统的OpenCV库就生成了。

VS的相关配置

也即告诉VC去什么地方寻找OpenCV的头文件和库,打开VC,选择菜单“工具”->“选项”->“项目和解决方案”->“VC++目录”->“包含文件”,在VS2010中此选项打开如下图所示,显示编辑功能被否决。

SNAGHTMLcbd33a

可以在具体的项目中右键->属性来设置,只是这样的设置无法被继承,每一个项目都需要单独设置,因此需要丛一个能够被继承的全局设置,方法如下:

1、在VS中确保至少有一个工程被打开的情况下,点击“视图”->“其他窗口”->“属性管理器”,然后从左侧任意项目中打开“Debug| Win32”->“Microsoft.Cpp.Win32.user”,如下图所示。

image

2、在弹出如下图所示的窗口中,添加文件包含与库的路径。点击左侧VC++目录,编辑右侧的包含目录与库目录,分别添加对应的路径。

SNAGHTMLd1d2dc

对应的路径如下:

包含目录

使用提供的库需要添加(对应我自己的安装目录,路径根据个人安装修改)

D:opencvuildinclude

D:opencvuildincludeopencv

D:opencvuildincludeopencv2

如果使用的是上文编译的库的路径,则添加(对应我自己的目录,路径根据个人安装修改)

D:OpenCV24installinclude

D:OpenCV24installincludeopencv

D:OpenCV24installincludeopencv2

SNAGHTMLd945ca

64为系统对应更改。

库目录

在OpenCV的安装文件中已经为VC2008和2010预先编译好了动态库与静态库,因此可以不需要编译直接添加。

针对VS2010添加(对应我自己的目录,路径根据个人安装修改)

D:opencvuildx86vc10lib

添加上文编译的库则添加(对应我自己的目录,路径根据个人安装修改)

D:OpenCV24installlib

注:有的资料中说法如下:

(注:由于自己编译成功,lib文件在Debug和Release两个文件中,加载库时需到Debug和Release中,我配置的库目录为:D:Program FilesOpenCV2.3.1opencvuildmyinstalllibDebug,否则调试时无法进入Open CV代码中。 by:Jackyzzy 赵振阳)

但是我的目录下并没有对应的文件夹,反而在D:OpenCV24lib目录下有对应的Debug文件夹,文件经过对比也一致,因此这个地方究竟添加什么地方的目前还没有验证,已经验证的同学欢迎告知我。

到这里,配置完毕,任意打开一个项目通过属性来查看,可以看到以上配置已经被继承。

设置环境变量

刚才设置的是动态库,因此还需要将OpenCV的dll文件所在的目录加入Path环境变量。dll文件目录如下:

自己编译的库

D:OpenCV24installin

使用提供的库(VS2010)

D:opencvuildx86vc10in

有的资料中说由于有些函数需要使用TBB,因此需要把TBB相关也添加环境变量,但是我并没有在opencvuildcommon bb这个路径中找到TBB文件件,在2.4.3版本中经过查找此文件夹存在与opencvuildcommon bb 路径下,因此这部分同样未验证。

 

至此,就完成了OpenCV的安装与配置。

更多相关:

  • 这里用散装版本的AutoScssStruct4Vue为例 先去https://github.com/accforgit/AutoScssStruct4Vue下载 然后把解压后的包放入C:UsersAdministrator.vscodeextensions(地址根据你自己的安装目录而定)    点开目录在资源管理器...

  • 网上搜到的结果大都不令人满意,这里综合了网上的结构,做了小许改动.希望对大家有帮助. 在Linux下的目录结构操作基本上使用opendir,readdir,closedir就够了. #include #include #include #include

  • 文章目录git 最小配置作用域git 创建本地仓库git log 查看版本演进.git 目录refs目录objectsgit 三种对象类型详解 (commit ,tree,blob)...

  • 一 . 进入目录权限 如果我在普通用户下创建了一个目录f1,然后使用chomd u-rwx,g-rwx,o-rwx之后,我在普通用户下想进入f1目录,权限不允许。 然后我切换到超级用户下,再次尝试进入到f1目录,这个时候允许进入。 然后回到普通用户下,只给f1的所有者读的权限,然后在普通用户下尝试进入,此时权限还是...

  • windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rpc 框架 thrift , 网上东西看了很多, 但是大都不能一篇到位, 这里总结了一下, 也记一下自己遇到的问题和解决的方法 这里...

  • 使用OpenCV和Python进行实际操作 面向初学者的OpenCV Python动手操作计算机视觉 你会学到: NumPy基础知识 基于OpenCV的人脸检测 使用OpenCV在图像和视频上绘制形状 使用OpenCV进行平滑、模糊、阈值和形态学操作 基于OpenCV的目标跟踪 带有OpenCV的直方图 使用OpenCV查找车...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...