配置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)具有唯一性
761 1
|
6月前
|
存储 缓存 分布式计算
OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
MaxCompute直读OSS外部表优化方案,解决传统ETL架构中数据同步延迟高、传输成本大、维护复杂等问题。通过存储格式优化(ORC/Parquet)、分区剪枝、谓词下推与元数据缓存等技术,显著提升查询性能并降低成本。结合冷热数据分层与并发控制策略,实现高效数据分析。
167 2
|
Linux C语言
C语言 多进程编程(四)定时器信号和子进程退出信号
本文详细介绍了Linux系统中的定时器信号及其相关函数。首先,文章解释了`SIGALRM`信号的作用及应用场景,包括计时器、超时重试和定时任务等。接着介绍了`alarm()`函数,展示了如何设置定时器以及其局限性。随后探讨了`setitimer()`函数,比较了它与`alarm()`的不同之处,包括定时器类型、精度和支持的定时器数量等方面。最后,文章讲解了子进程退出时如何利用`SIGCHLD`信号,提供了示例代码展示如何处理子进程退出信号,避免僵尸进程问题。
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
248 1
|
JSON JavaScript 前端开发
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
vue2_vite.config.js的proxy跨域配置和nginx配置代理有啥区别?
721 1
|
存储 前端开发 人机交互
|
开发框架 安全 数据库
Flask vs. Django
【5月更文挑战第9天】对比了 Flask 和 Django 两个流行 Web 框架。Flask 轻量级,适用于小型到中型应用,强调简单和灵活性;Django 全栈,适合大型应用,内置功能丰富。Flask 在性能上通常更快,适合高并发场景,而 Django 在处理复杂数据模型时效率更高。两者生态系统活跃,Flask 部署简单,Django 部署复杂但扩展性强。Django 安全性出色,Flask 需额外扩展增强安全。在数据库支持上,Django 内置 ORM,支持多种数据库。选择框架需综合考虑多方面因素。
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
【Shell 命令集合 文档编辑】Linux 种算术运算 expr命令使用指南
237 0
|
TensorFlow 算法框架/工具 C++
在有GPU的windows上安装TensorFlow
在有GPU的windows上安装TensorFlow
482 0
|
Java 测试技术
使用MybatisPlus时出现的java.lang.NullPointerException异常~
使用MybatisPlus时出现的java.lang.NullPointerException异常~
739 0
使用MybatisPlus时出现的java.lang.NullPointerException异常~