如何调用编译好的opencv库, windows系统c++版

原文首发

https://xugaoxiang.com/2019/12/27/using-opencv-dll-on-windows/

软硬件环境

  • windows 10 64bit
  • nvidia gtx 1070Ti
  • opencv 4.2.0
  • cuda 10.2
  • cudnn 7.6.5.32
  • visual studio 2019

前言

前文 windows编译opencv,支持cuda加速,我们已经在windows上编译好了opencv源码,本文就开始使用opencv库。

使用编译好的opencv

首先,我们需要编辑下PATH环境变量,将编译好的用于visual studio的路径加入进去,如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6uIZZf27-1577945280283)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_00.png)]

这里需要注意的是,在设置好PATH环境变量后,需要重启下电脑。

接着打开visual studio 2019,创建一个新的项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnmyhofE-1577945280284)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_01.png)]

项目类型,我们选择cmake项目,因为opencv也是基于cmake构建的,我们跟它保持一致

填写项目名称和项目的存储位置,你开心就好

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KVniGIE9-1577945280286)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_03.png)]

这样呢,工程就创建好了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QcCfLCEY-1577945280287)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_04.png)]

我们把之前的一个基于opencv dnn模块的人脸检测的代码拷贝过来, 粘贴到OpenCVDLLTest.cpp文件中进行测试,原始工程的路径在: https://github.com/xugaoxiang/FaceDetectionWithOpenCVDNN, 接下来开始编辑CMakeLists.txt文件,这里面是工程的cmake配置,我们需要在原来的基础上添加几条语句,如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1gJkiAxf-1577945280288)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_05.png)]

其中

  • set(OpenCV_DIR C:/xugaoxiang/opencv_cuda/vs/install)

    设置编译好的opencv的目录,这个目录底下就是opencv的库及头文件,非常重要

  • find_package(OpenCV REQUIRED)

    查找opencv的包

  • include_directories( ${OpenCV_INCLUDE_DIRS} )

    opencv的头文件包含进来,这个配置在cmake 2.8.11版本以后可以不用写

  • target_link_libraries( OpenCVDLLTest ${OpenCV_LIBS} )

    opencv的库链接进来

关于opencv自定义的变量,可以参考这个源码文件opencv/cmake/templates/OpenCVConfig.cmake.in,里面讲解的很详细

最后一步将代码中需要用到的caffe的2个文件(github仓库里有)也拷贝过来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sc6hUYdU-1577945373861)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_07.png)]

最后运行下工程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-diQ6uQm5-1577945280298)(https://code.xugaoxiang.com/xugaoxiang/blog/raw/master/images/ai/opencv/vs_opencv_dll_06.png)]

公众号

在这里插入图片描述

参考资料

发布了74 篇原创文章 · 获赞 58 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/djstavaV/article/details/103803371