配置win10+vs2013+dlib18.16库

简介: 配置win10+vs2013+dlib18.16库

 因为要研究三维人脸识别,但是导师不管,也没有师兄师姐带,就是单枪匹马,自己瞎搞,还没有途径,等死中。。。。。。刷网页的时候偶然知道了Dlib库包含68点人脸识别算法,所以就想试试,到底是神马样的,好奇呀,感觉比较神奇啊,用了一上午逛csdn,也是见识到了好多配置方法,总的来说呢,Dlib库可以配置在python环境,也可以配置在vs环境,可以选择cmake编译,也可以选择dlib源码编译,我比较懒,图省事,配置环境如下:

  • 电脑环境:windows 10
  • 编译环境:vs2013
  • Dlib18.16源码

刚亲测完,就立马跑来记录了,以防忘记 ~~~

1.准备工作

       我的vs已经配置过opencv了,在上一篇blog中刚记录完,所以关于事先是否配置opencv这个问题我就忽略啦~

Dlib18.16下载:去官网呀。或者戳这里:https://github.com/davisking/dlib/releases?after=v18.17

我把解压后的文件夹扔进了vs安装文件中,放在那里应该看你心情,毕竟看大家的操作放哪里都是可以哒。

2.在vs中用Dlib源码直接生成dlib.lib(我的因为命名是dlibTest.lib)文件

2.1 配置项目平台

老套路又来了,打开vs,新建一个win32控制台应用程序,我给它起了个麻烦的名字dlibTest,这个名字很重要欸,搞得我运行出错,思索再三,想到了是它的问题,建议直接命名dlib,减少不必要的麻烦。

新建的项目如下,首先设置它的平台,右键【dlibTest】——【属性】——【配置管理器】,我选择了debugx64,你也可以选择release,全程保持一致就好啦:

2.2 配置项目属性和目录

1.【配置属性】——【常规】,修改以下两项:

 注意:目标文件名按你自己的来啊

2.【c/c++】——【常规】——【附加包含项】,找到dlib文件夹中的libjpeg,libpng和zlib ,比如说我的路径为D:\vs2013\dlib\dlib-18.16\dlib\external\zlib,进行添加:

3. 【c/c++】——【预处理器】——【预处理器定义】,添加DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT预处理定义:

4.将项目置为【解决方案资源管理器】模式,在源文件中添加:source.cpp

                                                                    在资源文件中添加: libjpeg,libpng和zlib三个文件夹中的文件

5. 生成解决方案,生成lib文件,比如我的是dlibTest.lib,生成位置如下:

至此,使用dlib源码生成.lib文件完成。

3.配置dlibTest.lib

1.依然是新建一个新的win32控制台应用程序,在Debugx64文件夹下添加新项目属性表,名字自己定义:

2 .右键【属性表】——【属性】,添加dlib-18.16的路径到【vc++目录】的如下目录:

3. 将dlibTest.lib的路径添加到【链接器】——【常规】——【附加库目录】

4.将生成的 dlibTest.lib添加到【链接器】——【输入】——【附加依赖项】

5.将DLIB_PNG_SUPPORT、DLIB_JPEG_SUPPORT添加到【c/c++】——【预处理器】——【预处理器定义】:

单击【应用】——【确定】,完成配置。

4. 测试

#include<dlib\image_processing\frontal_face_detector.h>  
#include<dlib\gui_widgets.h>  
#include<dlib\image_io.h>  
using namespace dlib;
void TestFaceDetect(const char *filename) {
  frontal_face_detector detector = get_frontal_face_detector();
  array2d<unsigned char> img;
  load_image(img, filename);
  std::vector<rectangle> dets = detector(img);
  printf("Numbere of face detected:%d\n", dets.size());
}
int main()
{
  const char *filename = "23.jpg";
  TestFaceDetect(filename);
  system("pause");
  return 0;
}

测试结果:

完美收官~~~给自己撒花花

 

参考博客:https://blog.csdn.net/what_lei/article/details/78289906

目录
相关文章
|
存储 Python
在Python中,字典(`dict`)的键(key)具有唯一性
在Python中,字典(`dict`)的键(key)具有唯一性
596 1
|
3月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
6月前
|
存储 数据挖掘 Python
单细胞 轨迹分析 教程(长文+代码)
单细胞 轨迹分析 教程(长文+代码)
197 10
单细胞 轨迹分析 教程(长文+代码)
|
SQL Oracle 关系型数据库
Oracle 备份恢复再也不用头疼了
Oracle 备份恢复再也不用头疼了
308 0
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
205 1
|
Web App开发 JavaScript 前端开发
Electron V8排查问题之Chrome DevTools的Memory工具的使用如何解决
Electron V8排查问题之Chrome DevTools的Memory工具的使用如何解决
243 0
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
645 1
|
TensorFlow 算法框架/工具 C++
在有GPU的windows上安装TensorFlow
在有GPU的windows上安装TensorFlow
400 0
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
205 0
|
Java 测试技术
使用MybatisPlus时出现的java.lang.NullPointerException异常~
使用MybatisPlus时出现的java.lang.NullPointerException异常~
688 0
使用MybatisPlus时出现的java.lang.NullPointerException异常~