【第一部分-环境搭建】Opencv环境搭建(Visual Studio+Windows)

网友投稿 981 2022-09-15

【第一部分-环境搭建】Opencv环境搭建(Visual Studio+Windows)

【第一部分-环境搭建】Opencv环境搭建(Visual Studio+Windows)

1.1 库路径添加方式

1.1.1 Opencv的安装及环境变量配置

1.-源码包

图1-1

将源码-后双击可执行程序,安装在当前盘符下。

图1-2

源码地址:​​​添加环境变量

图1-3

图1-4

【Tips】不管是win7还是win8或者win10,都是大同小异。

弹出如下对话框,如果没PATH,则新建PATH。

图1-5

【注1】最好是添加到系统变量的path路径。

笔者用的是win7,编辑系统变量中的PATH,在变量值后面输入:

D:\opencv\build\x86\vc11\bin

【注2】

 如果不是新建的PATH,则最前面有一个分号。如果双击后前一条路径已经自带了分号就无需加上,如果没有需要把分号也复制进去,最后要保证两段路径之间有且仅有一个分号。

 变量值根据你所用的VS和Opencv的安装路径来决定,还有就是计算机的位数。不管读者使用的电脑是64位还是32位,笔者建议使用X86(32位),配置比较方便,下文都是配置的X86环境,有兴趣的可以试着配置64位的。对于版本的的选择应该是比当前是使用的低一位,笔者用的是VS12版本,所以选择了VC11下的bin目录,以此类推。

1.1.2 VS2012 的配置及测试

图1-6

点【下一步】

图1-7

图1-8

3、配置

首先找到项目的<资源管理器>。

方法一:在菜单栏里面点<视图>–<其他窗口>–<属性管理器>

图1-9

方法二:在默认的VS布局中在工程一侧有<属性管理器>,直接单击就行了。

图1-10

图1-11

首先是在【通用属性】 ->【VC++目录】 ->【包含目录】中

添加上

D:\ opencv\build\include

D:\opencv\build\include\opencv

D: \opencv\build\include\opencv2 这三个目录。

【注】这是根据安装目录而定的。

接着上步,就是在【通用属性】 ->【VC++目录】 ->【库目录】中,

添加上D:\opencv\build\x86\vc11\lib这个路径。

图1-12

接下来就就是链接库的配置,【通用属性】 ->【链接器】->【输入】->【附加的依赖项】添加3.0.0版本的lib,带d的是debug版本,不带d的是release版本的。

opencv_world300d.lib opencv_ts300d.lib

【注意】

添加如2.4.9版本(或者其他3.0以下版本)的lib(这样的lib顺序是:19个带d的debug版的lib写在前面,19个不带d的release版的lib写在后面):

opencv_ml249d.libopencv_calib3d249d.libopencv_contrib249d.libopencv_core249d.libopencv_features2d249d.libopencv_flann249d.libopencv_gpu249d.libopencv_highgui249d.libopencv_imgproc249d.libopencv_legacy249d.libopencv_objdetect249d.libopencv_ts249d.libopencv_video249d.libopencv_nonfree249d.libopencv_ocl249d.libopencv_photo249d.libopencv_stitching249d.libopencv_superres249d.libopencv_videostab249d.lib

opencv_objdetect249.libopencv_ts249.libopencv_video249.libopencv_nonfree249.libopencv_ocl249.libopencv_photo249.libopencv_stitching249.libopencv_superres249.libopencv_videostab249.libopencv_calib3d249.libopencv_contrib249.libopencv_core249.libopencv_features2d249.libopencv_flann249.libopencv_gpu249.libopencv_highgui249.libopencv_imgproc249.libopencv_legacy249.libopencv_ml249.lib

好了到这里基本就配置完了,接下来下就是测试了。

4、测试

新建一个类。

图1-13

在文件中输入以下内容。

/**Includes*********************************************************************/#include #include #include #include /**namespace********************************************************************/ using namespace cv; using namespace std; /** * @brief 主函数 * @param None * @retval int */int main(){ //载入图片 Mat img = imread("pic.jpg"); // 创建一个名为 "图像显示"窗口 namedWindow("图像显示"); // 在窗口中显示图像 imshow("图像显示", img); // 等待1000 ms后窗口自动关闭 waitKey(1000); }

并在main.cpp的目录下一个文件名为pic.jpg的图片。运行程序的效果就

能看到图片了。

1.2 源码安装方式

