vs2017 dlib19.3 opencv3.41 C++ 环境配置 人脸特征点识别
身为一个.net程序员经过两天的采坑终于把人脸特征检测的项目跑通了,然后本文将以dlib项目中人脸特征检测工程为例,讲解dlib与opencv 在vs2017 C++ 项目中的编译与运行路径配置。
1、项目建立
首先建立一个C++控制台项目,然后根据自己的开发平台选择编译环境我是win10 64位系统所以我选择x64。
建立控制台项目
编译环境选择X64
2、Opecv 3.4.1安装配置
Opencv最新版下载地址:https://opencv.org/
下载最新版本3.4.1
1、配置Opencv系统环境路径:系统属性→高级系统设置→环境变量→系统变量→Path编辑→新建添加Opencv环境路径 (你的安装目录)\opencv\build\x64\vc15\bin\
进入环境变量配置
增加环境变量路径
2、回到我们一开始建立的C++项目开始配置Opencv引用路径(C#里直接引用个dll的事情在C++都得靠静态指向过去我也挺醉的 ,又更好的方法请告诉我毕竟我是C++小白。。。),vs编译器视图→其它窗口→属性管理器 ,在自己编译器环境下增加新项目属性表。
增加opencv的属性表
3、双击进入属性页VC++目录→包含目录and库目录中加入以下路径:
1 包含目录:(你的安装目录)\opencv\build\include\opencv (你的安装目录)\opencv\build\include\opencv2 (你的安装目录)\opencv\build\include 2 3 库目录:(你的安装目录)\opencv\build\x64\vc15\lib
加入opencv库目录
4、链接器→输入→附加依赖项 加入opencv的静态链接库名字opencv_world341d.lib (不同版本的名字不一样自己看好再填)opencv\build\x64\vc15\lib 目录下查看
加入opencv静态链接库名字
5、验证opencv是否配置完毕在新建的项目中加入 #include <opencv2/opencv.hpp> 查看是否可以引用。
3、Dlib安装配置
1、下载最新版本Dlib http://dlib.net/ ,下载Cmake (一款跨平台的编译工具)https://cmake.org/
2、编译Dlib 选择dlib源目录与编译后的存放目录,选择好之后点击Generate开始编译。
3、同Opencv一样加入Dlib的新项目属性表,双击进入属性页。VC++目录→包含目录、引用目录、库目录添加Dlib根目录
\dlib-19.9\
链接器→输入→附加依赖项 添加dlib_debug_64bit_msvc1911.lib 同 opencv一样请自行查看编译后目录正确的lib名字 目录为你编译好的目录Debug目录下
C/C++ → 附加包含目录中加入
D:\Git\Dlibx64\Debug
4、项目右键加入现有项Dlib中的 source.cpp ,Dlib到此配置完毕。
\dlib\all
4、人脸特征点识别
Dlib里包含各种demo,以下是人脸特征点识别的demo 需要配合样本库才能运行样本库下载地址为http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 ,下载后放到项目目录下即可。
D:\Git\dlib-19.9\examples\webcam_face_pose_ex.cpp
5、遇到的各种编译问题
1、stdafx.h编译头问题 解决方法如下:
1、右键除stdafx.cpp以外其他cpp 属性页中C/C++ 下预编译头 选择不使用预编译头 2、右stdafx.cpp 属性页中C/C++ 下预编译头 创建预编译头
2、各种恶心的重定义问题,项目右键属性→C/C++→预处理器→预处理器定义添加 WIN32_LEAN_AND_MEAN 我看这个大部分Dlib教程都没有写 估计都是各种C++大触写个C++中小触看的 我等.net菜鸡不懂啊!!!那么多报错吓死多少人。
3、找不到静态链接库文件,重新检查我上面提到的几个路径。
PS:爆下自己的丑照最终效果代码我去别的地方爬的官方代码太慢。。。