dlib库使用
最近的工作中用到了dlib这个库,该库是一个机器学习的开源库,使用起来很方便,直接包含头文件即可,并且不依赖于其他库(自带图像编解码库源码)。不过由于是开源的,所以bug多少有一些,我在example编译和使用时就遇到了一些问题,总结如下:
1.example编译
按照官网的指导,下载最新的18.18版本dlib,然后解压缩到某个路径。dlib库不用单独编译,只需要编译example,即可看到效果。根据README.txt文件中的步骤,在exmaple文件夹下,执行下面命令即可,
mkdir build
cd build
cmake ..
cmake --build .
但是一般在最后一步会遇到一些问题,导致编译失败,解决方法如下:
1.在dlib/CMakeLists.txt中 project(dlib) 的下一行添加set(Boost_USE_STATIC_LIBS ON)
2.把 if (DLIB_PNG_SUPPORT) (227行左右)这一行以下的这些代码进行注释,其余不变
# try to find libpng
#find_package(PNG QUIET)
# Make sure there isn't something wrong with the version of LIBPNG
# installed on this system.
#if (PNG_FOUND)
#set(CMAKE_REQUIRED_LIBRARIES ${PNG_LIBRARY})
#CHECK_FUNCTION_EXISTS(png_create_read_struct LIBPNG_IS_GOOD)
#endif()
#if (PNG_FOUND AND LIBPNG_IS_GOOD)
#include_directories(${PNG_INCLUDE_DIR})
#set (dlib_needed_libraries ${dlib_needed_libraries} ${PNG_LIBRARY})
#else()
# If we can't find libpng then statically compile it in.
3.把 if (DLIB_JPEG_SUPPORT) (280行左右)这一行以下的这些代码进行注释,其余不变
# try to find libjpeg
#find_package(JPEG QUIET)
# Make sure there isn't something wrong with the version of libjpeg
# installed on this system. Also don't use the installed libjpeg
# if this is an APPLE system because apparently it's broken (as of 2015/01/01).
#if (JPEG_FOUND)
#set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARY})
#CHECK_FUNCTION_EXISTS(jpeg_read_header LIBJPEG_IS_GOOD)
#endif()
#if (JPEG_FOUND AND LIBJPEG_IS_GOOD AND NOT APPLE)
#include_directories(${JPEG_INCLUDE_DIR})
#set (dlib_needed_libraries ${dlib_needed_libraries} ${JPEG_LIBRARY})
#else()
# If we can't find libjpeg then statically compile it in.
这样应该就可以编译通过了,编译出的二进制文件应该也可以执行,如果执行时依然报错找不到jpeg或png库,再确认一下CMakeLists文件是否按照上述修改。
dlib库使用的更多相关文章
- dlib库学习之一
dlib库学习之一 1.介绍 跨平台 C++ 通用库 Dlib 发布 ,带来了一些新特性,包括概率 CKY 解析器,使用批量同步并行计算模型来创建应用的工具,新增两个聚合算法:中国低语 (Chines ...
- Windows7 x64 编译Dlib库
最近用到Dlib库,需要先编译. 本文利用 cmake + Sublime Text 2 + MinGW实现编译. 1. 下载dlib源码[dlib18.17]http://pan.baidu.com ...
- Windows系统下 Python(Anaconda)的 Dlib库 的安装
0.引言 介绍 Windows 10 64位系统下,利用 Anaconda 开发环境,在python中安装 Dlib库 : windows下dlib的安装十分不友好,所以在这里分享下安装过程: win ...
- python 中 dlib库的安装
安装 dlib 库的时候需要用到 CMake 进行本地编译,而Cmake又是基于Visual Studio运行的,我在装这个库的时候,各种找不到教程,就想着分享一下自己的经验. 32位 python3 ...
- Centos6.8 安装dlib库时出错【升级gcc 到4.9.0以上】
在centos6.8上安装dlib库时出现错误: 1.CMake must be installed to build the following extensions: dlib 没有安装CMake ...
- 【opencv基础】opencv和dlib库中rectangle类型之间的转换
前言 最近使用dlib库的同时也会用到opencv,特别是由于对dlib库的画图函数不熟悉,都想着转换到opencv进行show.本文介绍一下两种开源库中rectangle类型之间的转换. 类型说明 ...
- Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
Dlib库中提供了正脸人脸关键点检测的接口,这里参考dlib/examples/face_landmark_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸关键点检测的 ...
- Dlib库中实现正脸人脸检测的测试代码
Dlib库中提供了正脸人脸检测的接口,这里参考dlib/examples/face_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸检测的测试代码,测试代码如下: #i ...
- Windows 下在 Python (Anaconda) 中安装 Dlib 库
0. 引言 介绍在 Windows 操作系统下,在 Python 的 Anaconda 集成环境中,安装 Dlib 库 : 对于不了解源码编译的,或者利用 cmake 方法失败的,可以尝试下此方法: ...
随机推荐
- Fragment之间的通信
在本节中,你会学到 1.定义接口 2.实现接口 3.将消息传递给fragment 为了重用Fragment UI 组件,在设计中你应该通过定义每一个fragemnt自己的layout和行为,让frag ...
- C#中的ThenBy是如何实现的
C#中给继承自IEnumerable的对象(最熟知的就是List了)提供了很丰富的扩展方法,涉及列表操作的方方面面.而扩展方法ThenBy就是很有意思的一个,它的实现也很巧妙. 如果有这样的一个Tea ...
- atitit.设计模式(1)--—职责链模式(chain of responsibility)最佳实践O7 日期转换
atitit.设计模式(1)---职责链模式(chain of responsibility)最佳实践O7 日期转换 1. 需求:::日期转换 1 2. 可以选择的模式: 表格模式,责任链模式 1 3 ...
- atitit.团队建设总结o6o fix
atitit.团队建设o6o fix #----- 无限放大梦想 2 要有自己的方向...主动添加自己的东东.. 3 有几个tech site,能晓得最新的的知识.. 3 有问题多交流, 3 失败的造 ...
- piwik流量统计系统搭建(apache2.4+piwik+mysql5.6+php5.6.14)
Piwik: 开放源代码的Web统计软件 Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 它给你一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等 ...
- maven源码分析- mvn.bat分析
第一次知道MAVEN是在2008年,当时想分析geoserver这个开源项目,发现该项目采用了maven进行项目管理,当时粗略的学习了一下.真正在工作中使用是在09年下半年,个人感觉使用起来还是非常好 ...
- (谷歌浏览器等)解决css中点击input输入框时出现外边框方法【outline:medium;】
问题:在使用谷歌浏览器,360浏览器时,点击input输入框会出现带颜色的外边框,如下图所示:
- [IOS]IOS UI指南
[IOS]IOS UI指南 众所周知,IOS的界面设计,越来越流行,可以说都形成了一个标准,搜集了一些资料,供自己以后学习使用! iOS Human Interface Guidelines (中文翻 ...
- 安卓App流量统计
http://keepcleargas.bitbucket.org/2013/10/12/android-App-Traffic.html 安卓App流量统计 12 OCT 2013 android流 ...
- Apache和tomcat服务器使用ajp_proxy模块
首先我们先介绍一下为什么要让Apache与Tomcat之间进行连接.事实上Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,装好tomcat后通过8080端口可以直接使用Tomcat ...