无法向 OpenCV 添加额外的模块(即使有 opencv/opencv_contrib 的匹配版本)

Unable to add extra modules to OpenCV (even with matching versions of opencv/opencv_contrib)

我正在尝试在计算机上安装带有额外模块的 OpenCV 运行 Ubuntu 14.04.2(我需要这个特定版本的 Ubuntu,因为我正在使用其他一些需要它的硬件)。就在上周(运行 Ubuntu Mate 16.04.3),我能够在 Raspberry Pi 3 上做到这一点,但现在我似乎无法做到这一点。

我知道 opencv_contrib-version 需要与 opencv-version 相同,我已经尝试构建许多不同的版本,但没有成功(3.4.0、3.3.0、3.2.0、3.1 .0).

下载匹配版本的 opencv 和 opencv_contrib 后,我从终端执行以下命令:

$ cd opencv

$ mkdir build

$ cd build

$ cmake -D OPENCV_EXTRA_MODULES_PATH = ../../opencv_contrib/modules ..

opencv 和 opencv_contrib 文件夹都位于桌面上,因此“../../opencv_contrib/modules”路径应该是正确的。

但是没有构建额外的模块。这是 cmake 输出的部分内容:

-- OpenCV modules:

-- To be built: core flann imgproc ml objdetect photo video dnn imgcodecs shape videoio highgui superres ts features2d calib3d stitching videostab

-- Disabled: world

-- Disabled by dependency: -

-- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 python3 viz

如您所见,仅包含标准模块。我见过很多人遇到同样的问题,但解决方案始终是拥有匹配的 opencv/opencv_contrib 版本。现在我知道版本是正确的,我不知道我做错了什么。

您的 cmake 调用中 = 周围有额外的空格,因此路径设置不正确。删除两个空格,你应该没问题:

cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ..