最近学校布置了一个关于图像融合的作业,于是想利用Learn OpenCV 网站上的Face Morph 教程来设计一个人脸融合的Gif图,但是程序中需要用到DLib库,光是配置这个库就花费了我半天的时间,网络上的教程太多了,有一些并不一定适用。

  我尝试了很多种办法,出现过各种各样的bug,走了许多弯路(比如说加上DLib库之后OpenCV的imread函数读不到图像数据,网络上说的解决方法是检查附加依赖项是否release使用了带d的lib,而debug使用了不带d的lib,但是我检查之后发现并没有错,所以最后一直没解决这个问题,又重新上网找其他配置方法),直到最后我选择了 DLib官网 提供的安装方法(全是英文,翻译了好久),才成功了。果然官方给的方法才是最实用的。

一、安装CMake

  官网提供的方法是使用CMake生成库,首先我们的电脑上需要安装CMake,前往 CMake官网下载地址 下载,我使用的版本是3.14.2,选择msi格式的安装包(之所以选择msi格式是因为msi可以方便地添加环境变量到系统),根据自己电脑的处理器选择x64还是x86的安装包,我的电脑是x64处理器,所以我选择了红框框出来的安装包。

  安装包下载完成之后,双击文件运行,点击next

  勾选agreement,点击next

  选择“Add CMake to the system PATH for all user”和“Create CMake Desktop Icon”,点击next

  选择生成的路径,点击next

  点击“Install”

  安装完成

  之后检查一下系统的环境变量中是否有添加CMake的bin路径。

  右键点击桌面上“我的电脑” --> 弹出界面左栏中的“高级系统设置”

  --> 选择“环境变量” --> 点击“系统变量”组框下的“Path”,点击“编辑”按钮

  --> 弹出的窗口中检查是否有CMake/bin一栏,没有的话,点击“编辑”按钮自己手动添加

二、下载DLib

  安装完CMake之后,前往 DLib官网files 下载DLib库,选择 dlib-19.17.zip ,下载到本地(我选择的是D盘),下载完成后解压,得到一个文件夹,文件夹中有如下文件

三、使用cmd命令让CMake编译Dlib库

  使用WIN+R组合键调出“运行”界面,输入“cmd”调出命令行窗口

  在命令行窗口,首先输入D:转到D盘下的目录(博主的DLib解压到了D盘),(tip:此时输入dir命令可以显示目录下的全部文件名,文件名输入一部分时可以按下“Tab”键可以自动补全),然后输入cd DLib跳转到DLib文件夹,继续输入cd dlib-19.17跳转到库目录下(还有一种方法是直接在库目录下使用shift+鼠标右键直接开启该目录下的命令行窗口,博主没有用过,你们可以试一下)

  来到该目录下之后,就可以使用官方的方法编译DLib库啦

  这里解释一下,第一行cd examples 是跳转到DLib库下的examples文件夹,该文件夹下有一个名为“CMakeLists.txt”的文件,里面有DLib的配置方案,反正按官方说的做就对了;第二行mkdir build 是生成一个名为build的文件夹,到时候CMake编译时生成的文件都会放在这里面,包括生成的库。第三行cd build 跳转到build文件夹下。当使用第四行命令cmake .. 就是CMake的编译命令,运行到这里时,若出现不是内部的命令,则需要把安装的Cmake的bin目录添加到环境变量PATH里,具体方法上面有。cmake .. 这两个点表示上一级文件夹,也就是examps文件夹,意思应该是让CMake去寻找“CMakeLists.txt”的文件。此安装默认生成32位的可执行文件,要想生成64位的,需要将cmake.. 命令替换为 cmake -G "Visual Studio 15 2017 Win64" -T host=x64 ..(最后两个点不要漏了)。第五行cmake --build . --config Release ,--build 是开始编译命令,. 一个点表示当前目录,即生成文件存放在当前目录下,--config Release 这里需要注意啦,如果写Release 最终将生成Release库,所以说如果你想生成一个Debug库的话,就需要改成--config Debug。
(博主已经生成过Release库,所以这次演示生成Debug库,生成目录名为buildDebug)

  输入cmake -G "Visual Studio 15 2017 Win64" -T host=x64 ..

  执行完成

  输入cmake --build . --config Debug

  执行的时间比较漫长,建议先去喝杯茶干点别的事,中间会出现一些warning没有关系,无视就行

  Cmake执行结束

  此时“D:\DLib\dlib-19.17\examples\buildDebug\dlib_build\Debug“” 文件夹下就会有编译好的库存在(注意:是dlib_build下的Debug文件夹)

  将生成的库拷贝,放置到D:\DLib\Library\Debug\下,方便查找和添加

配置VS2017环境

  打开VS2017,新建一个工程,选择工程的“属性管理器”(如果没有这一栏,可以点击“视图”-->“其他窗口”-->“属性管理器”)

  (我这里已经把OpenCV的属性表加进去了)右键点击“Debug | x64”,在弹出的菜单下选择“添加新项目属性表”,弹出的窗口中将属性表命名为“DLib_x64_debug”,修改保持位置为“D:\DLib\Library\Debug”(以后新建DLib的工程只要Add这个属性表就行了)

  然后右键点击DLib_x64_debug属性表,在弹出的菜单中选择“属性”

  首先在“VC++目录”下编辑包含目录,添加“D:\DLib\dlib-19.17”,点击“确定”

  在库目录下添加“D:\DLib\Library\Debug”,即dlib19.17.0_debug_64bit_msvc1916.lib所在的目录,点击“确定”

  然后在“链接器”-->“输入”的“附加依赖项”中添加“dlib19.17.0_debug_64bit_msvc1916.lib”,点击“确定”

  最后在“C/C++”-->“预编译器”中的“预处理器定义”中添加
