opencv/opencv_contrib
GitHub: opencv/opencv_contrib
OpenCV 官方维护的扩展模块仓库,提供前沿和实验性的计算机视觉功能,作为核心库的补充。
Stars: 10015 | Forks: 5919
## OpenCV 扩展模块仓库
此仓库用于开发所谓的“extra”模块,即贡献的功能。新模块通常没有稳定的 API,且测试不充分。因此,它们不应作为官方 OpenCV 发行版的一部分发布,因为该库保持二进制兼容性,并力求提供良好的性能和稳定性。
因此,所有新模块都应单独开发,并首先发布在 `opencv_contrib` 仓库中。随后,当模块成熟并获得普及后,它会被移至 OpenCV 中央仓库,开发团队将为该模块提供生产级质量的支持。
### 如何构建包含扩展模块的 OpenCV
您可以构建 OpenCV,使其包含来自此仓库的模块。Contrib 模块处于持续开发中,建议将其与 OpenCV 的 master 分支或最新版本结合使用。
这是供您使用的 CMake 命令:
```
$ cd
$ cmake -DOPENCV_EXTRA_MODULES_PATH=/modules
$ make -j5
```
结果,OpenCV 将在 `` 中构建,并包含 `opencv_contrib` 仓库中的所有模块。如果您不需要所有模块,请使用 CMake 的 `BUILD_opencv_*` 选项。如下例所示:
```
$ cmake -DOPENCV_EXTRA_MODULES_PATH=/modules -DBUILD_opencv_legacy=OFF
```
如果您还想构建各模块“samples”文件夹中的示例,请同时包含 "-DBUILD_EXAMPLES=ON" 选项。
如果您更喜欢使用 CMake 的 GUI 版本 (cmake-gui),则可以通过执行以下操作将 `opencv_contrib` 模块添加到 `opencv` 核心中:
1. 启动 cmake-gui。
2. 选择 opencv 源代码文件夹和用于存放构建产物的文件夹(界面上的上方两个表单)。
3. 按下 `configure` 按钮。您将在中央界面中看到所有的 opencv 构建参数。
4. 浏览参数并找到名为 `OPENCV_EXTRA_MODULES_PATH` 的表单(使用搜索表单可快速定位)。
5. 使用浏览按钮将此 `OPENCV_EXTRA_MODULES_PATH` 填写为指向 `/modules` 的正确路径名。
6. 依次按下 `configure` 按钮和 `generate` 按钮(首次操作时,系统会询问您要使用的 makefile 样式)。
7. 使用您选择的方法构建 `opencv` 核心(如果您在第 6 步中选择了 Unix makefile,则使用 make 和 make install)。
8. 为了运行,需要在您的代码/IDE 中添加链接器标志(linker flags)以使用 contrib 模块。例如,要使用 aruco 模块,将添加 "-lopencv_aruco" 标志。
### 更新仓库文档
为了保持包含所有贡献模块的清晰概览,需要创建/调整以下文件:
1. 更新 modules 文件夹下的 README.md 文件。在这里,添加您的模型及单行描述。
2. 在您自己的模块文件夹内添加一个 README.md。此 README 解释了哪些功能(单独的函数)可用,链接到相应的示例,并更详细地解释该模块预期的功能。如果构建该模块需要任何额外的依赖才能顺利进行,也请在此处添加说明。
标签:Apex, Bash脚本, C++, CMake, OpenCV, opencv_contrib, Python, 人工智能, 图像处理, 开源库, 扩展模块, 搜索引擎爬虫, 数据擦除, 无后门, 机器学习, 模式识别, 深度学习, 特征提取, 用户模式Hook绕过, 算法库, 视频分析, 计算机视觉, 逆向工具