当前位置: 代码迷 >> 综合 >> 终于解决:CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib‘
  详细解决方案

终于解决:CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib‘

热度:47   发布时间:2023-12-12 15:51:35.0

用 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模块:

  1. 启动 cmake-gui。
  2. 选择 opencv 源代码文件夹和构建二进制文件的文件夹(界面的两种以上形式)。
  3. config 按钮,您将在中央界面中看到所有 opencv 构建参数。
  4. 浏览参数并查找名为 OPENCV_EXTRA_MODULES_PATH 的表单(使用搜索表单快速关注它)。
  5. 使用浏览按钮,按照<opencv_contrib>/MODULES值的正确路径名完成此OPENCV_EXTRA_MODULES_PATH。
  6. configure 按钮,然后按 generate 按钮(第一次,您将被询问使用哪种 makefile 样式)。
  7. 使用您选择的方法构建 opencv 核心(如果在步骤6中选择了Unix makefile,则生成并安装 make)。
  8. 要运行,需要添加 contrib 模块的链接器标志,以便在 code/IDE中使用它们。例如,要使用aruco模块,将添加 “-lopencv_aruco” 标志。

更新存储库文档

为了保持包含所有贡献模块的清晰概述,需要创建/调整以下文件:

更新 readme.md 模块文件夹下的文件。在这里,您可以添加带有单行描述的模型。

添加自述文件.md在你自己的模块文件夹里。本自述文件解释了哪些功能(单独的功能)可用,链接到相应的示例,并更详细地解释了模块的预期功能。如果需要任何额外的需求来构建没有问题的模块,也可以在这里添加它们。

  相关解决方案