最近学校布置了一个关于图像融合的作业,于是想利用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. 1.solr学习速成之配置文件

    什么是solr Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过H ...

  2. stm32中断 抢占优先级 和 响应优先级 有什么区别

    与51不同,stm32的中断分类更灵活.51只是按先后顺序大小排列互相打断. stm32中多了响应优先级这一概念. stm32的中断分为 1.抢占(占先)优先级. 2.响应优先级. 1.抢占优先级.抢 ...

  3. Storm集群部署及单词技术

    1. 集群部署的基本流程 集群部署的流程:下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 注意: 所有的集群上都需要配置hosts vi  /etc/hosts 192.168.239.1 ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  5. zookeeper更进一步(数据模型、watcher及shell命令)

    ZooKeeper数据模型 ZooKeeper 的数据模型,在结构上和标准文件系统的非常相似,拥有一个层次的命名空间,都是采用树形层次结构,ZooKeeper 树中的每个节点被称为—Znode.和文件 ...

  6. linux系统上部署一个web项目

    对于apache开源项目中tomcat的认识,大多停留在Windows下,这次我通过一个简单的实例来介绍一下在linux下如何搭建tomcat环境,并且部署一个web项目. 先从基本安装开始,可别小看 ...

  7. 虚拟机ubuntu18.04设置静态IP

    说明: 网关:192.168.8.2 待设置静态IP:192.168.8.25 1.编辑:vi /etc/netplan/01-network-manager-all.yaml 打开以后内容如下: # ...

  8. 面试题:缓存Redis与Memcached的比较 有用

    Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. 它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.    Memca ...

  9. js弹出窗口

    function openModalDialog(url, height, width) { var t_height = 400; var t_width = 600; if (!isNaN(hei ...

  10. pipeline 对部分特征进行处理

    http://scikit-learn.org/stable/auto_examples/preprocessing/plot_function_transformer.html#sphx-glr-a ...