当我们混合使用opencv和dlib时,cv :: imread()在c ++项目中失败

阿莫

我在Visual Studio 2019中创建了一个c ++项目。我编译并构建了openCV版本4.2.0和dlib版本19.19.0,并在我的c ++项目中使用了它。我在单个项目中使用opencv和dlib的座右铭是我想使用opencv的DNN(caffe)和dlib的基于hog + svm的面部检测器(get_frontal_face_detector())进行面部检测。

我的两个功能是分开的,即detectFaceByOpenCVDNN()用于基于opencv的面部检测和detectFaceBydlibHOG()用于基于dlib的HOG + SVM的检测器。

我添加了两个项目的include目录,lib目录(其他库目录),并提到了.lib文件的其他依赖性。

该项目的构建成功,并生成.lib文件。通过使用此文件,另一个c ++控制台应用程序需要detectFaceByOpenCVDNN()(opencv人脸检测器)。

的代码detectFaceByOpenCVDNN()

#include <opencv2/imgcodecs.hpp>
#include <opencv2/dnn/dnn.hpp>

#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/gui_widgets.h>
#include <dlib/image_io.h>

using namespace dlib;
using namespace std;
using namespace cv::dnn;

void namespace_name::FaceDetection::detectFaceByOpenCVDNN(std::string filename)
{    

Net net;        
cv::Mat frame = cv::imread(filename);

if (frame.empty())
    throw std::exception("provided image file is not found or unable to open.");

int frameHeight = frame.rows;
int frameWidth = frame.cols;
    .... // code continues
}

当我执行此功能时,会收到异常消息,例如“找不到或无法打开提供的图像文件”。如果frame.empty()返回true ,则抛出该异常控制台上不会显示其他异常。

虽然只是在研究使失败的原因,但我知道,如果我dlib19.19.0_debug_32bit_msvc1924.lib从Properties-> Linker-> Input-> Additional Dependencies中删除条目,则frame.empty()返回false,然后程序继续。

但是我仍然不明白,为什么在单个c ++项目中使用opencv和dlib时cv :: imread()失败?

戴维斯·金

您是否使用libjpeg和dbpng静态构建了dlib?这可能与静态构建在您的opencv .lib文件中的这些库的相似副本冲突。如果不使用这些库,只需重建dlib即可。

或将opencv和dlib链接到相同的libjpeg和libpng库。

Dlib的cmake文件将尝试与libjpeg和libpng链接,如果找不到,则会生成系统副本并将其静态链接到dlib / external中。您可以通过设置DLIB_JPEG_SUPPORT控制cmake是否尝试链接到这些东西。DLIB_PNG_SUPPORT

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

图片正常时,使用imread of OpenCV失败

来自分类Dev

普通的C ++代码在一个测试项目中通过,而在主要项目中则失败

来自分类Dev

UWP C# 项目中 HTTP 重定向请求失败

来自分类Dev

C++ OpenCV imread not working in Android

来自分类Dev

当我们在C#中使用JOIN和GROUP BY查询时如何填充datagridview

来自分类Dev

当我添加C ++代码时,Xcode iOS项目失败

来自分类Dev

MFC和/ clr C ++项目中的库

来自分类Dev

在C项目中使用Eigen

来自分类Dev

检查C项目中未使用的变量

来自分类Dev

在简单的C ++ OpenCV项目中使用pthread

来自分类Dev

仅当我在C项目中使用代码时才会出现list.h语法错误

来自分类Dev

在另一个项目中使用项目中的工具 (c#)

来自分类Dev

错误:我添加新依赖项时,项目中的任务':app:dexDebug'错误执行失败

来自分类Dev

如何使用GUI将外部库和项目导入到我的C ++项目中?

来自分类Dev

如何使用GUI将外部库和项目导入到我的C ++项目中?

来自分类Dev

无法在Visual C#项目中使用我的.dll

来自分类Dev

在我的CMake for C ++项目中使用waf

来自分类Dev

我可以在C ++ OpenGL项目中使用什么UI?

来自分类Dev

我的项目中未使用Firebase,但仍引发Firebase API初始化失败

来自分类Dev

构建失败,出现 androidX 错误,但我没有在项目中使用 androidX

来自分类Dev

在WebApi2项目中使用CacheOutput属性时,依赖项的解析失败

来自分类Dev

在WebApi2项目中使用CacheOutput属性时,依赖项的解析失败

来自分类Dev

在ASP.NET MVC项目中使用实体框架代码优先时登录失败错误

来自分类Dev

使用git时,在C#项目中应该忽略什么?

来自分类Dev

在同一项目中混合C ++风格

来自分类Dev

当我们在一个项目中绑定对象并从第二个项目中查找时,不会发生JNDI查找

来自分类Dev

我如何从C#项目中调用C ++函数

来自分类Dev

我正在尝试将mongoose安装到我的nodejs项目中,但失败了

来自分类Dev

当我们更改系统时间时,hornetq 失败

Related 相关文章

  1. 1

    图片正常时,使用imread of OpenCV失败

  2. 2

    普通的C ++代码在一个测试项目中通过,而在主要项目中则失败

  3. 3

    UWP C# 项目中 HTTP 重定向请求失败

  4. 4

    C++ OpenCV imread not working in Android

  5. 5

    当我们在C#中使用JOIN和GROUP BY查询时如何填充datagridview

  6. 6

    当我添加C ++代码时,Xcode iOS项目失败

  7. 7

    MFC和/ clr C ++项目中的库

  8. 8

    在C项目中使用Eigen

  9. 9

    检查C项目中未使用的变量

  10. 10

    在简单的C ++ OpenCV项目中使用pthread

  11. 11

    仅当我在C项目中使用代码时才会出现list.h语法错误

  12. 12

    在另一个项目中使用项目中的工具 (c#)

  13. 13

    错误:我添加新依赖项时,项目中的任务':app:dexDebug'错误执行失败

  14. 14

    如何使用GUI将外部库和项目导入到我的C ++项目中?

  15. 15

    如何使用GUI将外部库和项目导入到我的C ++项目中?

  16. 16

    无法在Visual C#项目中使用我的.dll

  17. 17

    在我的CMake for C ++项目中使用waf

  18. 18

    我可以在C ++ OpenGL项目中使用什么UI?

  19. 19

    我的项目中未使用Firebase,但仍引发Firebase API初始化失败

  20. 20

    构建失败,出现 androidX 错误,但我没有在项目中使用 androidX

  21. 21

    在WebApi2项目中使用CacheOutput属性时,依赖项的解析失败

  22. 22

    在WebApi2项目中使用CacheOutput属性时,依赖项的解析失败

  23. 23

    在ASP.NET MVC项目中使用实体框架代码优先时登录失败错误

  24. 24

    使用git时,在C#项目中应该忽略什么?

  25. 25

    在同一项目中混合C ++风格

  26. 26

    当我们在一个项目中绑定对象并从第二个项目中查找时,不会发生JNDI查找

  27. 27

    我如何从C#项目中调用C ++函数

  28. 28

    我正在尝试将mongoose安装到我的nodejs项目中,但失败了

  29. 29

    当我们更改系统时间时,hornetq 失败

热门标签

归档