无法在 Linux 上构建opencv_contrib模块

Unable to build opencv_contrib modules on linux

本文关键字:opencv contrib 模块 构建 Linux      更新时间:2023-10-16

我正在尝试使用opencv_contrib Linux上的xfeatures2d模块构建OpenCV,但我无法构建任何额外的模块。这是我尝试过的(我基本上按照我在网上和 opencv_contrib 年的自述文件中找到的说明进行操作(:

  1. 从 github 下载 opencv 和 opencv_contrib:

$ git 克隆 https://github.com/opencv/opencv.git

$ git 克隆 https://github.com/opencv/opencv_contrib.git

  1. 创建构建目录:

$ cd ~/opencv

$ mkdir 发布

$ 光盘发行

  1. 运行 cmake:

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local –D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules

-D WITH_LIBV4L=on -D WITH_GSTREAMER=on -D WITH_OPENGL=on -D WITH_VTK=on -D BUILD_EXAMPLES=ON -D WITH_GTK=on -D WITH_QT=on ..

我已经指定了 opencv_contrib/模块的路径(也尝试使用绝对路径但没有区别(,我确信这是正确的路径。CMake 似乎运行没有错误,但它不想构建额外的模块。这是 cmake 输出:

-- OpenCV模块:

-- 待建:核心 flann imgproc ml objdetect photo video dnn imgcodecs shape videoio highgui superres ts features2d calib3d java stitching videostab python2

-- 禁用:世界

-- 因依赖而禁用: -

-- 不可用: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev python3 viz

我只有"标准"模块,但没有opencv_contrib任何模块......如果我此时构建库,我只会得到"标准"库(如预期的那样(。我试图通过添加 -D BUILD_opencv_xfeatures2d=ON 来显式启用 xfeatures2d,我也尝试不构建示例,但没有任何效果。

有人看到我做错了什么吗?

感谢您的帮助。

我使用了几周前 OpenCV 3.2 的源代码,所以我从 github(这次是 OpenCV 3.3(重新下载并按照我第一篇文章中描述的相同步骤重新安装,它奏效了!

也许我有一些"坏"版本的OpenCV 3.2,有一些偷偷摸摸的不兼容问题。