如何构建OpenCV Contrib模块?

3
我已经从https://pypi.org/project/opencv-contrib-python/4.4.0.46/#files下载了文件opencv_contrib_python-4.4.0.46-cp38-cp38-manylinux2014_x86_64.whl
我打开了这个whl文件,发现它包含一个名为opencv_contrib_python.libs的文件夹,里面包含以下文件:

enter image description here

我正在寻找这些.so文件的源代码,所以我从上面相同的链接下载了opencv-contrib-python-4.4.0.46.tar.gz的源代码,并进行了解压,但是我没有看到任何文件的源代码,例如libavformat-06a336f2.so.58.61.100

然后,我使用cmake标志OPENCV_EXTRA_MODULES_PATH构建了opencv contrib项目代码,像这样:

cmake ../opencv-contrib-python-4.4.0.46/opencv/ -D OPENCV_EXTRA_MODULES_PATH=../opencv-contrib-python-4.4.0.46/opencv_contrib/modules/

但是我没有看到任何这些文件被构建。
我该如何获取这些模块的源代码?我需要修改其中一个,并确保它与OpenCV正确地构建和链接。

2
你看到了libQt和libcrypto的提及吗?那些是外部依赖项,不是OpenCV源代码的一部分。 - Christoph Rackwitz
我该如何获取它们?我该如何将它们包含在wheel软件包中?我可以单独构建ffmpeg,但它的.so文件与上述名称不同,例如libavformat-06a336f2.so.58.61.100? - Harry Boy
这里包含了构建已发布在PyPI上的软件包所需的所有配方:https://github.com/opencv/opencv-python - Christoph Rackwitz
https://github.com/opencv/opencv_contrib - Miki
“它没有生成wheel文件”是指它失败了吗?我确定它会输出很多日志信息。那可能很重要。 - Christoph Rackwitz
显示剩余3条评论
2个回答

2

创建的库取决于您构建代码的平台,它应该具有所有所需的库和工具(如gcc、python包等)。您提到的库是ffmpeg、qt、x11的一部分,这些库是屏幕捕获和视频创作/转换的一部分。Opencv依赖于它们进行功能。最近我在sles平台上从源代码构建了ffmpeg,并成功创建了这些库。如果您可以通过cmake ping我构建opencv的日志,在make install之前,我可以更多地了解您的问题。


0

尝试使用以下命令从https://github.com/opencv/opencv_contrib构建源代码:

cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules ../../opencv-contrib-python-4.4.0.46/opencv 然后执行: make -j5

同时下载Python源代码,并将其include路径(Python-3.6.13/Include/)设置为$PYTHON_INCLUDE_DIRS。根据需要设置其他cmake指令。欲了解更多信息,请查看link


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接