OpenCV额外模块的存储库
本存储库用于开发所谓的"额外"模块,即贡献的功能。新模块通常没有稳定的API,且测试不充分。因此,它们不应作为官方OpenCV发行版的一部分发布,因为该库需要保持二进制兼容性,并努力提供良好的性能和稳定性。
所以,所有新模块应该单独开发,并首先发布在opencv_contrib
存储库中。之后,当模块成熟并获得普及时,它会被移至OpenCV的中央存储库,开发团队将为该模块提供生产质量的支持。
如何构建包含额外模块的OpenCV
你可以构建OpenCV,使其包含本存储库中的模块。贡献模块处于持续开发中,建议与OpenCV的主分支或最新版本一起使用。
以下是CMake命令:
$ cd <opencv_build_directory>
$ cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
$ make -j5
这样,OpenCV将在<opencv_build_directory>
中构建,包含opencv_contrib
存储库中的所有模块。如果你不想要所有模块,可以使用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
核心中添加opencv_contrib
模块:
-
启动cmake-gui。
-
选择opencv源代码文件夹和二进制文件将要构建的文件夹(界面上方的两个表单)。
-
点击
configure
按钮。你将在中央界面看到所有opencv构建参数。 -
浏览参数并找到名为
OPENCV_EXTRA_MODULES_PATH
的表单(使用搜索功能可以快速定位)。 -
使用浏览按钮,在
OPENCV_EXTRA_MODULES_PATH
中填入<opencv_contrib>/modules
的正确路径。 -
点击
configure
按钮,然后点击generate
按钮(第一次时,会询问你使用哪种makefile样式)。 -
使用你在第6步选择的方法构建
opencv
核心(如果选择了Unix makefile,则使用make和make install)。 -
要运行,需要添加贡献模块的链接器标志才能在代码/IDE中使用它们。例如,要使用aruco模块,需添加"-lopencv_aruco"标志。
更新存储库文档
为了保持包含所有贡献模块的清晰概览,需要创建/调整以下文件:
-
更新modules文件夹下的README.md文件。在这里,你需要添加你的模型并附上一行描述。
-
在你自己的模块文件夹中添加README.md。这个README解释了哪些功能(单独的函数)可用,链接到相应的样例,并更详细地解释模块预期要做什么。如果构建模块需要任何额外要求,也在这里添加。