无法向 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 ..
我正在尝试在计算机上安装带有额外模块的 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 ..