SLAM、OpenCV、Linux、ROS等

Ubuntu 16.04中python调用不同版本OpenCV

2018-12-15  本文已影响0人  一恪slam

需求背景

由于不同代码调用的OpenCV版本不同,在C++中通过CMake设置不同的路径可以调用不同版本的OpenCV,见我这篇简书。但在Python中是在编译OpenCV时就指定了Python的版本的,所以CMake中的方法无法迁移到Python中来,只能另想它法。

解决方案有如下几种

  1. 通过移动cv2.so文件来实现
    由于安装OpenCV时会绑定Python,同时会生成cv2.so包(猜想此包可能记录了安装目录),如果想要运行不同版本的OpenCV时,可以将cv2.so包复制到所要运行的那个python目录下,即可运行。
    如:
#python中cv2.so所在位置:/usr/local/lib/python2.7/dist-packages/cv2.so
#OpenCV2.3所在位置:/media/hdd/opencv-2.3.0/build/cv2.so
#将OpenCV2.3所在的cv.so复制进python中
sudo cp /media/hdd/opencv-2.3.0/build/cv2.so /usr/local/lib/python2.7/dist-packages/cv2.so
  1. 安装不同版本的Python
    可以设置每个Python绑定的OpenCV不同,此方法通过Conda设置最为方便。
上一篇下一篇

猜你喜欢

热点阅读