- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 Windows 上的 Qt 项目中使用 dlib。下载后,我立即开始尝试构建我的 Qt 应用程序,但没有构建示例。我还从 GnuWin 下载了静态库 libpng 和 libjpeg。
.pro 文件:
SOURCES += main.cpp\
mainwindow.cpp \
C:/Users/user/Downloads/dlib-19.0/dlib-19.0/dlib/all/source.cpp
HEADERS += mainwindow.h
INCLUDEPATH += "C:\Users\user\Downloads\dlib-19.0\dlib-19.0"
LIBS += -L"C:\Users\user\Downloads\dlib-19.0\dlib-19.0"
INCLUDEPATH += "C:\Users\user\Downloads\dlib-19.0\dlib-19.0\dlib\external\libpng"
INCLUDEPATH += "C:\Users\user\Downloads\dlib-19.0\dlib-19.0\dlib\external\libjpeg"
LIBS += -L"C:\Users\user\Downloads\jpeg-6b-4-lib\lib" -ljpeg
LIBS += -L"C:\Users\user\Downloads\libpng-1.2.37-lib\lib" -lpng
LIBS += -lwinmm -lws2_32 -luser32 -lgdi32 -lcomctl32 -limm32
QMAKE_CXXFLAGS += -std=c++11 -DDLIB_PNG_SUPPORT -DDLIB_JPEG_SUPPORT
代码:
try
{
array2d<rgb_pixel> img;
load_image(img, "C:\\Users\\user\\Downloads\\test.jpg");
}
catch (exception& e)
{
cout << "\nexception thrown!" << endl;
cout << e.what() << endl;
}
MinGW 输出:
png_loader.cpp:103: undefined reference to 'png_set_longjmp_fn'
png_loader.cpp:153: undefined reference to 'png_set_longjmp_fn'
save_png.cpp:20: undefined reference to 'png_set_longjmp_fn'
save_png.cpp:72: undefined reference to 'png_set_longjmp_fn'
我知道我需要使用 libpng 1.4,但我在 GnuWin 中找不到这个版本,所以我使用了最相关的 1.2。
MSVC 运行时异常:
exception thrown!
Unable to load image in file C:\Users\user\Downloads\test.jpg.
You must #define DLIB_JPEG_SUPPORT and link to libjpeg to read JPEG files.
Do this by following the instructions at http://dlib.net/compile.html.
Note that you must cause DLIB_JPEG_SUPPORT to be defined for your entire project.
So don't #define it in one file. Instead, add it to the C/C++->Preprocessor->Preprocessor Definitions
field in Visual Studio's Property Pages window so it takes effect for your entire application.
但我在我的 .pro 文件中设置了 -DDLIB_JPEG_SUPPORT
,链接了 jpeg 和 png,甚至下载到工作文件夹共享库 jpeg.dll 中。我该如何解决这个问题或如何在 Windows 上的 Qt 中使用 dlib?
更新:E:\CMake\bin\cmake.exe --build 之后的错误。 --配置发布
:
"C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\3d_point_cloud_ex.vcxproj" (default target)
(3) ->
"C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj" (default target) (4
) ->
(target ClCompile) ->
f:\gstreamer\1.0\x86\include\jmorecfg.h(211): error C2371: 'boolean': redefinition; different basic types [C:\Users\user
\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj]
C:\Program Files (x86)\Windows Kits\8.1\Include\shared\basetsd.h(72): error C2371: 'INT32': redefinition; different b
asic types [C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj]
c:\program files (x86)\windows kits\8.1\include\shared\rpcndr.h(178): error C2371: 'boolean': redefinition; different
basic types [C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj]
c:\program files (x86)\windows kits\8.1\include\shared\wtypesbase.h(493): error C2371: 'BOOLEAN': redefinition; diffe
rent basic types [C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj]
UPD2:
"C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\ALL_BUILD.vcxproj" (default target) (1) ->
"C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\3d_point_cloud_ex.vcxproj" (default target) (3) ->
"C:\Users\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj" (default target) (4) ->
(target ClCompile) ->
C:\Users\user\Downloads\dlib-19.0\dlib-19.0\dlib\image_loader\jpeg_loader.cpp(17): fatal error C1083: Cannot open include file: 'jpeglib.h': No such file or directory [C:\U
sers\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj]
C:\Users\user\Downloads\dlib-19.0\dlib-19.0\dlib\image_saver\save_jpeg.cpp(16): fatal error C1083: Cannot open include file: 'jpeglib.h': No such file or directory [C:\User
s\user\Downloads\dlib-19.0\dlib-19.0\examples\build\dlib_build\dlib.vcxproj]
UPD3:
.pro 文件:
INCLUDEPATH += "E:\dlib_build\include"
LIBS += -L"E:\dlib_build"
LIBS += -ldlib
QMAKE_CXXFLAGS_RELEASE += /arch:AVX
QMAKE_CXXFLAGS += -std=c++11 -DDLIB_PNG_SUPPORT -DDLIB_JPEG_SUPPORT
MSVC 2015 64 位版本输出:
mainwindow.obj : error LNK2019: unresolved external symbol "public: __cdecl dlib::entropy_decoder_kernel_2::entropy_decoder_kernel_2(void)" (??0entrop...
mainwindow.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl dlib::entropy_decoder_kernel_2::~entropy_decoder_kernel_2(void)" (...
mainwindow.obj : error LNK2019: unresolved external symbol "public: void __cdecl dlib::entropy_decoder_kernel_2::set_stream(class std::basic_istream<c...
mainwindow.obj : error LNK2019: unresolved external symbol "public: void __cdecl dlib::entropy_decoder_kernel_2::decode(unsigned int,unsigned int)" (?...
mainwindow.obj : error LNK2019: unresolved external symbol "public: unsigned int __cdecl dlib::entropy_decoder_kernel_2::get_target(unsigned int)" (?g...
mainwindow.obj : error LNK2019: unresolved external symbol "public: __cdecl dlib::png_loader::png_loader(class std::basic_string<char,struct std::char...
mainwindow.obj : error LNK2019: unresolved external symbol "public: __cdecl dlib::png_loader::~png_loader(void)" (??1png_loader@dlib@@QEAA@XZ) referen...
mainwindow.obj : error LNK2019: unresolved external symbol "public: bool __cdecl dlib::png_loader::is_gray(void)const " (?is_gray@png_loader@dlib@@QEB...
mainwindow.obj : error LNK2019: unresolved external symbol "public: bool __cdecl dlib::png_loader::is_graya(void)const " (?is_graya@png_loader@dlib@@Q...
mainwindow.obj : error LNK2019: unresolved external symbol "public: bool __cdecl dlib::png_loader::is_rgb(void)const " (?is_rgb@png_loader@dlib@@QEBA_...
mainwindow.obj : error LNK2019: unresolved external symbol "public: bool __cdecl dlib::png_loader::is_rgba(void)const " (?is_rgba@png_loader@dlib@@QEB...
mainwindow.obj : error LNK2019: unresolved external symbol "private: unsigned char const * __cdecl dlib::png_loader::get_row(unsigned int)const " (?ge...
mainwindow.obj : error LNK2019: unresolved external symbol "public: __cdecl dlib::jpeg_loader::jpeg_loader(class std::basic_string<char,struct std::ch...
mainwindow.obj : error LNK2019: unresolved external symbol "public: bool __cdecl dlib::jpeg_loader::is_gray(void)const " (?is_gray@jpeg_loader@dlib@@Q...
mainwindow.obj : error LNK2019: unresolved external symbol USER_ERROR__missing_dlib_all_source_cpp_file__OR__inconsistent_use_of_DEBUG_or_ENABLE_ASSER...
E:\dlib_build\lib\dlib.lib : warning LNK4272: library machine type 'X86' conflicts with target machine type 'x64'
release\dlibWindows.exe : fatal error LNK1120: 15 unresolved externals
jom: F:\Projects\QtProjects\build-dlibWindows-Desktop_Qt_5_6_0_MSVC2015_64bit-Release\Makefile.Release [release\dlibWindows.exe] Error 1120
UPD4:
.pro 文件:
INCLUDEPATH += "E:\dlib_build\include"
LIBS += -L"E:\dlib_build"
LIBS += -ldlib
QMAKE_CXXFLAGS_RELEASE += /arch:AVX
代码:
try
{
//or even just one line "frontal_face_detector detector = get_frontal_face_detector();"
array2d<rgb_pixel> img;
load_image(img, "C:/Users/user/Downloads/test.jpg");
}
catch (exception& e)
{
cout << "\nexception thrown!" << endl;
cout << e.what() << endl;
}
发布输出:
Exited with code 255
最佳答案
您选择了将all/source.cpp 包含到您的项目中的编译方式。这是可能的,但我认为这不是使用 dlib 的最佳方式。因此,如果您想在项目中使用 all/source.cpp - 请按照此处的说明进行操作:http://dlib.net/compile.html
Compiling on Windows Using Visual Studio
All you need to do is create an empty console project. Then add dlib/all/source.cpp to it and add the folder containing the dlib folder to the #include search path. Then you can compile any example program by adding it to your project.
Again, note that dlib will only be able to work with jpeg and png files if you link in libjpeg and libpng. In Visual Studio, the easiest way to do this is to add all the source files in the dlib/external folder into your project and also define the DLIB_PNG_SUPPORT and DLIB_JPEG_SUPPORT preprocessor directives. If you don't know how to configure Visual Studio then you should use CMake as shown above since it will take care of everything automatically.
通过添加 dlib/external 文件夹 - 您可以从项目中删除 libjpeg 和 libpng。
但正如我所说 - 这不是编译 dlib 的最佳方式。 Dlib 旨在与 CMAKE 一起使用,最好的方法是使用 CMAKE 构建它。为什么这种方式更好:
这里的第一步(安装 CMAKE 之后)应该是检查 Dlib 是否工作。根据 Dlib 的说明,最好的方法是构建示例并运行它们(从 dlib 的文件夹):
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release
运行cmake ..时你可以指定你的编译器版本,例如:
cmake .. -G"Visual Studio 14 2015 Win64"
使用 Visual Studio 2015 x64 构建示例
在测试示例之后,是构建 Dlib 并开始在实际项目中使用它的好时机。是的,再次构建由 CMAKE 完成(来自 dlib 文件夹):
mkdir build
cd build
cmake .. -G"Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX=C:\Users\user\dlib
cmake --build . --config Release --target install
构建过程与构建示例略有不同:
构建过程完成后 - 您可以自由使用 C:\Users\user\dlib\lib 中的 dlib.lib(Dlib 的静态版本)。如果您将在项目中使用 CMAKE - 您将需要添加 -DCMAKE_PREFIX_PATH=c:\Users\user\dlib。但是现在您正在尝试使用 Qt Creator (QMake) 进行编译。这是你的 .pro 文件应该看起来像(最小可能的例子):
SOURCES += face_detection_ex.cpp
INCLUDEPATH += "C:\Users\user\dlib\include"
LIBS += -L"C:\Users\user\dlib"
LIBS += -ldlib
QMAKE_CXXFLAGS_RELEASE += /arch:AVX
由于我们在构建过程中使用了--config Release,因此该项目不会在Debug 模式下编译和运行。但是Release模式会跑的很快
关于c++ - 在 Windows 上编译 dlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38136699/
我目前正在尝试使用我存档的图像训练 DNN(OCR 上下文......每个类的输入图像是数千个固定大小的小图像的聚合图像)。 我有一些代码可以打开聚合图像并将其正确分割为小型 OpenCV cv::M
我正在尝试将 dlib 安装到 cloud9 上,但我一直收到此错误。 c++: internal compiler error: Killed (program cc1plus) Please su
我目前正在尝试构建和使用旨在将 dlib 移植到 Android 的 dlib-android 库。搭建成功;但是在相应的演示项目dlib-android-app中使用编译后的共享C++库时,应用程序
我需要一个 dlib::matrix 的 std::vector,但我在编译时不知道矩阵大小;文档告诉我: // (Note that if you don't know the dimensiona
我试图在 dlib 中移动几步的尝试在尝试复制此代码的某些部分时突然停止 http://dlib.net/face_landmark_detection_ex.cpp.html 这就是我目前所得到的
我使用 dlib 的 hog 检测器,因为它发现人脸比 opencv haarcascades 好得多。但它无法检测脸上的情绪(或者可以???)。我需要从带有面部的 dlib::rectangle 中
我在启用了 CUDA 9.1 的 Ubuntu 16.04 上使用 cmake 3.11.0 编译了 dlib 19.10。一切顺利,没有遇到任何问题! 这里是运行 cmake .. 的输出 -- T
我正在尝试为我的 django python 环境安装 dlib(机器学习库)。但是,我无法安装它。有错误并卡住。 根据这个指令,这就是我所做的 https://www.pyimagesearch.c
我无法运行Streamlight应用程序并遇到错误。我卸载了dlib并安装了cmake,然后再次安装dlib,仍然得到相同的错误
前言 人脸识别在lwf(labeled faces in the wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,但是真实的环境中的准确率有多少呢?我没有这方面的数据,
我想绘制脸颊的轮廓,如下图所示: 我正在使用 OpenCV 和 Dlib 来检测界标,而且我不知道如何操作Dlib点。有谁知道我可以在脸颊上绘制轮廓吗? 这是我的代码: import cv2 impo
使用 dlib 库如何进行元素特定操作?例如 A = [1 2 3; 4 5 6] 我可以让它对矩阵的元素进行平方,而不是 A*A,这样答案就是 ans = [1 4 9; 16 25 36] 在 m
我刚开始尝试 dlib 库。我已经完成了编译说明,但问题仍然存在。我正在使用命令行进行编译和执行。我使用了以下命令并给了我错误。 g++ -O3 -I.. ../dlib/all/source.cpp
我正在使用 dlib 做机器学习,但我发现所有代码只能处理一维标签。 我的数据集是这样的:样本是 m 长度的 vector ,标签是 n 长度的 vector 。 (m>n) dlib 是否可以针对此
我正在为 object detection 使用 dlib ,标注和训练数据集是使用HOG+SVM完成的,能够检测到物体,但是现在 我需要从图像中提取芯片 我想在 win_overlay 上的检测区域
我想从低亮度图像中检测人脸。我正在使用 dlib 从图像中检测人脸。但是 dlib 检测器根本检测不到人脸。我有以下代码来检测图像中的人脸。 detector=dlib.get_frontal_fac
我正在使用 D-lib 提取面部的某些区域。我正在使用 opencv 裁剪使用 dlib 地标点检测器检测到的区域。但是,裁剪后的图像是蓝色的。知道为什么要改变吗?而且我发现一些图像跳过了这段代码。因
我遇到了一个奇怪的错误——每当我包含 #include 时到我的项目并声明一个变量(例如 dlib::image_window win )出现以下错误: 'DLIB_NO_GUI_SUPPORT i
我正在编写一个 dlib 代码来进行一对一的人脸识别。 我遵循 dlib samples 中的代码示例并执行了以下操作: std::vector> faces; for (auto face : de
我正在寻找使用 dlib 库来优化近似误差...假设我有点 (x,y) 和一个值 vector ,它们用于查找最小值并在本地拟合误差,所以我实现了此类: #include #include #in
我是一名优秀的程序员,十分优秀!