OpenCV contrib中模块的独立编译

本文旨在说明在使用一般OpenCV库的基础上,将contrib库中的个别模块(非整个contrib库)通过源码编译的方式引入项目中进行使用具有可行性。

开发环境:Qt5.14.2 + Visual Studio 2017 x64 + OpenCV4.1.0

主要是用的库:

OpenCV4.1.0:https://github.com/opencv/opencv/releases/download/4.1.0/opencv-4.1.0-vc14_vc15.exe

OpenCV contrib 4.1.0:https://codeload.github.com/opencv/opencv_contrib/zip/4.1.0

OpenCV以一般外部库的方式引入项目中使用,作者将contrib库中tracking模块的源码按库中原有的文件结构加入到项目中进行编译,载入视频进行跟踪处理,确认包括KCF在内的所有tracker均工作正常。编译过程中主要遇到的问题如下:

1.提示找不到文件“tracking.detail.hpp”。这个问题有2种解决方法,1)保证OpenCV版本和OpenCV contrib版本一致;2)参考GitHub上的解决方法。

2.出现OpenCL有关的错误。分析报错的代码发现,代码中使用了编译预处理指令,即标识符HAVE_OPENCL被定义时,编译为支持OpenCL的版本,否则编译为不支持OpenCL的版本。通过跟踪发现,HAVE_OPENCL被定义在OpenCV库中的cvconfig.h文件中,将“#define HAVE_OPENCL”注释掉后,再注释掉OpenCL有关的头文件(会提示找不到该文件),即可完成编译。

你可能感兴趣的:(科研,学习,opencv,人工智能,计算机视觉)