DLIB_SUPPORT_JEPG
DLIB_SUPPORT_PNG
(注意:这里如果不添加这两个预编译指令的话,dlib::load_image函数就无法读取 .jpg .png格式的图像,程序会崩溃)

  到此,环境已经配置完成。

  这是我第一次写博客,费了挺多时间的,有什么错误或者漏缺还请多多指教。O(∩_∩)O哈哈~
  过几天我还会写一个使用OpenCV和DLib编写FaceWorph人脸融合程序的教程,敬请期待哦!

  参考文章
  https://blog.csdn.net/qq583083658/article/details/79917066

VS2017+DLib_19.17详细配置教程的更多相关文章

  1. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  2. 使用Docsify做文档网站的详细配置教程

    使用Docsify做文档网站的详细配置教程 作者:xhemj 没错,它叫Docsify. xhemj的文档中心就是用这个写的 开源地址:https://github.com/docsifyjs/doc ...

  3. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程

    UEditor是百度开发团队奉献的一款很不错的在线编辑器.在百度自己很多产品上都有应用,本文主要是该编辑器的配置教程. 1.下载UEditor,当前最新版本是1.3.6.这里下载的.net版本,选择U ...

  4. hadoop 2.0 详细配置教程(转载)

    转载: http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html 作者:杨鑫奇 PS:文章有部分参考资料来自网上,并经过实践后写出, ...

  5. Hadoop详细配置教程

    windows下采用PuTTY或者Xshell连接远程主机 mac用终端连接远程linux主机:ssh user@hostname user 为 linux 服务器的管理员名称 hostname 为 ...

  6. hadoop 2.0 详细配置教程

    http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html

  7. [VSTS] 从零开始 Team Foundation Server 2010 安装配置详细图文教程

    http://www.cnblogs.com/WilsonWu/archive/2011/11/24/2261674.html 近期公司要配TFS用于新项目的管理,公司也将逐步迁移至VSTS平台,前期 ...

  8. 11.IntelliJ IDEA详细配置和使用教程(适用于Java开发人员)

    转自:https://blog.csdn.net/chssheng2007/article/details/79638076 前言 正所谓工欲善其事必先利其器,对开发人员而言若想提高编码效率,一款高效 ...

  9. 详细的图文介绍如何利用XAMPP本地建站的环境配置教程

    原文:详细的图文介绍如何利用XAMPP本地建站的环境配置教程 WordPress 是一个简便快捷,用途广,人气旺的一个开源的博客建站程序.很有很多等您去发现. 简便快捷:在性能上易于操作.易于浏览: ...

随机推荐

  1. Maven的安装及配置、Maven在Eclipse中的配置

    一.需要准备的东西 1. JDK 2. Eclipse 3. Maven程序包 二.检查JAVA安装 三.安装Maven 下载apache-maven-3.5.3-bin.zip解压即可. 四.配置M ...

  2. python与桶排序

    问题提出: 将以下数据: 6, 8, 2, 3, 4, 0, 9, 1, 5,1 按从小到达排列. 桶排序原理: 桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出现 ...

  3. python----python使用mysql

    Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymql pymsql是Python中操作MySQL的模块,在windows中的安装: pip ...

  4. table td 实现细边框的样式

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org ...

  5. 一些c++

    1.static 静态局部对象: 一旦被创建,在程序结束前都不会被撤销.当定义静态局部对象的函数结束时,静态局部对象不会撤销. 2.内联函数: 避免函数调用的开销. 在函数返回类型前加上关键字 inl ...

  6. c语言之字符串数组

    一.字符串与字符串数组 1.字符数组的定义 char array[100]; 2.字符数组初始化 char array[100] = {'a','b','c'};  //array[0] = 'a' ...

  7. 当property遇上category

    [当property遇上category] @property可以在类定义中,以及extension定义中使用,编译器会自动为@property生成代码,并在变量列表(ivar_list_t)中添加相 ...

  8. Android 建立AIDL的步骤

    建立AIDL服务要比建立普通的服务复杂一些,具体步骤如下: (1)在Eclipse Android工程的Java包目录中建立一个扩展名为aidl的文件.该文件的语法类似于Java代码,但会稍有不同.详 ...

  9. c++ 门面模式(Facade)

    门面模式是比较常用的一种设计模式,我们可能在无意中就会使用,门面模式就是用一个门面类来处理子系统的复杂关系,门面类简单的Api接口供客户端调用.用一个简单的演播室来表示. #include <i ...

  10. SQL 数据排重,去掉重复数据 有用

    .最大的错误:    在对数据排重的时候,首先想到的就是Distinct,虽然这很管用,但多数场合下不适用,因为通常排重后还要做进一步处理,比如对编号排重后要按日期统计等. 无法排重的Group by ...