在开始讲解源码安装方式之前,我们需要明白为何要这么费劲编译源码呢?起初笔者也很纳闷,编译源码既繁琐又费时,而且OpenCV官网也给我们提供了对应的win pack包,-下来配置一下不就可以使用啦。笔者相信很多初次接触OpenCV的朋友就连使用官方的win pack都有可能没有配置成功,更不要说根据自己的电脑和需求来编译源码了。

接下来笔者就来回答为何要费劲编译源码,首先,OpenCV官网对于每个版本只提供了一到两个VS版本,很多情况下,我们不一定安装有对应的VS版本;其次,当我们开发到一定阶段,官网提供的编译库不能满足我们的需求,比如使用GPU,OpenGl,使用TBB加速等,如果读者朋友还没有听过这些名词,不要紧,你可以先尝试着在网上搜素相关名词,了解其中的用途,也可关注笔者,笔者会在其他的文章中讲解这些概念和用法。基于以上两点原因,我想大家也就明白为何哟啊编译源码了吧,接下来,就跟着笔者尝试编译源码吧。

1.2.1 CMake简介

CMake,是“crossplatform make”的缩写,它是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是CMake 和 SCons 等其他类似系统的区别之处。

1.2.2 CMake安装

首先-Camke软件,目前(2017-11-6)最新的版本是3.10.0-rc4。-链接:​​​distributions处可以-到Cmake软件的源码,如果对这款开源软件感兴趣,不妨看看。

图1-14

而Binary distributions处可以-到Cmake的执行文件,我们只需要-到其执行文件即可,选择Windows win64-x64 Installer进行-,笔者的64位电脑,所以-的是64位的。

图1-15

-可执行文件后,接下来就是安装了,安装很简单,笔者就不纤细介绍了。安装完成后,接下来就是使用CMake生成OpenCV源代码工程的解决方案

1.2.3 CMake生成OpenCV源代码工程的解决方案

【第一步】运行cmake-gui

如果在安装时没有生成桌面快捷方式,在安装路径下寻找。运行后得到如下的窗口。

图1-16

【第二步】指定OpenCV的安装路径

图1-17

在该路径下有一个名为CMakeLists.txt的文件,该文件就是给CMake留下的配置文件,CMake可以根据这个配置文件,通过不同的编译器选择,来生成不同的解决方案,VisualStudio的编译器对应的就生成Visual Studio版的sln解决方案。

图1-18

【注】笔者在这里使用最新的Opencv安装包-3.3.1(注意和使用库路径安装方式进行比较,这里是-源码)。

图1-19

【第三步】指定解决方案的存放路径

图1-20

【第四步】第一次Configure

图1-21

弹出如下进行编译器选择的对话框:

图1-22

首先选定“Use default native compilers”,然后,我们可以发现下拉列表中提供了几十种编译器给我们选择,因为我们安装了Visual Studio,会默认为我们选择好对应版本的Visual Studio编译器,比如Visual Studio 12(即待会儿会生成对应VS2012的sln解决方案)确认无误后,单击“finish”按钮。于是,CMake开始第一次源代码配置过程:

图1-23

【注意】在安装CMake或者OpenCV不要出现中文路径,否则可能出现不可预料的错误。

看到进度条读到尽头,出现了Configuring done字样,第一次的源码配置就完成了,如图所致。

图1-24

【第五步】第二次Configure

图1-25

点Generate按钮,来生成最终的解决方案了。

图1-26

图1-27

看到Generating done字样,就表示大功告成,可以去之前我们指定的E:\opencv下找寻我们生成的解决方案了。

图1-28

1.2.4编译OpenCV.sln

打开生成的Opencv工程,选择CMakeTargets下INSTALL,右键“生成”,生成Debug版dll,lib。切换编译模式为Release模式,重复上一步生成Release版dll,lib。(如果使用Debug就不需要编译Release版本了)。

编译完成后就能看到最终Debug版和Release版(如果选择编译了)的dll,lib,以及文档目录doc,头文件目录include(bin内为两个版本dll,lib内为两个版本lib)。

编译后的目标库在E:\opencv\install文件夹下,具体路径是选择的路径决定。接下来的配置和库路径的配置方式相同,这里编译后的install文件夹就相当于win pack包的build文件夹,所以博主就不在重复了,不明白前看前文。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ROS for Windows更新支持Turtlebot3、Moveit!和UR3
下一篇:C# ORM学习笔记:T4入门及生成数据库实体类(cp是什么意思?)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~