用 cmake-gui 配置 WITH_CUDA 时出现这个错误提示。
CMake Error at modules/core/CMakeLists.txt:40 (message):CUDA: OpenCV requires enabled 'cudev' module from 'opencv_contrib'repository: https://github.com/opencv/opencv_contrib
按照错误提示解决方案提供的网址:https://github.com/opencv/opencv_contrib看了一下,内容如下:
OpenCV额外模块的存储库
此存储库用于开发所谓的“额外”模块,即功能。新模块通常没有稳定的API,而且没有经过很好的测试。因此,它们不应该作为OpenCV官方发行版的一部分发布,因为该库保持二进制兼容性,并试图提供良好的性能和稳定性。
因此,所有的新模块都应该单独开发,并首先在opencv\u contrib存储库中发布。稍后,当模块成熟并流行起来时,它被移动到中心OpenCV存储库中,开发团队为该模块提供生产质量支持。
如何用额外的模块构建OpenCV
您可以构建OpenCV,因此它将包含此存储库中的模块。Contrib模块正在不断开发中,建议将它们与OpenCV的主分支或最新版本一起使用。
以下是CMake命令:
$ cd<opencv\u build\u directory>$ cmake-DOPENCV\u EXTRA\u MODULES\u PATH=<opencv\u contrib>/MODULES<opencv\u source\u directory>$ make-j5
因此,OpenCV将与opencv_contrib
存储库中的所有模块一起构建在<opencv_build_directory>
中。如果您不需要所有的模块,请使用CMake的BUILD_opencv_*
选项。比如这个例子:
$ cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -DBUILD_opencv_legacy=OFF <opencv_source_directory>
如果您还想从每个模块的“samples”文件夹中构建示例,还可以包括“-DBUILD_EXAMPLES=ON”选项。
如果您更喜欢使用cmake的gui版本(cmake-gui),则可以通过执行以下操作在opencv core中添加opencv_ contrib模块:
- 启动 cmake-gui。
- 选择 opencv 源代码文件夹和构建二进制文件的文件夹(界面的两种以上形式)。
- 按
config
按钮,您将在中央界面中看到所有 opencv 构建参数。 - 浏览参数并查找名为 OPENCV_EXTRA_MODULES_PATH 的表单(使用搜索表单快速关注它)。
- 使用浏览按钮,按照<opencv_contrib>/MODULES值的正确路径名完成此OPENCV_EXTRA_MODULES_PATH。
- 按
configure
按钮,然后按generate
按钮(第一次,您将被询问使用哪种 makefile 样式)。 - 使用您选择的方法构建
opencv
核心(如果在步骤6中选择了Unix makefile,则生成并安装 make)。 - 要运行,需要添加
contrib
模块的链接器标志,以便在 code/IDE中使用它们。例如,要使用aruco模块,将添加 “-lopencv_aruco” 标志。
更新存储库文档
为了保持包含所有贡献模块的清晰概述,需要创建/调整以下文件:
更新 readme.md
模块文件夹下的文件。在这里,您可以添加带有单行描述的模型。
添加自述文件.md在你自己的模块文件夹里。本自述文件解释了哪些功能(单独的功能)可用,链接到相应的示例,并更详细地解释了模块的预期功能。如果需要任何额外的需求来构建没有问题的模块,也可以在这里添加它们。