gpt4 book ai didi

将 OpenCV 从 3.0.0 降级到 2.4.11 时出现 Python cv2 链接问题

转载 作者:行者123 更新时间:2023-12-02 17:46:06 30 4
gpt4 key购买 nike

所以我的情况很棘手。

我首先安装了 OpenCV2.4.8 并使用 python2.7 启动它。后来我打算迁移到OpenCV3.0.0。在安装过程中,我都遵循了官方文档程序。一切正常,直到我意识到 OpenCV3 没有 SIFT()SURF()模块。经过一番搜索,我发现它们存在于 opencv_contrib .首先我尝试安装它,但由于某种原因我不能。

后来我发现这些模块存在于 OpenCV2.4.11 中并计划安装它。再次按照我安装 OpenCV2.4.11 的官方程序得到相同的 SIFT()导入错误。检查 OpenCV __version__在 python2 和 python3 我发现以下

  • python2:“2.4.8”
  • python3:“3.0.0”

  • 为了检查版本,我使用了以下代码:
    from cv2 import __version__
    print(__version__)

    不幸的是,我在 /home 中没有很多内存。 ,所以我在安装后删除了 OpenCV2.4.8 和 OpenCV3.0.0 构建文件夹。因此,我尝试手动删除 OpenCV2.4.8 和 OpenCV3.0.0 并从 /usr/local/libs/ 中删除所有 opencv 库。和子目录以及来自 /usr/local/bins/ 的所有 opencv 箱(以下 question 中的答案)。

    删除所有 opencv 文件后,我再次重新安装了 OpenCV2.4.11 并尝试运行我的代码。它在 python2 中的导入步骤失败了
    >>> import cv2
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: libopencv_core.so.2.4: cannot open shared object file: No such file or directory

    在python3中
    >>> import cv2
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: libopencv_core.so.3.0: cannot open shared object file: No such file or directory

    我再次检查了 OpenCV2.4.11 是否存在以及它是否存在,但 python 尚未更新先前存储的指向 opencv lib 的链接。自 2 天以来,我一直陷入此错误,没有解决方案。任何帮助将不胜感激。

    编辑 :
    是否有一些共享库查找文件,python 使用它来存储共享库的所有位置?如果不是,它是如何工作的(python 如何识别在哪里寻找 opencv,因为 opencv 未在 pip freeze 中列出)

    编辑2 :
    我发现了另一个错误。我没有启用 -D BUILD_SHARED_LIBS=ON前。这次留着 ON和兰特 sudo ldconfigmake 之后和 make install .现在我有一个 libopencv_core.so.2.4在我的 /usr/local/lib/ .它是 libopencv_core.so.2.4.11 的符号链接(symbolic link)存在于同一文件夹中。之后 ldconfig当我检查 python2 import cv2没有显示任何错误,但 __version__仍然显示 '2.4.8' .我仔细检查了任何 OpenCV2.4.8 .so 文件,但没有。怎么还指向版本 '2.4.8' ?

    最佳答案

    删除步骤:

  • 删除 opencv 库:sudo apt-get purge libopencv*
  • 通过尝试 import cv2 验证是否已卸载 cv2在 python 。它应该显示不存在 cv2 模块
  • 按照this sh file安装opencv2.4.11
  • 运行sudo ldconfigsudo make install 之后
  • 事情通常应该可以工作,但在我的情况下它不起作用,因为 /usr/local/lib/python2.7/dist-packages/ 中缺少 cv2.so .从 /<opencv-2.4.11 unzip locaiton>/release/lib/cv2.so 手动复制至/usr/local/lib/python2.7/dist-packages/ .使用sudo权限。

  • 现在 import cv2将工作和 __version__'2.4.11' .

    关于将 OpenCV 从 3.0.0 降级到 2.4.11 时出现 Python cv2 链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35330553/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com