繁体   English   中英

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

[英]Python cv2 linking problems while downgrading OpenCV from 3.0.0 to 2.4.11

所以我的案子很棘手。

我首先安装了OpenCV2.4.8,然后将其用于python2.7。 后来我计划迁移到OpenCV3.0.0。 在安装过程中,两次都遵循官方文档程序。 一切工作正常,直到我意识到OpenCV3没有SIFT()SURF()模块。 经过一番搜索,我发现它们存在于opencv_contrib中 首先,我尝试安装该软件,但是由于某种原因,我无法安装。

后来我发现这些模块存在于OpenCV2.4.11中,并计划进行安装。 再次按照官方程序,我安装了OpenCV2.4.11,得到了相同的SIFT() importerror。 在检查python2和python3中的OpenCV __version__后,我发现了以下内容

  • 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 bins(以下回答) 问题 )。

删除所有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列出))

EDIT2 :我发现了另一个错误。 我之前没有启用-D BUILD_SHARED_LIBS=ON 这次我在makemake install之后将其保持ON并使用rand sudo ldconfig 现在我的/usr/local/lib/有一个libopencv_core.so.2.4 它是到同一文件夹中的libopencv_core.so.2.4.11的符号链接。 ldconfig之后,当我检查python2 import cv2时未显示任何错误,但__version__仍显示'2.4.8' 我仔细检查了任何OpenCV2.4.8 .so文件,但没有任何文件。 它仍如何指向版本'2.4.8'

删除步骤:

  1. 通过以下方式删除opencv库: sudo apt-get purge libopencv*
  2. 通过尝试在python中import cv2来验证是否已卸载import cv2 它应该显示不存在cv2模块
  3. 按照以下sh文件安装opencv2.4.11
  4. sudo make install之后运行sudo ldconfig
  5. 事情通常应该工作,但因为cv2.so从缺少它没有我的情况下工作/usr/local/lib/python2.7/dist-packages/ 为此,从/<opencv-2.4.11 unzip locaiton>/release/lib/cv2.so手动复制到/usr/local/lib/python2.7/dist-packages/ 使用sudo获得权限。

现在import cv2可以工作了, __version__'2.4.11'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM