【问题标题】:How do I build OpenCV Contrib modules?如何构建 OpenCV Contrib 模块?
【发布时间】:2023-04-06 23:41:01
【问题描述】:

我已经从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 的文件夹,其中包含以下文件:

我正在寻找这些 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 正确链接。

【问题讨论】:

  • 你看到提到了 libQt 吗?加密货币?这些是外部依赖项,不是 OpenCV 源代码的一部分。
  • 我如何获得它们?以及如何将它们作为轮组的一部分包含在内?我可以自己构建 ffmpeg,但它的 .so 文件与上面的名称不同,例如 libavformat-06a336f2.so.58.61.100??
  • 这包含构建在 PyPI 上发布的包所需的所有配方:github.com/opencv/opencv-python
  • 我设置了 export ENABLE_CONTRIB=1 并运行了 pip wheel 。 -v 并且生成了轮子文件,但我仍然看不到轮子内的文件夹 opencv_contrib_python.libs 。我是否缺少任何步骤?

标签: python-3.x opencv ffmpeg opencv-python opencv-contrib


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules ../../opencv-contrib-python-4.4.0.46/opencv 然后做 :- 制作-j5

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

    【讨论】:

      猜你喜欢
      • 2015-10-21
      • 2021-03-17
      • 2016-01-31
      • 2015-09-24
      • 2015-07-13
      • 2018-04-17
      • 1970-01-01
      • 2018-07-11
      • 2020-05-01
      相关资源
      最近更新 更多